de919c7a (main)
and
d8c71956 (PR)
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
}
],
"description": "Abstract is a ZK Rollup built on top of Ethereum using the ZK stack, designed to securely power consumer-facing blockchain applications at scale with low fees and fast transaction speeds.",
"links": {
"websites": [
"https://abs.xyz/"
],
"bridges": [
"https://migrate.abs.xyz/",
"https://native-bridge.abs.xyz/",
"https://jumper.exchange/?toChain=2741&toToken=0x0000000000000000000000000000000000000000"
],
"documentation": [
"https://docs.abs.xyz/"
],
"explorers": [
"https://abscan.org"
],
"repositories": [
"https://github.com/Abstract-Foundation"
],
"socialMedia": [
"https://x.com/abstractchain",
"https://discord.com/invite/abstractchain",
"https://x.com/Abstract_Eco",
"https://t.me/abstract_chain",
"https://youtube.com/@AbstractBlockchain"
],
"other": [
"https://rollup.codes/abstract"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
}
],
"description": "ADI Chain is a zk rollup built for scale and policy alignment.",
"links": {
"websites": [
"https://adi.foundation/"
],
"explorers": [
"https://explorer-bls.adifoundation.ai",
"https://explorer.adifoundation.ai/"
],
"repositories": [
"https://github.com/orgs/ADI-Foundation-Labs/"
],
"bridges": [
"https://bridge.adifoundation.ai"
],
"documentation": [
"https://adi-foundation.gitbook.io/adi-chain-documentation"
],
"socialMedia": [
"https://x.com/ADIChain_",
"https://discord.com/invite/adi-foundation",
"https://t.me/adifoundation"
]
}
}
+2 -20
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Aevo is a high-performance decentralized options exchange, powered by the OP Stack and EigenDA.",
"links": {
"websites": [
"https://aevo.xyz/"
],
"bridges": [
"https://app.aevo.xyz/"
],
"documentation": [
"https://docs.aevo.xyz/"
],
"explorers": [
"https://explorer.aevo.xyz/"
],
"repositories": [
"https://github.com/aevoxyz"
],
"socialMedia": [
"https://twitter.com/aevoxyz",
"https://discord.com/invite/aevo",
"https://t.me/aevoupdates"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+0 -13
[
{
"type": "ethereum",
"daLayer": "ethereum",
"inbox": "0x253887577420Cb7e7418cD4d50147743c8041b28",
"sequencers": [
"0x889e21d7BA3d6dD62e75d4980A4Ad1349c61599d"
],
"sinceBlock": 16858818
},
{
"type": "celestia",
"daLayer": "celestia",
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAADBuw7+PjGs8=",
"sinceBlock": 0,
"untilBlock": 3538077
},
{
"type": "eigen-da",
"customerId": "0x2dc71dbd1cf713e70f939346317bf93a2e62cfee",
"daLayer": "eigenda",
"sinceTimestamp": 1753437600
}
]
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Ancient8 Chain is a gaming-focused community-driven Ethereum Layer 2 built using OP Stack.",
"links": {
"websites": [
"https://ancient8.gg/"
],
"bridges": [
"https://app.ancient8.gg/bridge",
"https://space3.gg/A8Layer2"
],
"documentation": [
"https://docs.ancient8.gg/"
],
"explorers": [
"https://scan.ancient8.gg/"
],
"socialMedia": [
"https://twitter.com/Ancient8_gg",
"https://discord.gg/ancient8",
"https://blog.ancient8.gg/",
"https://t.me/ancient8_gg",
"https://youtube.com/@Ancient8_gg",
"https://linkedin.com/company/ancient8"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAADE4vVvVyRsg="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Arbitrum",
"type": "L3ParentChain",
"name": "Built on top of Arbitrum",
"description": "The project has Arbitrum as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Arbitrum"
}
},
{
"id": "EspressoPreconfs",
"type": "Other",
"name": "Espresso Preconfs",
"description": "The project integrates with Espresso preconfirmations. The chain batch poster publishes blocks to Espresso Network and runs in a Trusted Execution Environment (TEE) programmed to verify that only Espresso-validated batches reach the host chain.",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Espresso Preconfs"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "ApeChain is an Optimistic Rollup built on the Arbitrum Orbit stack utilizing $APE as its native gas token. It fuels culture by being the chain for digital and IRL communities, builders, creators, collectors, gamers and beyond.",
"links": {
"websites": [
"https://apechain.com/"
],
"bridges": [
"https://apechain.com/portal"
],
"documentation": [
"https://docs.apechain.com/"
],
"explorers": [
"https://apescan.io/"
],
"repositories": [
"https://github.com/ape-foundation"
],
"socialMedia": [
"https://twitter.com/apecoin",
"https://discord.gg/apecoindao",
"https://t.me/apechainofficial"
]
}
}
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "DAC",
"type": "DA",
"name": "Data Availability Committee",
"description": "There is a Data Availability Committee that provides/attests to data availability",
"action": {
"type": "selfDaHighlight"
}
},
{
"id": "Espresso",
"type": "DA",
"name": "Espresso",
"description": "This project is posting its data to Espresso",
"action": {
"type": "publicDaHighlight",
"slug": "espresso"
}
"description": "This project is posting its data to Espresso"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "EspressoPreconfs",
"type": "Other",
"name": "Espresso Preconfs",
"description": "The project integrates with Espresso preconfirmations. The chain batch poster publishes blocks to Espresso Network and runs in a Trusted Execution Environment (TEE) programmed to verify that only Espresso-validated batches reach the host chain.",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Espresso Preconfs"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "AppChain is an incentivized Layer 2 that allows developers to capture the value their dApps create, enabling sustainable economic models.",
"links": {
"websites": [
"https://appchain.xyz/"
],
"documentation": [
"https://docs.appchain.xyz/"
],
"explorers": [
"https://explorer.appchain.xyz/"
],
"bridges": [
"https://bridge.appchain.xyz/"
],
"socialMedia": [
"https://x.com/onappchain",
"https://warpcast.com/onappchain",
"https://discord.com/invite/kntTtZXM4M"
]
}
}
+1 -2
[
{
"layer": {
"value": "Espresso",
"sentiment": "warning",
"description": "The data is posted to Espresso.",
"projectId": "espresso"
"description": "The data is posted to Espresso."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
},
{
"layer": {
"value": "DAC",
"sentiment": "warning",
"description": "The data is posted off chain and a Data Availability Committee (DAC) is responsible for protecting and supplying it."
},
"bridge": {
"value": "1/1 DAC Members",
"sentiment": "bad",
"description": "There is a threshold of 1/1 members that must sign and attest that the data is correct and available.",
"orderHint": -0.01
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "WasmVM",
"type": "VM",
"name": "WasmVM",
"description": "This project uses a WebAssembly Virtual Machine to run its smart contracts",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "WasmVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Nitro",
"type": "Stack",
"name": "Built on Arbitrum Nitro",
"description": "The project is built on Arbitrum Nitro",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
},
{
"id": "L3HostChain",
"type": "Other",
"name": "L3 Host Chain",
"description": "This project serves as a host chain for L3s",
"action": {
"type": "selfScalingFilter",
"id": "hostChain"
}
}
],
"description": "Arbitrum One is a general-purpose Optimistic Rollup built by Offchain Labs and governed by the Arbitrum DAO.",
"links": {
"websites": [
"https://arbitrum.io/",
"https://arbitrum.foundation/",
"https://forum.arbitrum.foundation/"
],
"bridges": [
"https://bridge.arbitrum.io"
],
"documentation": [
"https://docs.arbitrum.io",
"https://docs.arbitrum.foundation/"
],
"explorers": [
"https://arbiscan.io",
"https://explorer.arbitrum.io/",
"https://arbitrum.blockscout.com/"
],
"repositories": [
"https://github.com/ArbitrumFoundation/docs",
"https://github.com/ArbitrumFoundation/governance",
"https://github.com/OffchainLabs/nitro",
"https://github.com/OffchainLabs/nitro-contracts"
],
"socialMedia": [
"https://twitter.com/arbitrum",
"https://arbitrumfoundation.medium.com/",
"https://discord.gg/Arbitrum",
"https://youtube.com/@Arbitrum",
"https://linkedin.com/company/arbitrum",
"https://t.me/arbitrum"
],
"other": [
"https://rollup.codes/arbitrum-one",
"https://growthepie.com/chains/arbitrum"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Gelato",
"type": "RaaS",
"name": "Gelato",
"description": "This project was deployed via the rollup-as-a-service provider Gelato",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Gelato"
}
}
],
"description": "Arena-Z is an OP stack Optimistic Rollup where studios and gamers, creators and players unite to pioneer the future of entertainment.",
"links": {
"websites": [
"https://arena-z.gg/"
],
"bridges": [
"https://bridge.arena-z.gg/",
"https://leagueofkingdoms.com/"
],
"documentation": [
"https://whitepaper.playersarena.foundation/arena-z"
],
"explorers": [
"https://explorer.arena-z.gg/"
],
"socialMedia": [
"https://x.com/OfficialArenaZ",
"https://discord.com/invite/arenaz-a2z"
]
}
}
[REMOVED]
avail
+0 -631
+0 -1
"avail"
+0 -1
"avail"
+0 -1
"Avail"
+0 -1
null
+0 -1
null
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -28
{
"badges": [],
"description": "Avail is a public blockchain and data availability network combining erasure coding, KZG polynomial commitments, and data availability sampling.",
"links": {
"websites": [
"https://www.availproject.org/"
],
"documentation": [
"https://docs.availproject.org/"
],
"repositories": [
"https://github.com/availproject/"
],
"bridges": [
"https://bridge.availproject.org/"
],
"explorers": [
"https://explorer.avail.so/#/explorer",
"https://avail.subscan.io/"
],
"socialMedia": [
"https://x.com/AvailProject",
"https://t.me/AvailCommunity",
"https://discord.com/invite/AvailProject",
"https://www.linkedin.com/company/availproject/"
]
}
}
+0 -1
null
+0 -1
null
+0 -16
[
{
"title": "Mainnet Launch",
"url": "https://blog.availproject.org/avail-da-mainnet-is-live/",
"date": "2024-07-23T00:00:00Z",
"description": "Avail mainnet and the AVAIL token launch.",
"type": "general"
},
{
"title": "Block size increase",
"url": "https://avail.subscan.io/tech/27",
"date": "2025-02-18T00:00:00Z",
"description": "Avail doubles the block size to 4 MB.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -540
{
"consensusAlgorithm": {
"name": "BABE/GRANDPA",
"description": "Avail uses the BABE/GRANDPA consensus algorithm. BABE is a block production mechanism that is used to create new blocks in the Avail blockchain. GRANDPA is a finality gadget that is used to finalize blocks.",
"blockTime": 20,
"consensusFinality": 60,
"unbondingPeriod": 2419200
},
"dataAvailabilitySampling": {
"erasureCodingScheme": "2D Reed-Solomon",
"erasureCodingProof": "Validity proofs"
},
"economicSecurity": {
"token": {
"symbol": "AVAIL",
"decimals": 18,
"coingeckoId": "avail"
}
},
"finality": 40,
"pruningWindow": 0,
"risks": {
"economicSecurity": {
"value": {
"value": "Staked assets",
"sentiment": "good",
"description": "There are staked assets on the DA layer that can be slashed in case of a data withholding attack. A dishonest supermajority of validators must collude to finalize a block with missing or invalid data. The invalid block would be added to the chain but rejected by honest full nodes.\n "
},
"adjustSecurityRisk": true
},
"fraudDetection": {
"value": "DAS",
"sentiment": "warning",
"description": "The DA layer uses data availability sampling (DAS) to protect against data withholding attacks. However, the block reconstruction protocol, which enables the minimum number of light nodes to collectively reconstruct the block, is still under development.",
"secondLine": ""
}
},
"sovereignProjectsTrackingConfig": [
{
"projectId": "avail-main",
"name": "Avail",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"0"
]
}
]
},
{
"projectId": "reserved-1",
"name": "Reserved-1",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"1"
]
}
]
},
{
"projectId": "reserved-2",
"name": "Reserved-2",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"2"
]
}
]
},
{
"projectId": "reserved-3",
"name": "Reserved-3",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"3"
]
}
]
},
{
"projectId": "reserved-4",
"name": "Reserved-4",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"4"
]
}
]
},
{
"projectId": "reserved-5",
"name": "Reserved-5",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"5"
]
}
]
},
{
"projectId": "reserved-6",
"name": "Reserved-6",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"6"
]
}
]
},
{
"projectId": "reserved-7",
"name": "Reserved-7",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"7"
]
}
]
},
{
"projectId": "reserved-8",
"name": "Reserved-8",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"8"
]
}
]
},
{
"projectId": "reserved-9",
"name": "Reserved-9",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"9"
]
}
]
},
{
"projectId": "0x84e96bb748abb8a16c28ecc",
"name": "0x84e96bb748abb8a16c28ecc",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"10"
]
}
]
},
{
"projectId": "leouarz-test-app",
"name": "Leouarz test app",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"11"
]
}
]
},
{
"projectId": "bling",
"name": "bling",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"12"
]
}
]
},
{
"projectId": "hello-world",
"name": "hello world",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"13"
]
}
]
},
{
"projectId": "azeazeqsdhfgkjkk",
"name": "azeazeqsdhfgkjkk",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"14"
]
}
]
},
{
"projectId": "jjjtkekznfnxkeke",
"name": "Jjjtkekznfnxkeke",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"15"
]
}
]
},
{
"projectId": "crestal",
"name": "CRESTAL",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"16"
]
}
]
},
{
"projectId": "170889",
"name": "170889",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"18"
]
}
]
},
{
"projectId": "skate-mainnet",
"name": "skate-mainnet",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"19"
]
}
]
},
{
"projectId": "lc85p",
"name": "lc85p",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"20"
]
}
]
},
{
"projectId": "dragonft",
"name": "Dragonft",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"21"
]
}
]
},
{
"projectId": "fuse-l2",
"name": "fuse-l2",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"22"
]
}
]
},
{
"projectId": "antonio",
"name": "antonio",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"23"
]
}
]
},
{
"projectId": "se-avail",
"name": "se-avail",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"24"
]
}
]
},
{
"projectId": "527d69c3",
"name": "Rooch Network",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"25"
]
}
]
},
{
"projectId": "kayabey",
"name": "kayabey",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"27"
]
}
]
},
{
"projectId": "kms",
"name": "KMS",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"28"
]
}
]
},
{
"projectId": "dans-awesome-app",
"name": "Dan's Awesome App",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"29"
]
}
]
},
{
"projectId": "up-or-down",
"name": "Up or Down",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"30"
]
}
]
},
{
"projectId": "svmbnb-mainnet",
"name": "svmbnb-mainnet",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"31"
]
}
]
},
{
"projectId": "odysphere",
"name": "odysphere",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"32"
]
}
]
},
{
"projectId": "uwu",
"name": "UwU",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"33"
]
}
]
},
{
"projectId": "art-peace",
"name": "art-peace",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"35"
]
}
]
},
{
"projectId": "lens-historical-data",
"name": "lens-historical-data",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"39"
]
}
]
},
{
"projectId": "ody-playground",
"name": "ody_playground",
"daTrackingConfig": [
{
"type": "avail",
"sinceBlock": 0,
"appIds": [
"40"
]
}
]
}
],
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n\n\n## Consensus\nAvail implements a Nominated Proof-of-Stake (NPoS) Sybil resistance mechanism, combined with the BABE/GRANDPA consensus protocol. \nBABE handles block production by assigning block production slots according to validators' stake and using a Verifiable Random Function (VRF). \nAt the start of each epoch, nodes run the Block-Production-Lottery algorithm to assign block production slots and share the results with other nodes. \nSlots are randomly assigned, meaning multiple validators might be selected for the same slot (with a 'race' determining who gets to propose the block) and some slots may remain empty. \nTo ensure liveness, secondary block producers are pre-determined and can step in if necessary, preventing any slot from being skipped. \nFinality is achieved through GRANDPA, a GHOST-based finality gadget that provides finality through consecutive rounds of validators voting.\n\n## Blobs\nData submitted to the Avail blockchain through submitData transactions is organized into a data matrix, with each block data divided into equal-sized cells. \nThis matrix is erasure coded using Reed-Solomon (RS) codes and committed using Kate-Zaverucha-Goldberg (KZG) polynomial commitments. \nEach block header on Avail includes two types of attestations: KZG polynomial commitments of the submitted data and the root of a Merkle tree, where the leaves represent the data blobs. \n\n## Data Availability Sampling (DAS)\nAvail ensures data availability through a data availability sampling (DAS) mechanism, which involves both Light clients and App clients.\nLight clients sample the data matrix by requesting data cells, and for each cell they then check the KZG polynomial openings against the commitments in the block header.\nLight clients first attempt to fetch cells using a Kademlia-based Distributed Hash Table (DHT) within a light clients peer-to-peer (P2P) network.\nIf the randomly selected cells are not available via DHT, the light client resorts to RPC calls to the Avail node(s) to obtain the data. Cells retrieved this way are then shared back into the DHT network, enhancing the overall availability of block data.\nAfter gathering the data, the light client verifies the cells and calculates a confidence level, which is stored locally for reference.\n\nApp clients focus on data specific to a given application ID. They reconstruct entire rows of the data matrix by requesting and assembling any missing cells from the network.\n\n## Erasure Coding Proof\n\nAvail uses Kate-Zaverucha-Goldberg (KZG) polynomial commitments as validity proofs of erasure-coded data. Light clients verify the commitments by checking the KZG polynomial openings against the commitments in the block header.\n\n## L2s Data Availability\n\nL2s can post application-specific data blobs to the Avail blockchain through submitData transactions. \nEach transaction contains an application ID that identifies the L2 and adheres to a size limit based on the Avail blockchain’s block size. \nApp-specific data can be reconstructed by app clients, which request and assemble missing cells from the network to complete the data reconstruction process.",
"references": [
{
"title": "Avail Documentation",
"url": "https://docs.availproject.org/docs/welcome-to-avail-docs"
},
{
"title": "Avail Light Client - Source Code",
"url": "https://github.com/availproject/avail-light/blob/main/core/src/light_client.rs"
},
{
"title": "Avail App Client - Source Code",
"url": "https://github.com/availproject/avail-light/blob/a9e1741a6c7579d6ab1988eb409808b33f999180/core/src/app_client.rs"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "a dishonest supermajority of Avail validators finalizes an unavailable block, and there aren't light nodes on the network verifying data availability, or they fail at social signaling unavailable data."
},
{
"category": "Funds can be lost if",
"text": "a dishonest supermajority of Avail validators finalizes an unavailable block, and the light nodes on the network cannot collectively reconstruct the block."
}
]
},
"throughput": [
{
"size": 4194304,
"frequency": 20,
"sinceTimestamp": 1739883920
},
{
"size": 2097152,
"frequency": 20,
"sinceTimestamp": 1721692800
}
],
"type": "Public Blockchain",
"usedWithoutBridgeIn": [],
"validators": {
"type": "dynamic"
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+1 -5
+1 -5
{
"badges": [
{
"id": "AztecVM",
"type": "VM",
"name": "AztecVM",
"description": "This project uses the Aztec Virtual Machine to run its smart contracts and supports the Noir programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AztecVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
},
{
"id": "Privacy",
"type": "Other",
"name": "Privacy",
"description": "This project supports private transactions natively",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Privacy"
}
}
],
"description": "Aztec Network is a privacy-preserving ZK rollup that uses the AztecVM and Noir to support private and public smart contracts on Ethereum.",
"links": {
"websites": [
"https://aztec.network/",
"https://aztec.network/noir"
],
"documentation": [
"https://docs.aztec.network/"
],
"explorers": [
"https://aztecscan.xyz",
"https://aztecexplorer.xyz",
"https://dashtec.xyz/",
"https://slashveto.me/"
],
"bridges": [],
"repositories": [
"https://github.com/AztecProtocol/aztec-packages"
],
"socialMedia": [
"https://x.com/aztecnetwork",
"https://aztec.network/blog",
"https://t.me/AztecAnnouncements_Official",
"https://forum.aztec.network/",
"https://youtube.com/@aztecnetwork",
"https://discord.com/invite/aztec"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Base",
"type": "L3ParentChain",
"name": "Built on top of Base",
"description": "The project has Base as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Base"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "B3 is an L3 built on Base to bring gamers and game creators onchain, powered by the OP Stack and Celestia DA.",
"links": {
"websites": [
"https://b3.fun/"
],
"bridges": [
"https://bridge.b3.fun/"
],
"documentation": [
"https://docs.b3.fun/"
],
"explorers": [
"https://explorer.b3.fun/"
],
"repositories": [
"https://github.com/b3-fun/"
],
"socialMedia": [
"https://x.com/b3dotfun",
"https://discord.com/invite/b3dotfun",
"https://warpcast.com/b3dotfun",
"https://t.me/b3dotfun"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4SqMAivUaAM="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Base is an Optimistic Rollup built with the OP Stack. It offers a low-cost and builder-friendly way for anyone, anywhere, to build onchain.",
"links": {
"websites": [
"https://base.org/"
],
"bridges": [
"https://superbridge.app/base"
],
"documentation": [
"https://docs.base.org/",
"https://docs.optimism.io/"
],
"explorers": [
"https://basescan.org/",
"https://basedscan.io/",
"https://base.blockscout.com/"
],
"repositories": [
"https://github.com/base"
],
"socialMedia": [
"https://twitter.com/BuildOnBase",
"https://discord.com/invite/buildonbase",
"https://base.mirror.xyz/",
"https://farcaster.xyz/base",
"https://reddit.com/r/BASE/"
],
"other": [
"https://rollup.codes/base",
"https://growthepie.com/chains/base"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Blast is an EVM-compatible Optimistic Rollup supporting native yield. It invests funds deposited into the L1 bridge into various DeFi protocols transferring yield back to the L2.",
"links": {
"websites": [
"https://blast.io/en"
],
"bridges": [
"https://blast.io/en/bridge"
],
"documentation": [
"https://docs.blast.io/about-blast"
],
"explorers": [
"https://blastscan.io",
"https://blastplorer.info/",
"https://blastexplorer.io"
],
"repositories": [
"https://github.com/blast-io"
],
"socialMedia": [
"https://twitter.com/blast",
"https://discord.com/invite/blast-l2",
"https://discord.com/invite/blastdevelopers"
],
"other": [
"https://rollup.codes/blast",
"https://growthepie.com/chains/blast"
]
}
}
[REMOVED]
blobstream
+0 -1630
+0 -1
"blobstream"
+0 -1
"blobstream"
+0 -1
"Blobstream"
+0 -1
null
+0 -3
[
"Celestia"
]
+0 -1
1729253328
+0 -3
{
"unverifiedContracts": []
}
+0 -14
{
"badges": [],
"description": "The Blobstream bridge serves as a ZK light client, enabling the bridging of data availability commitments between Celestia and destination chains.",
"links": {
"documentation": [
"https://docs.celestia.org/operate/blobstream/install-binary/#how-to-run",
"https://hackmd.io/@succinctlabs/HJE7XRrup"
],
"repositories": [
"https://github.com/succinctlabs/sp1-blobstream",
"https://github.com/succinctlabs/blobstreamx"
]
}
}
+0 -1
null
+0 -1
null
+0 -9
[
{
"title": "Plonky3 vulnerability patch",
"url": "https://x.com/SuccinctLabs/status/1929773028034204121",
"date": "2025-06-04T00:00:00.00Z",
"description": "SP1 verifier is patched to fix critical vulnerability in Plonky3 proof system (SP1 dependency).",
"type": "incident"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -56
{
"daLayer": "celestia",
"name": "Blobstream",
"relayerType": {
"value": "Permissioned",
"sentiment": "warning",
"description": "Only whitelisted relayers can post attestations to this bridge."
},
"risks": {
"committeeSecurity": {
"value": "Validator set",
"sentiment": "good",
"description": "The committee requires an honest minority (less than 1/3) of members (or the network stake) to prevent the DA bridge from accepting an unavailable data commitment. \n Participation in the committee is permissionless, based only on stake requirements and an honest majority of validators processing the new operator's request to join the active set.",
"orderHint": 2
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "No mechanism",
"sentiment": "bad",
"description": "The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity."
}
},
"technology": {
"description": "## Architecture\n\n\n\n The Blobstream bridge is a data availability bridge that facilitates data availability commitments to be bridged between Celestia and Ethereum.\n The Blobstream bridge is composed of three main components: the **Blobstream** contract, the **Succinct Gateway** contracts, and the **Verifier** contracts.
\n By default, Blobstream operates asynchronously, handling requests in a fulfillment-based manner. First, zero-knowledge proofs of Celestia block ranges are requested for proving. Requests can be submitted either off-chain through the Succinct API, or onchain through the requestCall() method of the Succinct Gateway smart contract.\n Alternatively, it is possible to run an SP1 Blobstream operator with local proving, allowing for self-generating the proofs.\n Once a proving request is received, the off-chain prover generates the proof and relays it to Blobstream contract. The Blobstream contract verifies the proof with the corresponding verifier contract and, if successful, stores the data commitment in storage.
\n\n Verifying a header range includes verifying tendermint consensus (header signatures are 2/3 of stake) and verifying the data commitment root.\n By default, Blobstream is updated by the Succinct operator at a regular cadence of 1 hour. Note that the update interval can vary across chains.",
"references": [
{
"title": "SP1 Blobstream Operator",
"url": "https://github.com/succinctlabs/sp1-blobstream/blob/b35c92bfcfc9a1711ea014cc871d6dd610dd5392/script/bin/operator.rs"
},
{
"title": "Succinct Gateway - Etherscan",
"url": "https://etherscan.io/address/0x6c7a05e0AE641c6559fD76ac56641778B6eCd776#code#F1#L148"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the DA bridge accepts an incorrect or malicious data commitment provided by 2/3 of Celestia validators."
},
{
"category": "Funds can be frozen if",
"text": "excluding L2-specific DA fallback - the permissioned relayers are unable to submit DA commitments to the Blobstream contract."
}
]
},
"usedIn": [],
"validationType": {
"value": "Validity Proof",
"description": "The DA attestation requires onchain SNARK proof verification to be accepted by the bridge. Operators signatures and their corresponding stake are verified as part of the proof.",
"zkCatalogId": "sp1hypercube"
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -26
[
{
"projectId": "blobstream",
"sinceTimestamp": 1724648927,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe",
"selector": "0x8455a3cf",
"signature": "function commitHeaderRange(bytes proof, bytes publicValues)"
}
},
{
"projectId": "blobstream",
"sinceTimestamp": 1724648927,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe",
"selector": "0x8455a3cf",
"signature": "function commitHeaderRange(bytes proof, bytes publicValues)"
}
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -395
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "BlobstreamMultisig",
"name": "BlobstreamMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with no delay**\n * ArbitrumBlobstream \n* Can interact with ArbitrumBlobstream\n * can freeze the bridge contract and update the list of authorized relayers ",
"accounts": [
{
"address": "arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997",
"type": "Contract",
"isVerified": true,
"name": "0x738a…7997",
"url": "https://arbiscan.io/address/0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0x0449689f2ce80fE45B32092e0d878ad87F0156a9",
"type": "EOA",
"isVerified": true,
"name": "0x0449…56a9",
"url": "https://arbiscan.io/address/0x0449689f2ce80fE45B32092e0d878ad87F0156a9"
},
{
"address": "arb1:0x91D456f83f4a117B07866fdEdC29306f7E974e15",
"type": "EOA",
"isVerified": true,
"name": "0x91D4…4e15",
"url": "https://arbiscan.io/address/0x91D456f83f4a117B07866fdEdC29306f7E974e15"
},
{
"address": "arb1:0x793979789Ec179183E396e76c1e241bE0c9eE899",
"type": "EOA",
"isVerified": true,
"name": "0x7939…E899",
"url": "https://arbiscan.io/address/0x793979789Ec179183E396e76c1e241bE0c9eE899"
},
{
"address": "arb1:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://arbiscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
},
{
"address": "arb1:0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0",
"type": "EOA",
"isVerified": true,
"name": "0x4587…D1b0",
"url": "https://arbiscan.io/address/0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0"
},
{
"address": "arb1:0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf",
"type": "EOA",
"isVerified": true,
"name": "0x1358…7caf",
"url": "https://arbiscan.io/address/0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayArb\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "arb1:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://arbiscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://arbiscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "arb1:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://arbiscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "arb1:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://arbiscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "arb1:0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"type": "EOA",
"isVerified": true,
"name": "0x3243…392D",
"url": "https://arbiscan.io/address/0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"displayName": "EOA 1"
},
{
"address": "arb1:0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"type": "EOA",
"isVerified": true,
"name": "0x9c0B…afDC",
"url": "https://arbiscan.io/address/0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"displayName": "EOA 2"
}
],
"chain": "arbitrum",
"description": "* Can interact with ArbitrumBlobstream\n * it is a 'Relayer' and can call commitHeaderRange() to commit block ranges. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"base": {
"roles": [],
"actors": [
{
"id": "BlobstreamMultisig",
"name": "BlobstreamMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with no delay**\n * BaseBlobstream \n* Can interact with BaseBlobstream\n * can freeze the bridge contract and update the list of authorized relayers ",
"accounts": [
{
"address": "base:0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6",
"type": "Contract",
"isVerified": true,
"name": "0x6ABa…1Ca6",
"url": "https://basescan.org/address/0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0x0449689f2ce80fE45B32092e0d878ad87F0156a9",
"type": "EOA",
"isVerified": true,
"name": "0x0449…56a9",
"url": "https://basescan.org/address/0x0449689f2ce80fE45B32092e0d878ad87F0156a9"
},
{
"address": "base:0x793979789Ec179183E396e76c1e241bE0c9eE899",
"type": "EOA",
"isVerified": true,
"name": "0x7939…E899",
"url": "https://basescan.org/address/0x793979789Ec179183E396e76c1e241bE0c9eE899"
},
{
"address": "base:0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf",
"type": "EOA",
"isVerified": true,
"name": "0x1358…7caf",
"url": "https://basescan.org/address/0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf"
},
{
"address": "base:0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0",
"type": "EOA",
"isVerified": true,
"name": "0x4587…D1b0",
"url": "https://basescan.org/address/0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0"
},
{
"address": "base:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://basescan.org/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
},
{
"address": "base:0x91D456f83f4a117B07866fdEdC29306f7E974e15",
"type": "EOA",
"isVerified": true,
"name": "0x91D4…4e15",
"url": "https://basescan.org/address/0x91D456f83f4a117B07866fdEdC29306f7E974e15"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayBase\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "base:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://basescan.org/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://basescan.org/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "base:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://basescan.org/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "base:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://basescan.org/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "base:0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"type": "EOA",
"isVerified": true,
"name": "0x3243…392D",
"url": "https://basescan.org/address/0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"displayName": "EOA 3"
},
{
"address": "base:0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"type": "EOA",
"isVerified": true,
"name": "0x9c0B…afDC",
"url": "https://basescan.org/address/0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"displayName": "EOA 4"
}
],
"chain": "base",
"description": "* Can interact with BaseBlobstream\n * it is a 'Relayer' and can call commitHeaderRange() to commit block ranges. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [],
"actors": [
{
"id": "BlobstreamMultisig",
"name": "BlobstreamMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with no delay**\n * EthereumBlobstream \n* Can interact with EthereumBlobstream\n * can freeze the bridge contract and update the list of authorized relayers ",
"accounts": [
{
"address": "eth:0x8bF34D8df1eF0A8A7f27fC587202848E528018E6",
"type": "Contract",
"isVerified": true,
"name": "0x8bF3…18E6",
"url": "https://etherscan.io/address/0x8bF34D8df1eF0A8A7f27fC587202848E528018E6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0449689f2ce80fE45B32092e0d878ad87F0156a9",
"type": "EOA",
"isVerified": true,
"name": "0x0449…56a9",
"url": "https://etherscan.io/address/0x0449689f2ce80fE45B32092e0d878ad87F0156a9"
},
{
"address": "eth:0x793979789Ec179183E396e76c1e241bE0c9eE899",
"type": "EOA",
"isVerified": true,
"name": "0x7939…E899",
"url": "https://etherscan.io/address/0x793979789Ec179183E396e76c1e241bE0c9eE899"
},
{
"address": "eth:0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf",
"type": "EOA",
"isVerified": true,
"name": "0x1358…7caf",
"url": "https://etherscan.io/address/0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf"
},
{
"address": "eth:0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0",
"type": "EOA",
"isVerified": true,
"name": "0x4587…D1b0",
"url": "https://etherscan.io/address/0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
},
{
"address": "eth:0x91D456f83f4a117B07866fdEdC29306f7E974e15",
"type": "EOA",
"isVerified": true,
"name": "0x91D4…4e15",
"url": "https://etherscan.io/address/0x91D456f83f4a117B07866fdEdC29306f7E974e15"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-5-and-EOA-6",
"name": "EOA 5 and EOA 6",
"accounts": [
{
"address": "eth:0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"type": "EOA",
"isVerified": true,
"name": "0x3243…392D",
"url": "https://etherscan.io/address/0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"displayName": "EOA 5"
},
{
"address": "eth:0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"type": "EOA",
"isVerified": true,
"name": "0x9c0B…afDC",
"url": "https://etherscan.io/address/0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with EthereumBlobstream\n * it is a 'Relayer' and can call commitHeaderRange() to commit block ranges. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
}
}
+0 -279
{
"addresses": {
"arbitrum": [
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 1, EOA 2",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"base": [
{
"name": "BaseBlobstream",
"isVerified": true,
"address": "base:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6"
],
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710651207,
"transactionHash": "0x4549f6dd026054361c6ec3372f446d9a594205d6a2681001f4d3567ef55d8d73",
"implementations": [
"base:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724833,
"transactionHash": "0xcc77a9f79cc2dc869a5b2afcb9abe14014680e03797e00244a4580deb278eee8",
"implementations": [
"base:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698369,
"transactionHash": "0xd2efcdcc2ae2c8725a9d68bcce93edf7f4e2c5326ec75e9aea9cbdb6dfc7c6d3",
"implementations": [
"base:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166563,
"transactionHash": "0x972e1b10b3fd4c52bbd75c6215f12438b15229c9f609ad42273eb3985d8e4767",
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 3, EOA 4",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1VerifierGatewayBase",
"isVerified": true,
"address": "base:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"ethereum": [
{
"name": "EthereumBlobstream",
"isVerified": true,
"address": "eth:0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8bF34D8df1eF0A8A7f27fC587202848E528018E6"
],
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717615307,
"transactionHash": "0xf156e666fc403369415601ab683befc8e177f698b69a4c4c313706127ec18a86",
"implementations": [
"eth:0x41a87C543EBcbD93706CF5260AD057D9eCBA1caE"
]
},
{
"timestamp": 1724698523,
"transactionHash": "0x2cbc956737b46bd304d04f3051a65e311686d35792c54c67030d0c5417e76508",
"implementations": [
"eth:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166527,
"transactionHash": "0xcc2a77da632e84e5fb17e863ec744d5f0921b70c191487179dd9e28ab855a3be",
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 5, EOA 6",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"programHashes": [
{
"title": "Celestia Blobstream DA bridge program",
"description": "ZK-friendly implementation of Celestia Blobstream DA bridge that proves that enough Celestia validators have confirmed a given data root.",
"programUrl": "https://github.com/succinctlabs/sp1-blobstream/tree/78a9d3419339a8c60bf51e1e3241f242bc44d434/program",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct commit hash in [sp1-blobstream](https://github.com/succinctlabs/sp1-blobstream/tree/main) repo: `git checkout 78a9d3419339a8c60bf51e1e3241f242bc44d434`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-blobstream/program` dir run: `cargo prove build --docker --tag v6.1.0 --elf-name blobstream-elf --output-directory ../elf` to build the blobstream program elf within a docker container and place it in `sp1-blobstream/elf`.\n4. From `sp1-blobstream` run: `cargo run --bin vkey --release` to print the vkey of the `blobstream-elf` program.",
"hash": "0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades."
},
{
"category": "Funds can be frozen if",
"text": "the bridge contract is frozen by the Guardian (BlobstreamMultisig)."
}
],
"zkVerifiers": [
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+0 -7
{
"baseTimestamp": 1791789577,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+0 -800
[
{
"id": "da132f44",
"date": "Mon, 11 May 2026 14:19:14 GMT",
"timestamp": 1778509082,
"description": "The new `blobstreamProgramVkey` corresponds to the Blobstream guest program rebuilt against SP1 zkVM **v6.1.0** ([succinctlabs/sp1-blobstream#66](https://github.com/succinctlabs/sp1-blobstream/pull/66), merged 2026-05-05).\n\nThe underlying prover system moves from `sp1turbo` (v5.x) to `sp1hypercube` (v6.x).\n\nVerification path confirmed on-chain by decoding the SP1 proof selector from a recent `commitHeaderRange` call (first 4 bytes = `0x5a093a2f`, which routes via `SP1VerifierGateway.activeVerifiers` to `0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A` — the SP1Verifier v6.1.0 deployment).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ArbitrumBlobstream (arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) [succinct/SP1Blobstream] {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n+ \"0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745\"\n }\n```\n\n```diff\n contract BaseBlobstream (base:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) [succinct/SP1Blobstream] {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n+ \"0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745\"\n }\n```\n\n```diff\n contract EthereumBlobstream (eth:0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) [succinct/SP1Blobstream] {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n+ \"0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745\"\n }\n```"
}
]
},
{
"id": "3c78727d",
"date": "Mon, 14 Jul 2025 13:11:49 GMT",
"timestamp": 1752498709,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe)\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n```\n\n```diff\n+ Status: CREATED\n contract BlobstreamMultisig (0x8bF34D8df1eF0A8A7f27fC587202848E528018E6)\n +++ description: None\n```"
}
]
},
{
"id": "3d2db499",
"date": "Mon, 14 Jul 2025 13:11:48 GMT",
"timestamp": 1752498708,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract BlobstreamMultisig (0x738a9b55304f9fcF776B3BA285e50c0f9eF77997)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n```"
}
]
},
{
"id": "512a14da",
"date": "Mon, 14 Jul 2025 13:11:48 GMT",
"timestamp": 1752498708,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract BlobstreamMultisig (0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n```"
}
]
},
{
"id": "f0287f2e",
"date": "Wed, 25 Jun 2025 07:41:07 GMT",
"timestamp": 1750837267,
"description": "selector 0x1b34fe11 and respective verifier frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.1:\n- {\"selector\":\"0x1b34fe11\",\"verifier\":\"0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "19ce0716",
"date": "Wed, 25 Jun 2025 07:41:07 GMT",
"timestamp": 1750837267,
"description": "selector 0x1b34fe11 and respective verifier frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.1:\n- {\"selector\":\"0x1b34fe11\",\"verifier\":\"0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "7470abab",
"date": "Wed, 25 Jun 2025 07:41:06 GMT",
"timestamp": 1750837266,
"description": "selector 0x1b34fe11 and respective verifier frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.1:\n- {\"selector\":\"0x1b34fe11\",\"verifier\":\"0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "10d7acbe",
"date": "Fri, 06 Jun 2025 07:24:48 GMT",
"timestamp": 1749194688,
"description": "config: make sp1 gateway template more dynamic.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "6deac691",
"date": "Fri, 06 Jun 2025 07:24:48 GMT",
"timestamp": 1749194688,
"description": "config: make sp1 gateway template more dynamic.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "98e46cb6",
"date": "Fri, 06 Jun 2025 07:24:48 GMT",
"timestamp": 1749194688,
"description": "config: make sp1 gateway template more dynamic.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "d3e18af6",
"date": "Wed, 04 Jun 2025 13:45:01 GMT",
"timestamp": 1749044701,
"description": "programVKey changed. v5 verifier is now used (post plonky3 vulnerability).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n values.verifier.prover:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459\"\n }\n```\n\n```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n+ \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "ec278dca",
"date": "Wed, 04 Jun 2025 13:45:01 GMT",
"timestamp": 1749044701,
"description": "programVKey changed. v5 verifier is now used (post plonky3 vulnerability).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n values.verifier.prover:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459\"\n }\n```\n\n```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n+ \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "c23dfe89",
"date": "Wed, 04 Jun 2025 13:45:01 GMT",
"timestamp": 1749044701,
"description": "programVKey changed. v5 verifier is now used (post plonky3 vulnerability).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n values.verifier.prover:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459\"\n }\n```\n\n```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n+ \"0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "68bd3eab",
"date": "Fri, 11 Apr 2025 06:41:38 GMT",
"timestamp": 1744353698,
"description": "change vkey.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n+ \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n }\n```"
}
]
},
{
"id": "287544cb",
"date": "Fri, 11 Apr 2025 06:41:35 GMT",
"timestamp": 1744353695,
"description": "change vkey.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n+ \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n }\n```"
}
]
},
{
"id": "5c2f26b7",
"date": "Fri, 11 Apr 2025 06:41:32 GMT",
"timestamp": 1744353692,
"description": "change vkey.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n+ \"0x00eaf7d396acac046b54bc8d5ba17d3f1c7374d7158ac01c76dfeca6103163eb\"\n }\n```"
}
]
},
{
"id": "cc864e8b",
"date": "Fri, 04 Apr 2025 09:34:37 GMT",
"timestamp": 1743759277,
"description": "Renamed SP1VerifierGatewayMultisig.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63) {\n +++ description: SP1Verifier is a contract used to verify proofs given public values and verification key.\n unverified:\n- true\n values.VERIFIER_HASH:\n+ \"0x1b34fe11a637737f0c75c88241669dcf9ca3c03713659265b8241f398a2d286d\"\n values.VERSION:\n+ \"v4.0.0-rc.3\"\n template:\n+ \"succinct/SP1Verifier\"\n sourceHashes:\n+ [\"0xcc497e8b709d783cb24e3120d14c9fb3b015c3fe5ed7a57e0de6c38f9bfe937b\"]\n description:\n+ \"SP1Verifier is a contract used to verify proofs given public values and verification key.\"\n }\n```"
}
]
},
{
"id": "73e79749",
"date": "Thu, 23 Jan 2025 09:36:18 GMT",
"timestamp": 1737624978,
"description": "blobstreamProgramVkey updated: The new key is not found anywhere yet, the old one was associated with v4.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n+ \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n }\n```"
}
]
},
{
"id": "107ff08b",
"date": "Thu, 23 Jan 2025 09:36:10 GMT",
"timestamp": 1737624970,
"description": "blobstreamProgramVkey updated: The new key is not found anywhere yet, the old one was associated with v4.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n+ \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n }\n```"
}
]
},
{
"id": "0d9bff61",
"date": "Thu, 23 Jan 2025 09:36:01 GMT",
"timestamp": 1737624961,
"description": "blobstreamProgramVkey updated: The new key is not found anywhere yet, the old one was associated with v4.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n+ \"0x00b6c8c78a73630fae80e45b2888a00d9ab0cc05a77cd7c027446a6ae2289928\"\n }\n```"
}
]
},
{
"id": "f7b7cb39",
"date": "Thu, 16 Jan 2025 12:10:00 GMT",
"timestamp": 1737029400,
"description": "New verifier added, old one frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for the bridge proofs verification. It stores the mapping between the identifier of the bridge circuit and the address of the onchain verifier contract.\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2025-01-15.\n values.oldVerifier5.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: None\n```"
}
]
},
{
"id": "e73f520f",
"date": "Thu, 16 Jan 2025 12:09:56 GMT",
"timestamp": 1737029396,
"description": "New verifier added, old one frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for the bridge proofs verification. It stores the mapping between the identifier of the bridge circuit and the address of the onchain verifier contract.\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2025-01-15.\n values.oldVerifier5.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: None\n```"
}
]
},
{
"id": "0ea1a069",
"date": "Thu, 16 Jan 2025 12:09:49 GMT",
"timestamp": 1737029389,
"description": "New verifier added, old one frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for the bridge proofs verification. It stores the mapping between the identifier of the bridge circuit and the address of the onchain verifier contract.\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2025-01-15.\n values.oldVerifier5.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: None\n```"
}
]
},
{
"id": "685e40d4",
"date": "Wed, 15 Jan 2025 09:48:19 GMT",
"timestamp": 1736934499,
"description": "New Vkey: [v4](https://github.com/succinctlabs/sp1-blobstream/blob/89e058052c0b691898c5b56a62a6fa0270b31627/contracts/script/UpdateVkey.s.sol#L26).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n+ \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n }\n```"
}
]
},
{
"id": "50dea827",
"date": "Wed, 15 Jan 2025 09:47:59 GMT",
"timestamp": 1736934479,
"description": "New Vkey: [v4](https://github.com/succinctlabs/sp1-blobstream/blob/89e058052c0b691898c5b56a62a6fa0270b31627/contracts/script/UpdateVkey.s.sol#L26).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n+ \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n }\n```"
}
]
},
{
"id": "efcbd5e9",
"date": "Wed, 15 Jan 2025 09:47:41 GMT",
"timestamp": 1736934461,
"description": "New Vkey: [v4](https://github.com/succinctlabs/sp1-blobstream/blob/89e058052c0b691898c5b56a62a6fa0270b31627/contracts/script/UpdateVkey.s.sol#L26).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.blobstreamProgramVkey:\n- \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n+ \"0x00e30cadab0b8ad6a5f115c5131a14afce4ec4bbf8acf7c821951778a2d97660\"\n }\n```"
}
]
},
{
"id": "aeac7632",
"date": "Wed, 08 Jan 2025 11:10:38 GMT",
"timestamp": 1736334638,
"description": "Remove relayer1 as it is no longer approved.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.isRelayer1Approved:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "69787fb9",
"date": "Wed, 08 Jan 2025 11:10:31 GMT",
"timestamp": 1736334631,
"description": "Remove relayer1 as it is no longer approved.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.isRelayer1Approved:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "7794b802",
"date": "Wed, 08 Jan 2025 11:10:26 GMT",
"timestamp": 1736334626,
"description": "Remove relayer1 as it is no longer approved.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n values.isRelayer1Approved:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "2d8d3a2c",
"date": "Sun, 08 Dec 2024 11:45:48 GMT",
"timestamp": 1733658348,
"description": "BlobstreamMultisig signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BlobstreamMultisig (0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6) {\n +++ description: None\n values.$members.4:\n- \"0xA3fC931613a4E2440a199d47B0076e8b85F33099\"\n+ \"0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d\"\n }\n```"
}
]
},
{
"id": "61abe14d",
"date": "Sun, 08 Dec 2024 11:36:51 GMT",
"timestamp": 1733657811,
"description": "BlobstreamMultisig signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BlobstreamMultisig (0x8bF34D8df1eF0A8A7f27fC587202848E528018E6) {\n +++ description: None\n values.$members.4:\n- \"0xA3fC931613a4E2440a199d47B0076e8b85F33099\"\n+ \"0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d\"\n }\n```"
}
]
},
{
"id": "d7edc1e9",
"date": "Sun, 08 Dec 2024 11:35:30 GMT",
"timestamp": 1733657730,
"description": "BlobstreamMultisig signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BlobstreamMultisig (0x738a9b55304f9fcF776B3BA285e50c0f9eF77997) {\n +++ description: None\n values.$members.3:\n- \"0xA3fC931613a4E2440a199d47B0076e8b85F33099\"\n+ \"0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d\"\n }\n```"
}
]
},
{
"id": "a5e89018",
"date": "Wed, 04 Dec 2024 10:43:57 GMT",
"timestamp": 1733309037,
"description": "Raise the max commitment size by one order of magnitude to 10000 celestia blocks.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n sourceHashes.1:\n- \"0x424268ec553b52a09ec29bc220e95a4dc19def7e459d1cc8a541ee0e2fd578e9\"\n+ \"0x13872c9ceb24afa3e0819f2d13957fab016c612859cc40f542ee250f53e03dac\"\n values.$implementation:\n- \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n+ \"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"\n values.$pastUpgrades.3:\n+ [\"2024-12-02T19:09:23.000Z\",\"0x972e1b10b3fd4c52bbd75c6215f12438b15229c9f609ad42273eb3985d8e4767\",[\"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.DATA_COMMITMENT_MAX:\n- 1000\n+ 10000\n }\n```"
}
]
},
{
"id": "a1925fe0",
"date": "Wed, 04 Dec 2024 10:42:23 GMT",
"timestamp": 1733308943,
"description": "Raise the max commitment size by one order of magnitude to 10000 celestia blocks.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n sourceHashes.1:\n- \"0x424268ec553b52a09ec29bc220e95a4dc19def7e459d1cc8a541ee0e2fd578e9\"\n+ \"0x13872c9ceb24afa3e0819f2d13957fab016c612859cc40f542ee250f53e03dac\"\n values.$implementation:\n- \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n+ \"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"\n values.$pastUpgrades.3:\n+ [\"2024-12-02T19:09:05.000Z\",\"0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130\",[\"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.DATA_COMMITMENT_MAX:\n- 1000\n+ 10000\n }\n```"
}
]
},
{
"id": "84e654f7",
"date": "Wed, 04 Dec 2024 10:41:31 GMT",
"timestamp": 1733308891,
"description": "Raise the max commitment size by one order of magnitude to 10000 celestia blocks.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: None\n sourceHashes.1:\n- \"0x424268ec553b52a09ec29bc220e95a4dc19def7e459d1cc8a541ee0e2fd578e9\"\n+ \"0x13872c9ceb24afa3e0819f2d13957fab016c612859cc40f542ee250f53e03dac\"\n values.$implementation:\n- \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n+ \"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"\n values.$pastUpgrades.2:\n+ [\"2024-12-02T19:08:47.000Z\",\"0xcc2a77da632e84e5fb17e863ec744d5f0921b70c191487179dd9e28ab855a3be\",[\"0x46EbfC399d3913BB9b99E73675722417F9c5d416\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.DATA_COMMITMENT_MAX:\n- 1000\n+ 10000\n }\n```"
}
]
},
{
"id": "0dc5ac1e",
"date": "Thu, 14 Nov 2024 08:04:19 GMT",
"timestamp": 1731571459,
"description": "Updated verifier discovery, old ones frozen (zk cat updated).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-11-08.\n values.oldVerifier4.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x6A87EFd4e6B2Db1ed73129A8b9c51aaA583d49e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xd2832Cf1fC8bA210FfABF62Db9A8781153131d16)\n +++ description: None\n```"
}
]
},
{
"id": "7d6639d0",
"date": "Thu, 14 Nov 2024 08:04:13 GMT",
"timestamp": 1731571453,
"description": "Updated verifier discovery, old ones frozen (zk cat updated).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-11-08.\n values.oldVerifier4.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x6A87EFd4e6B2Db1ed73129A8b9c51aaA583d49e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xd2832Cf1fC8bA210FfABF62Db9A8781153131d16)\n +++ description: None\n```"
}
]
},
{
"id": "4cec3567",
"date": "Thu, 14 Nov 2024 08:04:06 GMT",
"timestamp": 1731571446,
"description": "Updated verifier discovery, old ones frozen (zk cat updated).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-11-08.\n values.oldVerifier4.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x6A87EFd4e6B2Db1ed73129A8b9c51aaA583d49e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0xd2832Cf1fC8bA210FfABF62Db9A8781153131d16)\n +++ description: None\n```"
}
]
},
{
"id": "8eb4ce2d",
"date": "Tue, 05 Nov 2024 16:07:18 GMT",
"timestamp": 1730822838,
"description": "Verifier program verification key changed, verifier implementation is the same.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n values.blobstreamProgramVkey:\n- \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n+ \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n }\n```"
}
]
},
{
"id": "82cd91aa",
"date": "Tue, 05 Nov 2024 16:06:54 GMT",
"timestamp": 1730822814,
"description": "Verifier program verification key changed, verifier implementation is the same.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: None\n values.blobstreamProgramVkey:\n- \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n+ \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n }\n```"
}
]
},
{
"id": "779b1773",
"date": "Tue, 05 Nov 2024 16:06:30 GMT",
"timestamp": 1730822790,
"description": "Verifier program verification key changed, verifier implementation is the same.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n values.blobstreamProgramVkey:\n- \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n+ \"0x00a6ea49173d4b0b544a24a5a7474e76d1fda8f0f7e541cbb294d2b7249d7bcb\"\n }\n```"
}
]
},
{
"id": "2fec3692",
"date": "Tue, 01 Oct 2024 15:45:10 GMT",
"timestamp": 1727797510,
"description": "New verifier.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-09-21.\n values.oldVerifier2.1:\n- false\n+ true\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen).\n values.verifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1764C29FBd94865198588f10FC75D4f6636d158d\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x1764C29FBd94865198588f10FC75D4f6636d158d)\n +++ description: None\n```"
}
]
},
{
"id": "c5d1c7d1",
"date": "Tue, 01 Oct 2024 15:44:57 GMT",
"timestamp": 1727797497,
"description": "New verifier.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-09-21.\n values.oldVerifier2.1:\n- false\n+ true\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen).\n values.verifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1764C29FBd94865198588f10FC75D4f6636d158d\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x1764C29FBd94865198588f10FC75D4f6636d158d)\n +++ description: None\n```"
}
]
},
{
"id": "1ae1a322",
"date": "Tue, 01 Oct 2024 15:44:43 GMT",
"timestamp": 1727797483,
"description": "New verifier used, oldVerifier2 frozen.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-09-21.\n values.oldVerifier2.1:\n- false\n+ true\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen).\n values.verifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1764C29FBd94865198588f10FC75D4f6636d158d\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x1764C29FBd94865198588f10FC75D4f6636d158d)\n +++ description: None\n```"
}
]
},
{
"id": "715cb3fe",
"date": "Thu, 05 Sep 2024 09:18:11 GMT",
"timestamp": 1725527891,
"description": "New verifier version. Gateway route to old verifier route is frozen, and new route is added with identifier 0xc865c1b6.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen).\n values.blobstreamVerifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc\"\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen). This verifier route was frozen on 2024-09-04.\n values.blobstreamVerifierOld.1:\n- false\n+ true\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc)\n +++ description: None\n```"
}
]
},
{
"id": "6af5baf3",
"date": "Thu, 05 Sep 2024 09:18:05 GMT",
"timestamp": 1725527885,
"description": "New verifier version. Gateway route to old verifier route is frozen, and new route is added with identifier 0xc865c1b6.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen).\n values.blobstreamVerifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc\"\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen). This verifier route was frozen on 2024-09-04.\n values.blobstreamVerifierOld.1:\n- false\n+ true\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc)\n +++ description: None\n```"
}
]
},
{
"id": "8319d7c0",
"date": "Thu, 05 Sep 2024 09:17:59 GMT",
"timestamp": 1725527879,
"description": "New verifier version. Gateway route to old verifier route is frozen, and new route is added with identifier 0xc865c1b6.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen).\n values.blobstreamVerifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc\"\n+++ description: The verifier contract address for Blobstream SP1, and whether it is frozen (true if frozen). This verifier route was frozen on 2024-09-04.\n values.blobstreamVerifierOld.1:\n- false\n+ true\n }\n```\n\n```diff\n+ Status: CREATED\n contract (0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc)\n +++ description: None\n```"
}
]
},
{
"id": "c782678c",
"date": "Fri, 30 Aug 2024 11:34:31 GMT",
"timestamp": 1725017671,
"description": "- The SP1 Verifier Gateway address is set in the Blobstream contract, and replaces the SuccinctGateway for routing to the correct verifier. The Guardian can update the SP1VerifierGateway address.\n- RequestHeaderRange and NextHeaderRange functions deprecated, together with their functionIds. FunctionIds were previously used when calling the SuccinctGateway to identify which verifier to use for proof verification. Now the verifier selector is contained in the first 4 bytes of the proof.\n- Verifier program verification key is now stored in the Blobstream contract and it is used in the verifier for proof verification. It can be updated by the Guardian.\n- CommitHeaderRange has now a permissioned mode, due to onlyApprovedRelayer modifier. Guardian can approve authorised relayers and toggle the permissioned mode through checkRelayer updates (true for permissioned, false for permissionless).\n\n- SP1VerifierGateway: contract that verifies proofs by routing to the correct verifier based on the verifier selector contained in the first 4 bytes of the proof. It additionally checks that to see that the verifier route is not frozen. The owner of the contract can add and freeze routes.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe) {\n +++ description: None\n values.$implementation:\n- \"0x41a87C543EBcbD93706CF5260AD057D9eCBA1caE\"\n+ \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n values.$upgradeCount:\n- 1\n+ 2\n values.DATA_COMMITMENT_MAX:\n- 10000\n+ 1000\n values.gateway:\n- \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId:\n- \"0xdb3232748ba9f2906d9d2ce97d2fac3963d4346de23c30521f346e10ddad82f7\"\n values.nextHeaderFunctionId:\n- \"0xf7ab2ac6f5ccf2da79050efcc0dbdb06d5ae05a332f58076aeac7fc8c73811fe\"\n values.VERSION:\n- \"0.1.0\"\n+ \"1.1.0\"\n values.blobstreamProgramVkey:\n+ \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n values.checkRelayer:\n+ true\n values.gateway_deprecated:\n+ \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId_deprecated:\n+ \"0xdb3232748ba9f2906d9d2ce97d2fac3963d4346de23c30521f346e10ddad82f7\"\n values.isRelayerApproved:\n+ true\n values.nextHeaderFunctionId_depcrecated:\n+ \"0xf7ab2ac6f5ccf2da79050efcc0dbdb06d5ae05a332f58076aeac7fc8c73811fe\"\n values.verifier:\n+ \"0x3B6041173B80E77f038f3F2C0f9744f04837185e\"\n errors:\n- {\"isRelayerApproved\":\"Execution reverted\"}\n derivedName:\n- \"BlobstreamX\"\n+ \"SP1Blobstream\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xc350F063C13a3Ca21331610fe159E697a5c9c2FB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1Multisig (0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
},
{
"id": "22d7ecc7",
"date": "Fri, 30 Aug 2024 11:34:21 GMT",
"timestamp": 1725017661,
"description": "- The SP1 Verifier Gateway address is set in the Blobstream contract, and replaces the SuccinctGateway for routing to the correct verifier. The Guardian can update the SP1VerifierGateway address.\n- RequestHeaderRange and NextHeaderRange functions deprecated, together with their functionIds. FunctionIds were previously used when calling the SuccinctGateway to identify which verifier to use for proof verification. Now the verifier selector is contained in the first 4 bytes of the proof.\n- Verifier program verification key is now stored in the Blobstream contract and it is used in the verifier for proof verification. It can be updated by the Guardian.\n- CommitHeaderRange has now a permissioned mode, due to onlyApprovedRelayer modifier. Guardian can approve authorised relayers and toggle the permissioned mode through checkRelayer updates (true for permissioned, false for permissionless).\n\n- SP1VerifierGateway: contract that verifies proofs by routing to the correct verifier based on the verifier selector contained in the first 4 bytes of the proof. It additionally checks that to see that the verifier route is not frozen. The owner of the contract can add and freeze routes.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n values.$implementation:\n- \"0xfb19439fBa9f16aA720be6bE0e53465a9733C964\"\n+ \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n values.$upgradeCount:\n- 2\n+ 3\n values.DATA_COMMITMENT_MAX:\n- 10000\n+ 1000\n values.gateway:\n- \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId:\n- \"0x46132c86ed84fdc655528f80f9291dd3116b04902036b96925edc78bbf52b8ca\"\n values.nextHeaderFunctionId:\n- \"0x2ce8ca4f509cb09415b5a6ca6afa265571dac0b9f6ddb46f487e017fec71cf25\"\n values.VERSION:\n- \"0.1.0\"\n+ \"1.1.0\"\n values.blobstreamProgramVkey:\n+ \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n values.checkRelayer:\n+ true\n values.gateway_deprecated:\n+ \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId_deprecated:\n+ \"0x46132c86ed84fdc655528f80f9291dd3116b04902036b96925edc78bbf52b8ca\"\n values.isRelayerApproved:\n+ true\n values.nextHeaderFunctionId_depcrecated:\n+ \"0x2ce8ca4f509cb09415b5a6ca6afa265571dac0b9f6ddb46f487e017fec71cf25\"\n values.verifier:\n+ \"0x3B6041173B80E77f038f3F2C0f9744f04837185e\"\n errors:\n- {\"isRelayerApproved\":\"Execution reverted\"}\n derivedName:\n- \"BlobstreamX\"\n+ \"SP1Blobstream\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xc350F063C13a3Ca21331610fe159E697a5c9c2FB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1Multisig (0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
},
{
"id": "cf901917",
"date": "Fri, 30 Aug 2024 11:34:11 GMT",
"timestamp": 1725017651,
"description": "- The SP1 Verifier Gateway address is set in the Blobstream contract, and replaces the SuccinctGateway for routing to the correct verifier. The Guardian can update the SP1VerifierGateway address.\n- RequestHeaderRange and NextHeaderRange functions deprecated, together with their functionIds. FunctionIds were previously used when calling the SuccinctGateway to identify which verifier to use for proof verification. Now the verifier selector is contained in the first 4 bytes of the proof.\n- Verifier program verification key is now stored in the Blobstream contract and it is used in the verifier for proof verification. It can be updated by the Guardian.\n- CommitHeaderRange has now a permissioned mode, due to onlyApprovedRelayer modifier. Guardian can approve authorised relayers and toggle the permissioned mode through checkRelayer updates (true for permissioned, false for permissionless).\n\n- SP1VerifierGateway: contract that verifies proofs by routing to the correct verifier based on the verifier selector contained in the first 4 bytes of the proof. It additionally checks that to see that the verifier route is not frozen. The owner of the contract can add and freeze routes.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) {\n +++ description: None\n values.$implementation:\n- \"0xfb19439fBa9f16aA720be6bE0e53465a9733C964\"\n+ \"0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23\"\n values.$upgradeCount:\n- 2\n+ 3\n values.DATA_COMMITMENT_MAX:\n- 10000\n+ 1000\n values.gateway:\n- \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId:\n- \"0x949dc389c82c63394889813be437513ebc5d06f43bbc9c1e2eb4b791faade1a0\"\n values.nextHeaderFunctionId:\n- \"0x044611c8d01cf88e09811f3270a654e7faf319e96b38f3dd7f9d218c8bb4d0ef\"\n values.VERSION:\n- \"0.1.0\"\n+ \"1.1.0\"\n values.blobstreamProgramVkey:\n+ \"0x0038c5c5568fe5e1ae267efb1298a7792d1cda00bccc2d1d4bfa4c1511e06380\"\n values.checkRelayer:\n+ true\n values.gateway_deprecated:\n+ \"0x6c7a05e0AE641c6559fD76ac56641778B6eCd776\"\n values.headerRangeFunctionId_deprecated:\n+ \"0x949dc389c82c63394889813be437513ebc5d06f43bbc9c1e2eb4b791faade1a0\"\n values.isRelayerApproved:\n+ true\n values.nextHeaderFunctionId_depcrecated:\n+ \"0x044611c8d01cf88e09811f3270a654e7faf319e96b38f3dd7f9d218c8bb4d0ef\"\n values.verifier:\n+ \"0x3B6041173B80E77f038f3F2C0f9744f04837185e\"\n errors:\n- {\"isRelayerApproved\":\"Execution reverted\"}\n derivedName:\n- \"BlobstreamX\"\n+ \"SP1Blobstream\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xc350F063C13a3Ca21331610fe159E697a5c9c2FB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1Multisig (0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
},
{
"id": "069a3640",
"date": "Thu, 13 Jun 2024 21:20:54 GMT",
"timestamp": 1718313654,
"description": "Initial mainnet BlobstreamX discovery.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract FunctionVerifier (0x037E57EF3a130CD23988a4Ed530d79d6f97a0f06)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctFeeVault (0x296666e937b270193B960a7cEC526B351F353166)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGateway (0x6c7a05e0AE641c6559fD76ac56641778B6eCd776)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BlobstreamX (0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BlobstreamXMultisig (0x8bF34D8df1eF0A8A7f27fC587202848E528018E6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctMultisig (0xd1999B562e74d9fbf57b4479b3fe8748BDF4e4A0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0xF33a22dFf8017813b95E5a05c9a97BaFE693001E)\n +++ description: None\n```"
}
]
},
{
"id": "3f407b2c",
"date": "Sun, 05 May 2024 12:28:41 GMT",
"timestamp": 1714912121,
"description": "A prover / relayer is added to the Succictgateway. It is whitelisted for both functionIds (headerRange and nextHeader) of BlobstreamX.\nSame change as on Base.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGateway (0x6c7a05e0AE641c6559fD76ac56641778B6eCd776) {\n +++ description: None\n+++ description: List of prover (relayer) addresses that are allowed to `fulfillCallback()`/`fulfillCall()` in the Succinctgateway for the headerRange function ID of BlobstreamX.\n+++ type: PERMISSION\n+++ severity: LOW\n values.headerRangeProvers.1:\n+ \"0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D\"\n+++ description: List of prover (relayer) addresses that are allowed to `fulfillCallback()`/`fulfillCall()` in the Succinctgateway for the nextHeader function ID of BlobstreamX.\n+++ type: PERMISSION\n+++ severity: LOW\n values.nextHeaderProvers.1:\n+ \"0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D\"\n }\n```\n\n```diff\n contract BlobstreamXMultisig (0x738a9b55304f9fcF776B3BA285e50c0f9eF77997) {\n +++ description: Admin of the BlobstreamX contract. VerifierOwner of the BlobstreamX functionIDs in the SuccinctGateway.\n values.nonce:\n- 6\n+ 7\n }\n```"
}
]
},
{
"id": "a35fdba3",
"date": "Sun, 05 May 2024 12:23:55 GMT",
"timestamp": 1714911835,
"description": "A prover / relayer is added to the Succictgateway. It is whitelisted for both functionIds (headerRange and nextHeader) of BlobstreamX.\nSame change as on Arbitrum.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract BlobstreamXMultisig (0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6) {\n +++ description: Admin of the BlobstreamX contract. VerifierOwner of the BlobstreamX functionIDs in the SuccinctGateway.\n values.nonce:\n- 6\n+ 7\n }\n```\n\n```diff\n contract SuccinctGateway (0x6c7a05e0AE641c6559fD76ac56641778B6eCd776) {\n +++ description: None\n+++ description: List of prover (relayer) addresses that are allowed to `fulfillCallback()`/`fulfillCall()` in the Succinctgateway for the headerRange function ID of BlobstreamX.\n+++ type: PERMISSION\n+++ severity: LOW\n values.headerRangeProvers.1:\n+ \"0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D\"\n+++ description: List of prover (relayer) addresses that are allowed to `fulfillCallback()`/`fulfillCall()` in the Succinctgateway for the nextHeader function ID of BlobstreamX.\n+++ type: PERMISSION\n+++ severity: LOW\n values.nextHeaderProvers.1:\n+ \"0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract FunctionVerifier (0xe859F565f4AdF7AAc3a94a6C6d89093d754Ec4f6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FunctionVerifier (0xF2415C44F47983F7dD22003B46A034B1F1d04e44)\n +++ description: None\n```"
}
]
},
{
"id": "47f38de5",
"date": "Wed, 03 Apr 2024 18:46:58 GMT",
"timestamp": 1712170018,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract SuccinctFeeVault (0x296666e937b270193B960a7cEC526B351F353166)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FunctionVerifier (0x4d0C32ddA9De7CD89e198cFe5E01470A49b8acD3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGateway (0x6c7a05e0AE641c6559fD76ac56641778B6eCd776)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (0x738a9b55304f9fcF776B3BA285e50c0f9eF77997)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BlobstreamX (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (0xdC00f2469023a7b0b1D5b6abE2F736F90955e7F3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FunctionVerifier (0xfEA1EFaE3cDe8C524168726a7fc46BF2134bb72C)\n +++ description: None\n```"
}
]
},
{
"id": "a74035e0",
"date": "Wed, 03 Apr 2024 08:59:00 GMT",
"timestamp": 1712134740,
"description": "Initial discovery",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract FunctionVerifier (0x294A466b50672029D0a8d7ad7E00AEfDeaE9f529)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctFeeVault (0x296666e937b270193B960a7cEC526B351F353166)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGateway (0x6c7a05e0AE641c6559fD76ac56641778B6eCd776)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BlobstreamX (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (0xdC00f2469023a7b0b1D5b6abE2F736F90955e7F3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FunctionVerifier (0xeEadfac6E689443d237B10F78e8424579e2e0177)\n +++ description: None\n```"
}
]
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "BOB (Build on Bitcoin) is an OP Stack rollup that aims to natively support the Bitcoin stack. The current implementation supports a variety of canonical and external bridging for BTC-related assets and a tBTC-v2 LightRelay smart contract for verifying Bitcoin transaction proofs through their blocks' headers on the L2.",
"links": {
"websites": [
"https://gobob.xyz"
],
"bridges": [
"https://app.gobob.xyz"
],
"documentation": [
"https://docs.gobob.xyz"
],
"explorers": [
"https://explorer.gobob.xyz?"
],
"repositories": [
"https://github.com/bob-collective"
],
"socialMedia": [
"https://twitter.com/build_on_bob",
"https://discord.com/invite/gobob",
"https://t.me/gobobxyz",
"https://youtube.com/@BuildOnBitcoin"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Boba is an OP stack Optimistic Rollup built by the Enya team as core contributors to the Boba Foundation.",
"links": {
"websites": [
"https://boba.network"
],
"bridges": [
"https://hub.boba.network/bridge"
],
"documentation": [
"https://docs.boba.network/"
],
"explorers": [
"https://eth.bobascan.com/",
"https://bobascan.com/"
],
"repositories": [
"https://github.com/bobanetwork/boba"
],
"socialMedia": [
"https://boba.network/",
"https://boba.network/blog/",
"https://enya.ai/about-us/",
"https://twitter.com/bobanetwork",
"https://t.me/bobanetwork",
"https://discord.com/invite/Hvu3zpFwWd"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "CartesiVM",
"type": "VM",
"name": "CartesiVM",
"description": "This project uses the Cartesi Machine to run its smart contracts and supports any programming language that can be ported to RISC-V architecture",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CartesiVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Cartesi",
"type": "Stack",
"name": "Built on the Cartesi stack",
"description": "The project is built on the Cartesi stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Cartesi Rollups"
}
},
{
"id": "OpMainnet",
"type": "L3ParentChain",
"name": "Built on top of OP Mainnet",
"description": "The project has OP Mainnet as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "OP Mainnet"
}
}
],
"description": "Bug Buster is an open source bug bounty platform for web3, powered by Cartesi.",
"links": {
"documentation": [
"https://github.com/crypto-bug-hunters/bug-buster/blob/main/README.md"
],
"repositories": [
"https://github.com/crypto-bug-hunters/bug-buster"
],
"socialMedia": [
"https://x.com/BugBusterApp",
"https://t.me/+G_CPMEhCHC04MzA5"
],
"websites": [
"https://bugbuster.app/"
],
"explorers": [
"https://optimism.cartesiscan.io/applications/0x3ff5c7383f614256053c3f6b86a47ba974937299"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "CartesiVM",
"type": "VM",
"name": "CartesiVM",
"description": "This project uses the Cartesi Machine to run its smart contracts and supports any programming language that can be ported to RISC-V architecture",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CartesiVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "Cartesi",
"type": "Stack",
"name": "Built on the Cartesi stack",
"description": "The project is built on the Cartesi stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Cartesi Rollups"
}
}
],
"description": "Cartesi PRT Honeypot is an application-specific Stage-2 rollup that stress-tests Cartesi Rollups’ security. Protected solely by Cartesi’s PRT (Permissionless Refereed Tournaments) fraud-proof algorithm, it turns its locked funds into an open bounty for anyone who can break the system. Users should not deposit unless they are willing to donate their funds to the Honeypot.",
"links": {
"websites": [
"https://cartesi.io/"
],
"documentation": [
"https://docs.cartesi.io/cartesi-rollups/",
"https://github.com/cartesi/honeypot/wiki/"
],
"explorers": [
"https://cartesiscan.io/",
"https://explorer.cartesi.io/"
],
"repositories": [
"https://github.com/cartesi/honeypot",
"https://github.com/cartesi/dave"
],
"socialMedia": [
"https://twitter.com/cartesiproject",
"https://discord.gg/G2tCH5KkcM",
"https://cartesi.io/blog/",
"https://reddit.com/r/cartesi/",
"https://youtube.com/@cartesiproject",
"https://t.me/cartesiproject",
"https://linkedin.com/company/cartesiproject",
"https://instagram.com/cartesiproject/",
"https://medium.com/cartesi"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "CartesiVM",
"type": "VM",
"name": "CartesiVM",
"description": "This project uses the Cartesi Machine to run its smart contracts and supports any programming language that can be ported to RISC-V architecture",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CartesiVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "Cartesi",
"type": "Stack",
"name": "Built on the Cartesi stack",
"description": "The project is built on the Cartesi stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Cartesi Rollups"
}
}
],
"description": "Cartesi PRT Honeypot v2 is an application-specific Stage-2 rollup that stress-tests Cartesi Rollups’ security. Protected solely by Cartesi’s PRT (Permissionless Refereed Tournaments) fraud-proof algorithm, it turns its locked funds into an open bounty for anyone who can break the system. Users should not deposit unless they are willing to donate their funds to the Honeypot.",
"links": {
"websites": [
"https://cartesi.io/"
],
"documentation": [
"https://docs.cartesi.io/cartesi-rollups/",
"https://github.com/cartesi/honeypot/wiki/"
],
"explorers": [
"https://cartesiscan.io/",
"https://explorer.cartesi.io/"
],
"repositories": [
"https://github.com/cartesi/honeypot",
"https://github.com/cartesi/dave"
],
"socialMedia": [
"https://twitter.com/cartesiproject",
"https://discord.gg/G2tCH5KkcM",
"https://cartesi.io/blog/",
"https://reddit.com/r/cartesi/",
"https://youtube.com/@cartesiproject",
"https://t.me/cartesiproject",
"https://linkedin.com/company/cartesiproject",
"https://instagram.com/cartesiproject/",
"https://medium.com/cartesi"
]
}
}
[REMOVED]
celestia
+0 -569
+0 -1
"celestia"
+0 -1
"celestia"
+0 -1
"Celestia"
+0 -1
null
+0 -1
null
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -24
{
"badges": [],
"description": "Celestia is a modular data availability network that allows L2s to post arbitrary data as blobs.",
"links": {
"websites": [
"https://celestia.org/"
],
"documentation": [
"https://docs.celestia.org/"
],
"repositories": [
"https://github.com/celestiaorg"
],
"explorers": [
"https://celenium.io/"
],
"socialMedia": [
"https://x.com/Celestia",
"https://discord.com/invite/YsnTPcSfWQ",
"https://t.me/CelestiaCommunity",
"https://youtube.com/@CelestiaNetwork"
]
}
}
+0 -1
null
+0 -1
null
+0 -37
[
{
"title": "Mainnet Launch",
"url": "https://blog.celestia.org/celestia-mainnet-is-live/",
"date": "2023-10-31T00:00:00Z",
"description": "Celestia mainnet launches.",
"type": "general"
},
{
"title": "Ginger upgrade",
"url": "https://blog.celestia.org/ginger/",
"date": "2024-12-12T00:00:00Z",
"description": "Celestia Ginger upgrade cuts the block time in half from 12 to 6 seconds.",
"type": "general"
},
{
"title": "Block size increase to 8MB",
"url": "https://x.com/celestia/status/1881756463317860430/",
"date": "2025-01-28T00:00:00Z",
"description": "Celestia onchain governance votes to increase the block size from 2MB to 8MB.",
"type": "general"
},
{
"title": "Matcha upgrade",
"url": "https://blog.celestia.org/matcha/",
"date": "2025-11-24T00:00:00Z",
"description": "Matcha upgrade enables 128MB blocks, reduces unbonding period to 14 days, and introduces high-throughput block propagation.",
"type": "general"
},
{
"title": "Block size increase to 32MB",
"url": "https://celenium.io/proposal/8",
"date": "2025-12-03T00:00:00Z",
"description": "Celestia onchain governance votes to increase the block size from 8MB to 32MB.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -461
{
"consensusAlgorithm": {
"name": "CometBFT",
"description": "CometBFT is the canonical implementation of the Tendermint consensus algorithm.\n CometBFT allows for a state transition machine to be written in any programming language, and it allows for secure replication across many machines.\n The consensus protocol is fork-free by construction under an honest majority of stake assumption.",
"blockTime": 6,
"consensusFinality": 1,
"unbondingPeriod": 1213200
},
"dataAvailabilitySampling": {
"erasureCodingScheme": "2D Reed-Solomon",
"erasureCodingProof": "Fraud proofs"
},
"economicSecurity": {
"token": {
"symbol": "TIA",
"decimals": 6,
"coingeckoId": "celestia"
}
},
"finality": 6,
"pruningWindow": 608400,
"risks": {
"economicSecurity": {
"value": {
"value": "Staked assets",
"sentiment": "good",
"description": "There are staked assets on the DA layer that can be slashed in case of a data withholding attack. A dishonest supermajority of validators must collude to finalize a block with missing or invalid data. The invalid block would be added to the chain but rejected by honest full nodes.\n "
},
"adjustSecurityRisk": true
},
"fraudDetection": {
"value": "DAS",
"sentiment": "warning",
"description": "The DA layer uses data availability sampling (DAS) to protect against data withholding attacks. However, the block reconstruction protocol, which enables the minimum number of light nodes to collectively reconstruct the block, is still under development.",
"secondLine": ""
}
},
"sovereignProjectsTrackingConfig": [
{
"projectId": "battle-for-blockchain",
"name": "Battle for Blockchain",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5047670,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAKzFLTn1xOipecg="
}
]
},
{
"projectId": "bullet",
"name": "Bullet",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 10168980,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAGJsdGJhdGNoLWw="
},
{
"type": "celestia",
"sinceBlock": 10183821,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAGJsdGJhdGNoLXQ="
},
{
"type": "celestia",
"sinceBlock": 10456208,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAGJsdGJhdGNoLXo="
}
]
},
{
"projectId": "camp",
"name": "Camp",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 6459709,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAB7AAAAAAAAAeQ="
}
]
},
{
"projectId": "civitia",
"name": "Civitia",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 4492300,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAEwLOhV+kOUlUq4="
}
]
},
{
"projectId": "clique",
"name": "Clique",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3161819,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAARQV7t6sd4A="
}
]
},
{
"projectId": "echelon",
"name": "Echelon",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5659637,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAItyY42OaTC/skE="
}
]
},
{
"projectId": "echos",
"name": "Echos",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3161819,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/cZMN1XLG8="
}
]
},
{
"projectId": "eden",
"name": "Eden",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 9409947,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAORr5sRrVhwIjmU="
},
{
"type": "celestia",
"sinceBlock": 9413424,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAoxK5AW18ozObY="
}
]
},
{
"projectId": "embr-fun",
"name": "Embr.fun",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5954601,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMbONmnisjTDz4I="
}
]
},
{
"projectId": "flame",
"name": "Flame",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3161819,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAL2dxfeNrJ+tg6Y="
}
]
},
{
"projectId": "flynet",
"name": "Flynet",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5188001,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAACyPE7Ql9zwA="
}
]
},
{
"projectId": "forma",
"name": "Forma",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3161819,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAKKnitomrCy/HoY="
}
]
},
{
"projectId": "foundation-network",
"name": "Foundation Network",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3667737,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAN/xAxpagCrjLVQ="
}
]
},
{
"projectId": "hibachi",
"name": "Hibachi",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5979823,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAABoaWJhY2hpLXM="
},
{
"type": "celestia",
"sinceBlock": 5981133,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhpYmFjaGk="
}
]
},
{
"projectId": "ing",
"name": "ING",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5945453,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAALdhUSKgKHU0Zx0="
}
]
},
{
"projectId": "inertia",
"name": "Inertia",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5941532,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAEg2If2QGyq4ZRQ="
}
]
},
{
"projectId": "intergaze",
"name": "Intergaze",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5748411,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAIoZCJNLh1XvOZA="
}
]
},
{
"projectId": "milkyway",
"name": "Milkyway",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5298640,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAB2AZsEwLd1LLHk="
}
]
},
{
"projectId": "onchain",
"name": "Onchain",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3161819,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAABNfLrOLSCTY="
}
]
},
{
"projectId": "perennial",
"name": "Perennial",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 3886561,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAaToZYrE0tA="
}
]
},
{
"projectId": "rave",
"name": "Rave",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5645296,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAF45zaUciayEPXE="
}
]
},
{
"projectId": "relay-chain",
"name": "Relay Chain",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 9272873,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAHJlbGF5LWRhdGE="
}
]
},
{
"projectId": "rena",
"name": "Rena",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5775045,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMxohfftlR5t59s="
}
]
},
{
"projectId": "rivalz-network",
"name": "Rivalz Network",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 4932528,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMJ/xGlNMdE="
}
]
},
{
"projectId": "xo-market",
"name": "XO Market",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 8164261,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAACnGTcXcpKRnenc="
},
{
"type": "celestia",
"sinceBlock": 8383370,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAEjr00EdZDGvoMU="
}
]
},
{
"projectId": "yominet",
"name": "Yominet",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5966190,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAFjh+OUc/ORU/0o="
}
]
},
{
"projectId": "zaar",
"name": "Zaar",
"daTrackingConfig": [
{
"type": "celestia",
"sinceBlock": 5587852,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAM8NBxiaOQwFwQc="
}
]
}
],
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n\n## Consensus\nCelestia uses CometBFT, the canonical implementation of Tendermint consensus protocol. The consensus protocol is fork-free by construction under an honest majority of stake assumption.\nCelestia achieves finality at each block, with an average time between blocks of 6 seconds.\n## Blobs\nIn Celestia, blobs are user-submitted data that do not modify the blockchain state. \nEach blob has two components, one is a binary object of raw data bytes, and the other is the namespace of the specific application for which the blob data is intended for.\n\n\n\n\nAll data posted in a Celestia blob is divided into chunks of fixed size, called shares, and each blob is arranged in a k * k matrix of shares. The maximum original square size is 512 (k = 512), for a total of 262,144 shares.\n\n\n\n\nCelestia shares' rows and columns are erasure-coded into a 2k * 2k matrix and committed to in a Namespaced Merkle Trees (NMTs), a version of a standard Merkle tree using a namespaced hash function. \nIn NMTs, every node in the tree includes the range of namespaces of all its child nodes, allowing applications to request and retrieve data for a specific namespace sub-tree while maintaining all functionalities (e.g., inclusion and range proofs) of a standard Merkle tree.\n\n\n\n\nUltimately, a single data root (availableDataRoot) of the Merkle tree is computed with the row and column roots as leaves. This data root is included in the block header as the root of commitments to erasure-coded data so that individual shares in the matrix can be proven to belong to a single data root.\n\n\n\n\n## Data Availability Sampling (DAS)\n\nTo ensure data availability, Celestia light nodes perform sampling on the 2k x 2k data matrix. Each light node randomly selects a set of unique coordinates within the extended matrix and requests the corresponding data shares and Merkle proofs from full nodes.\nCurrently, a Celestia light node must perform a minimum of 16 samples before declaring that a block is available.\nThis sampling rate ensures that given the minimum number of unavailable shares, a light client will sample at least one unavailable share with a 99% probability.\n\nFor more details on DAS probabilistic analysis, see the Fraud and Data Availability Proofs paper.\n\n\n\n\n## Erasure Coding Proof\nLight nodes performing data availability sampling must have the guarantee that the sampled data is erasure coded correctly. In Celestia, light nodes can be notified of a maliciously encoded block through Bad Encoding Fraud Proofs (BEFPs). Full nodes receiving invalid erasure-coded data can generate a fraud-proof to be transmitted to all light and full nodes in the DA network. The proof is generated by full nodes reconstructing the original data from the block data, and verifying that the recomputed data root matches the data root of the block header. \nUpon receiving and verifying the BEFP, all Celestia nodes should halt providing services (e.g., submitTx).\n\n## L2s Data Availability\nL2s can post data to Celestia by submitting blobs through a payForBlobs transaction. The transaction can include data as a single blob or multiple blobs, with the total maximum size determined by the maximum block size. The transaction fee is determined by the size of the data and the current gas price. \nApplications can then retrieve the data by querying the Celestia blockchain for the data root of the blob and the namespace of the application. The data can be reconstructed by querying the Celestia network for the shares of the data matrix and reconstructing the data using the erasure coding scheme.",
"references": [
{
"title": "Celestia Specifications",
"url": "https://celestiaorg.github.io/celestia-app/data_structures.html"
},
{
"title": "Celestia Core - CometBFT",
"url": "https://github.com/celestiaorg/celestia-core"
},
{
"title": "Celestia Node - Data Retrieval",
"url": "https://github.com/celestiaorg/celestia-node/blob/9ff58570ef86e505b718abfc755fd18643a2284c/share/eds/retriever.go#L60"
},
{
"title": "Bad Encoding Fraud Proofs",
"url": "https://github.com/celestiaorg/celestia-node/blob/main/docs/adr/adr-006-fraud-service.md"
},
{
"title": "Fraud and Data Availability Proofs paper",
"url": "https://arxiv.org/pdf/1809.09044"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "a dishonest supermajority of Celestia validators finalizes an unavailable block, and there aren't light nodes on the network verifying data availability, or they fail at social signaling unavailable data."
},
{
"category": "Funds can be lost if",
"text": "a dishonest supermajority of Celestia validators finalizes an unavailable block, and the light nodes on the network cannot collectively reconstruct the block."
}
]
},
"throughput": [
{
"size": 33554432,
"frequency": 6,
"sinceTimestamp": 1764802980
},
{
"size": 8388608,
"frequency": 6,
"sinceTimestamp": 1738022400
},
{
"size": 1974272,
"frequency": 6,
"sinceTimestamp": 1733961600
},
{
"size": 1974272,
"frequency": 12,
"sinceTimestamp": 1698710400
}
],
"type": "Public Blockchain",
"usedWithoutBridgeIn": [
{
"id": "ancient",
"name": "Ancient8",
"slug": "ancient8"
},
{
"id": "eclipse",
"name": "Eclipse",
"slug": "eclipse"
},
{
"id": "lightlink",
"name": "LightLink",
"slug": "lightlink"
},
{
"id": "mantapacific",
"name": "Manta Pacific",
"slug": "mantapacific"
},
{
"id": "nillion",
"name": "Nillion",
"slug": "nillion"
},
{
"id": "orderly",
"name": "Orderly Network",
"slug": "orderly"
},
{
"id": "river",
"name": "Towns",
"slug": "towns"
}
],
"validators": {
"type": "dynamic"
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDAVerifier",
"type": "DA",
"name": "EigenDA with DA Verifier",
"description": "This project uses EigenDA and integrates the DACert Verifier to validate DA commitments.",
"action": {
"type": "publicDaHighlight",
"slug": "eigendaverifier"
}
"description": "This project uses EigenDA and integrates the DACert Verifier to validate DA commitments."
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "MigratedFromL1",
"type": "Other",
"name": "Migrated from L1 to Ethereum L2",
"description": "This project has migrated from being a standalone L1 blockchain to an Ethereum L2",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Migrated from L1 to Ethereum L2"
}
}
],
"description": "Celo is an Ethereum Optimium based on the OP stack, scaling real-world solutions & leading a thriving new digital economy for all.",
"links": {
"websites": [
"https://celo.org/",
"https://forum.celo.org/"
],
"bridges": [
"https://superbridge.app/celo"
],
"documentation": [
"https://docs.celo.org/"
],
"explorers": [
"https://explorer.celo.org/mainnet/",
"https://celoscan.io",
"https://celo.blockscout.com/"
],
"repositories": [
"https://github.com/celo-org"
],
"socialMedia": [
"https://x.com/Celo",
"https://discord.com/invite/celo",
"https://blog.celo.org/"
],
"other": [
"https://growthepie.com/chains/celo"
]
}
}
+2 -4
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "DACert Verifier",
"sentiment": "warning",
"description": "EigenDA V3 certificates are verified by the proof system through the DACert Verifier contract, which validates certificates against operator signatures and stake thresholds.",
"projectId": "eigenda"
"description": "EigenDA V3 certificates are verified by the proof system through the DACert Verifier contract, which validates certificates against operator signatures and stake thresholds."
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+0 -6
[
{
"type": "ethereum",
"daLayer": "ethereum",
"inbox": "0xff00000000000000000000000000000000042220",
"sequencers": [
"0x0cd08c7f7A96AA9635f761b49216B9eA74C5cA60"
],
"sinceBlock": 22038831
},
{
"type": "eigen-da",
"customerId": "0xecf08b0a4f196e06e9aece95d5dd724bc121f09c",
"daLayer": "eigenda",
"sinceTimestamp": 1741806000
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "DeBank Chain is an OP stack Layer 2 on Ethereum that is deeply integrated into the DeBank ecosystem, allowing bridging directly from inside the Rabby Wallet.",
"links": {
"websites": [
"https://dbkchain.io/"
],
"documentation": [
"https://docs.dbkchain.io/"
],
"explorers": [
"https://scan.dbkchain.io/"
],
"socialMedia": [
"https://x.com/dbkchain",
"https://debank.com/official/117425"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "LoopringFork",
"type": "Fork",
"name": "Fork of Loopring",
"description": "The project is a fork of Loopring",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Loopring"
}
}
],
"description": "DeGate Legacy is a shut down deployment of DeGate, an app-specific ZK Rollup that enables a trustless, fast and low-fee decentralized order book exchange, helping users to trade easy and sleep easy. DeGate smart contracts are forked from Loopring V3.",
"links": {
"websites": [
"https://degate.com/"
],
"bridges": [
"https://app.degate.com/"
],
"documentation": [
"https://docs.degate.com/"
],
"repositories": [
"https://github.com/degatedev/protocols"
],
"socialMedia": [
"https://twitter.com/DeGateDex",
"https://discord.gg/degate",
"https://youtube.com/@degatedex1718",
"https://medium.com/degate",
"https://mirror.xyz/0x078a601f492043C8e7D0E15B0F8815f58b4c342f"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "LoopringFork",
"type": "Fork",
"name": "Fork of Loopring",
"description": "The project is a fork of Loopring",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Loopring"
}
}
],
"description": "DeGate V1 Legacy is a shut down deployment of DeGate, an app-specific ZK Rollup that enables a trustless, fast and low-fee decentralized order book exchange, helping users to trade easy and sleep easy. DeGate smart contracts are forked from Loopring V3.",
"links": {
"websites": [
"https://degate.com/"
],
"bridges": [
"https://app.degate.com/"
],
"documentation": [
"https://docs.degate.com/"
],
"repositories": [
"https://github.com/degatedev/protocols"
],
"socialMedia": [
"https://twitter.com/DeGateDex",
"https://discord.gg/degate",
"https://youtube.com/@degatedex1718",
"https://medium.com/degate",
"https://mirror.xyz/0x078a601f492043C8e7D0E15B0F8815f58b4c342f"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "LoopringFork",
"type": "Fork",
"name": "Fork of Loopring",
"description": "The project is a fork of Loopring",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Loopring"
}
}
],
"description": "DeGate is a ZK Rollup enabling a decentralized order book exchange. DeGate smart contracts are forked from Loopring V3.",
"links": {
"websites": [
"https://degate.com/"
],
"bridges": [
"https://app.degate.com/"
],
"documentation": [
"https://docs.degate.com/"
],
"repositories": [
"https://github.com/degatedev/protocols"
],
"socialMedia": [
"https://twitter.com/DeGateDex",
"https://discord.gg/degate",
"https://youtube.com/@degatedex1718",
"https://medium.com/degate",
"https://mirror.xyz/0x078a601f492043C8e7D0E15B0F8815f58b4c342f"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Arbitrum",
"type": "L3ParentChain",
"name": "Built on top of Arbitrum",
"description": "The project has Arbitrum as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Arbitrum"
}
}
],
"description": "Deri is an Ethereum Layer-3 that leverages Arbitrum Nitro to enable efficient cross-chain futures, options, and derivatives.",
"links": {
"websites": [
"https://deri.io/"
],
"documentation": [
"https://docs.deri.io/"
],
"explorers": [
"https://explorer-dchain.deri.io/"
],
"repositories": [
"https://github.com/OffchainLabs/nitro"
],
"bridges": [
"https://deri.io/#/bridge"
],
"socialMedia": [
"https://twitter.com/DeriProtocol",
"https://t.me/DeriProtocol",
"https://discord.com/invite/kb8ZbYgp8M"
]
}
}
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Base",
"type": "L3ParentChain",
"name": "Built on top of Base",
"description": "The project has Base as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Base"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Donatuz is a Layer-3 that aims at providing social media creators with innovative monetization tools to earn money from their content.",
"links": {
"websites": [
"https://donatuz.org/"
],
"bridges": [
"https://bridge.donatuz.com"
],
"explorers": [
"https://explorer.donatuz.com/"
],
"repositories": [
"https://github.com/Donatuz-Labs"
],
"socialMedia": [
"https://x.com/Donatuz_",
"https://t.me/donatuzz",
"https://linkedin.com/company/donatuz/"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "StarkEx",
"type": "Stack",
"name": "StarkEx",
"description": "This project was deployed utilizing the StarkEx technology from StarkWare",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "StarkEx"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
}
],
"description": "dYdX v3 aims to build a powerful and professional exchange for trading crypto assets where users can truly own their trades and, eventually, the exchange itself.",
"links": {
"websites": [
"https://dydx.exchange/"
],
"bridges": [
"https://trade.dydx.exchange/",
"https://margin.dydx.exchange/",
"https://dydx.l2beat.com"
],
"documentation": [
"https://docs.starkware.co/starkex/",
"https://docs.dydx.exchange/",
"https://docs.dydx.community/dydx-governance/"
],
"explorers": [
"https://dydx.l2beat.com"
],
"repositories": [
"https://github.com/starkware-libs/starkex-contracts",
"https://github.com/dydxprotocol/"
],
"socialMedia": [
"https://dydx.exchange/blog",
"https://twitter.com/dYdX",
"https://discord.gg/dydx",
"https://youtube.com/c/dydxprotocol",
"https://reddit.com/r/dydxprotocol/",
"https://linkedin.com/company/dydx"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "SolanaVM",
"type": "VM",
"name": "SolanaVM",
"description": "This project uses the Solana Virtual Machine to run its smart contracts",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "SolanaVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
}
],
"description": "Eclipse is a sidechain powered by the Solana Virtual Machine (SVM).",
"links": {
"websites": [
"https://eclipse.xyz/"
],
"bridges": [
"https://app.eclipse.xyz/"
],
"documentation": [
"https://docs.eclipse.xyz/"
],
"explorers": [
"https://eclipsescan.xyz/"
],
"repositories": [
"https://github.com/Eclipse-Laboratories-Inc"
],
"socialMedia": [
"https://twitter.com/eclipsefnd",
"https://discord.com/invite/eclipse-fnd",
"https://mirror.xyz/eclipsemainnet.eth"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjbGlwc2U="
}
]
null
[REMOVED]
eigenda
+0 -1847
+0 -1
"eigenda"
+0 -1
"eigenda"
+0 -1
"EigenDA"
+0 -1
null
+0 -4
[
"EigenLayer",
"EigenCloud"
]
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -21
{
"badges": [],
"description": "EigenDA is a data availability solution built on EigenLayer.",
"links": {
"websites": [
"https://www.eigenda.xyz/"
],
"documentation": [
"https://docs.eigenda.xyz/overview"
],
"repositories": [
"https://github.com/Layr-Labs/eigenda"
],
"explorers": [
"https://blobs.eigenda.xyz/"
],
"socialMedia": [
"https://x.com/eigen_da"
]
}
}
+0 -8
{
"primary": {
"light": "#6258FF"
},
"secondary": {
"light": "#6258FF"
}
}
+0 -1
null
+0 -23
[
{
"title": "EigenDA V2 launch",
"url": "https://x.com/0xkydo/status/1950571973790363737",
"date": "2025-07-30T00:00:00Z",
"description": "EigenDA V2 launch on Ethereum mainnet.",
"type": "general"
},
{
"title": "EigenDA launch on mainnet",
"url": "https://blog.eigenlayer.xyz/mainnet-launch-eigenlayer-eigenda/",
"date": "2024-04-09T00:00:00Z",
"description": "EigenLayer and EigenDA launch on the Ethereum mainnet.",
"type": "general"
},
{
"title": "EIGEN token unlock",
"url": "https://x.com/eigenlayer/status/1840967244408344619",
"date": "2024-10-01T00:00:00Z",
"description": "EIGEN token becomes transferable.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -269
{
"finality": 600,
"pruningWindow": 1209600,
"risks": {
"economicSecurity": {
"value": {
"value": "No slashing",
"sentiment": "bad",
"description": "Node operators are required to stake a minimum of 32 ETH (first quorum) or 1 EIGEN (second quorum) to become members of the DA network. Although slashing is enabled at EigenLayer protocol level, individual AVSs like EigenDA need to activate it by migrating to Operators Sets and defining slashing conditions. Currently, there is no slashing condition in place for misbehaving nodes. The EIGEN token social forking protocol for intersubjective attributable faults is under active development."
},
"adjustSecurityRisk": false
},
"fraudDetection": {
"value": "None",
"sentiment": "bad",
"description": "There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer."
}
},
"sovereignProjectsTrackingConfig": [
{
"projectId": "mantle-testnet",
"name": "Mantle-testnet",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0xc16267ecb2297f8a98fce214686e80697da91198"
}
]
},
{
"projectId": "matter-labs-wonderfi",
"name": "Matter Labs - WonderFi",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0xdaf4b26d608d58f53ab6f0758a12de01296ce5bf"
}
]
},
{
"projectId": "altlayer",
"name": "AltLayer",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0x4fdbd273b8d2c1c429a7e3078063c49528aa8264"
}
]
},
{
"projectId": "altlayer-2",
"name": "AltLayer-2",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0x1359fbd4b9bc9441a90436719426157526742c9a"
}
]
},
{
"projectId": "altlayer-cyber",
"name": "Altlayer Cyber",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "35.167.254.127"
}
]
},
{
"projectId": "conduit",
"name": "Conduit",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0x8dc6f0bd2ce3c40d633f5541e21e7574598f7c75"
}
]
},
{
"projectId": "layer-n",
"name": "Layer N",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0xd697219f32129f4544a554be015386fac9445507"
}
]
},
{
"projectId": "treasure",
"name": "Treasure",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 0,
"customerId": "0x96561d11f55f99f7cda780b77e524195bde1dcde"
}
]
},
{
"projectId": "openledger",
"name": "OpenLedger",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1752044400,
"customerId": "0xe16fabeb99a6c098e4d7b4d442df0c827d5a6d26"
}
]
},
{
"projectId": "alchemy-production",
"name": "Alchemy Production",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1753833600,
"customerId": "0x3ba8c28a0209dea4d0502031f83d09a17a389fb0"
}
]
},
{
"projectId": "powerloom",
"name": "Powerloom",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1754438400,
"customerId": "0x00efb491755397ab8727ab45c4aef5fdcd3ecef8"
}
]
},
{
"projectId": "soon-base",
"name": "SOON - Base",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1748934000,
"customerId": "0xa11b7dea1592011c0055c62efb9566a845493003"
}
]
},
{
"projectId": "polymer",
"name": "Polymer",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1731974400,
"customerId": "0xf33f8cfea5857ebf248520cf6bc33640680ff83b"
}
]
},
{
"projectId": "crestal",
"name": "Crestal",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1728399600,
"customerId": "0x2659d4555e482ec4131a493def0770a922c75de3"
}
]
},
{
"projectId": "conduit-2",
"name": "Conduit",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1719266400,
"customerId": "34.145.120.220"
}
]
},
{
"projectId": "conduit-3",
"name": "Conduit",
"daTrackingConfig": [
{
"type": "eigen-da",
"sinceTimestamp": 1719262800,
"customerId": "34.168.104.248"
}
]
}
],
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n\nEigenDA is composed by three types of off-chain entities: node operators, a disperser and a retriever.\n- EigenDA **operators** are node operators running the EigenDA node software and are registered to the EigenDA AVS in EigenLayer.\n- The **disperser** is the entity responsible for collecting the blobs from the sequencer, erasure coding them and generating the encoded blob's KZG commitments for each chunk. Although the disperser could be rollup-operated, it is currently a centralised entity operated by Eigen Labs.\n- Lastly, the **retriever** client is responsible for querying the EigenDA operators to retrieve blob chunks, verifying their integrity and reconstructing the original blob.\n\n### Operators Registration\nOperators register with the EigenDAServiceManager via the registerOperatorToAVS() function, enabling them to participate in the data availability network. They are responsible for holding and serving blobs data, and earn rewards for their participation in the network.\n\n\n\n### Operators Stake Update\n\nEigenDA operators' stake for quorum verification is fetched from the EigenDA StakeRegistry contract. To keep the stake in sync with changes in share balances in the EigenLayer DelegationManager (e.g., due to tokens delegated/undelegated to operators), the permissionless updateOperators() function on the RegistryCoordinator contract needs to be called periodically. This function updates the operators' quorum weight in the StakeRegistry contract based on the operators' shares in the EigenLayer DelegationManager contract.\n\n\n### Operators Blob Storage and Retrieval\n\nThe process of storing a blob on EigenDA works as follows. A sequencer submits blobs to the EigenDA Disperser, which erasure codes the blobs into chunks and generates KZG commitments and proofs for each chunk, certifying the correctness of the data. The disperser then sends the chunks, KZG commitments, and KZG proofs to the operators.\nMultiple operators are responsible for storing chunks of the encoded data blobs and their associated KZG commitment and proof.\nOnce the chunks, KZG commitments, and KZG proofs are sent to the operators, each of them generates a signature certifying that they have stored the data. These signatures are then sent to the Disperser which aggregates them and submits them to Ethereum by sending a transaction to the EigenDAServiceManager (the DA bridge).\n\n\n\n## Data Availability Certificates\n\nEigenDA uses different certificate formats depending on the version, each with corresponding verifier contracts:\n\n### Certificate Types\n- **V1 Certificates**: Used in EigenDA V1, verified through the EigenDAServiceManager contract via the confirmBatch() function. These certificates contain batch headers with KZG commitments and BLS aggregated signatures from operators.\n\n- **V2/V3 Certificates**: Used in EigenDA V2, which introduces significant architectural changes. The sequencer acts as the relayer and does not post batches to the service manager. Instead, certificates are verified through dedicated DACert Verifier contracts that correspond to different certificate versions.\n\n### EigenDA V2\nIn EigenDA V2, the architecture has evolved to improve efficiency:\n- **Sequencer as Relayer**: The sequencer now acts as the relayer, eliminating the need to post batches to the service manager\n- **Direct Certificate Verification**: Certificates are verified directly through version-specific DACert Verifier contracts\n- **Improved Throughput**: The new architecture supports higher throughput by removing bottlenecks in the batch confirmation process\n\n\n## L2 Data Availability\nThe verification process differs between EigenDA versions:\n\n**EigenDA V1**: The Disperser collects operators' signatures and submits them to the EigenDAServiceManager contract via the confirmBatch() function. This submission includes a call to the BLSRegistry contract to verify signatures and check whether the required quorum of operators' stake has been achieved.\n\n**EigenDA V2**: Certificate verification is handled by dedicated DACert Verifier contracts. Each certificate version corresponds to a specific verifier that validates the certificate format and cryptographic proofs without requiring batch submissions to a central service manager.\n\nThreshold BLS signatures are not used. Instead, the threshold check is performed on the signers' total stake fetched by the StakeRegistry, and the stake threshold percentage to reach is provided in the batch header input data.\n\nThe EigenDARollupUtils.sol library's verifyBlob() function can then be used by L2s to verify that a data blob is included within a confirmed batch in the EigenDAServiceManager (V1) or through the appropriate DACert Verifier contract (V2/V3).\nThis function is not used by the EigenDAServiceManager contract itself, but rather by L2 systems to prove inclusion of the blob and that their trust assumptions (i.e., batch confirmation threshold) were as expected.",
"references": [
{
"title": "EigenDA - Documentation",
"url": "https://docs.eigenda.xyz/overview"
},
{
"title": "EigenDA Integration Spec - Lifecycle Phases",
"url": "https://layr-labs.github.io/eigenda/integration/spec/5-lifecycle-phases.html#secure-dispersal"
},
{
"title": "EigenDA Disperser - Source Code",
"url": "https://github.com/Layr-Labs/eigenda/blob/2ed86a0c1dd730b56c8235031c19e08a9837bde8/disperser/batcher/batcher.go"
},
{
"title": "EigenDA Rollup Utils - Source Code",
"url": "https://github.com/Layr-Labs/eigenda-utils/blob/c4cbc9ec078aeca3e4a04bd278e2fb136bf3e6de/src/libraries/EigenDARollupUtils.sol"
}
],
"risks": [
{
"category": "Users can be censored if",
"text": "the disperser does not distribute data to EigenDA operators."
}
]
},
"throughput": [
{
"size": 15728640,
"frequency": 1,
"sinceTimestamp": 1719187200
},
{
"size": "NO_CAP",
"frequency": 1,
"sinceTimestamp": 1753833600
}
],
"type": "DA Service",
"usedWithoutBridgeIn": [
{
"id": "aevo",
"name": "Aevo",
"slug": "aevo"
},
{
"id": "fuel",
"name": "Fuel Ignition",
"slug": "fuel"
},
{
"id": "megaeth",
"name": "MegaETH",
"slug": "megaeth"
},
{
"id": "roninnetwork",
"name": "Ronin",
"slug": "ronin-network"
},
{
"id": "soon",
"name": "Soon Alpha Mainnet",
"slug": "soon"
}
],
"validators": {
"type": "static",
"count": 71
}
}
+0 -70
{
"daLayer": "eigenda",
"name": "DACert Verifier (EigenDA V2)",
"relayerType": {
"value": "SelfRelay",
"sentiment": "good",
"description": "In EigenDA V2 secure integrations, the rollup batcher includes the DA certificate on L1, no separate third-party relayer is required."
},
"risks": {
"committeeSecurity": {
"value": "Permissioned",
"sentiment": "warning",
"description": "The committee requires an honest minority (less than 1/3) of members (or the network stake) to prevent the DA bridge from accepting an unavailable data commitment.\n There are 71 operators currently registered in the committee, but entry or exit of members is partially controlled by a centralized entity.",
"orderHint": 1
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "Self propose",
"sentiment": "good",
"description": "Anyone can relay data availability commitments to the DA bridge. In case of current relayer failure, users can collect attestations from committee members and propose new data availability commitments to the DA bridge."
}
},
"technology": {
"description": "## EigenDA V2 Architecture\n\nEigenDA V2 introduces a more efficient architecture where the L2 sequencer acts as the relayer, eliminating the need for separate permissioned relayers:\n\n- **Sequencer as Relayer**: The sequencer acts as the relayer, eliminating the need for separate permissioned relayers\n- **Direct Certificate Verification**: Multiple DACert Verifier contracts handle different certificate versions (V2, V3). These contracts read operator/state metadata via EigenDA and EigenLayer core contracts (incl. ServiceManager components) and verify signatures and stake thresholds.\n- **Version-Specific Verification**: Each certificate version has a corresponding verifier contract that validates the specific certificate format and cryptographic proofs\n\n### Certificate Types and Verifiers\nEigenDA V2 supports multiple certificate formats:\n\n- **V2 Certificates**: Contain blob inclusion info, batch headers, and non-signer stakes with signatures. Verified through EigenDACertVerifierV2 contracts.\n- **V3 Certificates**: Similar structure to V2 but with reordered fields for optimization. Verified through EigenDACertVerifierV3 contracts.\n\n### Verification Process\n1. **Certificate Construction**: The EigenDA client constructs certificates from BlobStatusReply data received from the disperser\n2. **Version Detection**: The certificate version is determined from the commitment structure \n3. **Verifier Selection**: The appropriate DACert Verifier contract is selected based on the certificate version using the EigenDACertVerifierRouter\n4. **Onchain Verification**: The verifier contract's checkDACert function validates the certificate against operator signatures and stake thresholds\n\n### Secure Dispersal Flow\nBased on the EigenDA integration spec:\n\n1. EigenDA Client converts raw payload bytes into a blob\n2. Client fetches the appropriate EigenDACertVerifier contract address using the router\n3. Client submits blob request to disperser and polls for BlobStatusReply\n4. Once confirmation thresholds are met, client constructs the DACert from the reply\n5. Client calls the verifier's checkDACert function for onchain verification\n6. Based on verification status, client either returns the certificate or initiates failover\n\n### Router-Based Verifier Selection\nEigenDA V2 uses the EigenDACertVerifierRouter to dynamically select the appropriate verifier contract:\n- The router maps certificate versions to their corresponding verifier contracts\n- This allows for seamless upgrades and support for multiple certificate formats\n- The client queries the router using the latest block number to get the verifier for the reference block\n\nThis architecture provides improved throughput and eliminates single points of failure while maintaining the same security guarantees as V1.",
"references": [
{
"title": "EigenDA Integration Spec - Lifecycle Phases",
"url": "https://layr-labs.github.io/eigenda/integration/spec/5-lifecycle-phases.html#secure-dispersal"
},
{
"title": "EigenDA - Documentation",
"url": "https://docs.eigenda.xyz/overview"
},
{
"title": "EigenDA Disperser - Source Code",
"url": "https://github.com/Layr-Labs/eigenda/blob/2ed86a0c1dd730b56c8235031c19e08a9837bde8/disperser/batcher/batcher.go"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the sequencer posts an invalid certificate and EigenDA operators do not make the data available for verification."
},
{
"category": "Funds can be frozen if",
"text": "the EigenDACertVerifierRouter fails to provide correct verifier contract addresses."
}
]
},
"usedIn": [
{
"id": "celo",
"name": "Celo",
"slug": "celo"
},
{
"id": "rise",
"name": "RISE",
"slug": "rise"
}
],
"validationType": {
"value": "BLS Signature",
"description": "EigenDA V2 certificates require onchain BLS signatures verification through dedicated DACert Verifier contracts. Each certificate version corresponds to a specific verifier that validates the certificate format and proofs."
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
[]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -285
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EigenDAOperationsMultisig",
"name": "EigenDAOperationsMultisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with no delay**\n * StakeRegistry [via: ProxyAdmin]\n * BLSApkRegistry [via: ProxyAdmin]\n * RegistryCoordinator [via: ProxyAdmin]\n * EjectionManager [via: ProxyAdmin]\n * EigenDACertVerifierRouter [via: ProxyAdmin]\n * SocketRegistry [via: ProxyAdmin]\n * EigenDADisperserRegistry [via: ProxyAdmin]\n * EigenDAServiceManager [via: ProxyAdmin]\n * PaymentVault [via: ProxyAdmin]\n * IndexRegistry [via: ProxyAdmin]\n * EigenDARelayRegistry [via: ProxyAdmin]\n * EigenDAThresholdRegistry [via: ProxyAdmin]\n* Can interact with RegistryCoordinator\n * can add and remove strategies \n* Can interact with EigenDAServiceManager\n * can transfer ownership of the contract, update the metadata URI, set reward initiator and set batch confirmer ",
"accounts": [
{
"address": "eth:0x002721B4790d97dC140a049936aA710152Ba92D5",
"type": "Contract",
"isVerified": true,
"name": "0x0027…92D5",
"url": "https://etherscan.io/address/0x002721B4790d97dC140a049936aA710152Ba92D5"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xB646A0871af2b2c6e115b24D7E36d406780b6ca8",
"type": "EOA",
"isVerified": true,
"name": "0xB646…6ca8",
"url": "https://etherscan.io/address/0xB646A0871af2b2c6e115b24D7E36d406780b6ca8"
},
{
"address": "eth:0x1b6cC4C0670bBA2B992b82Cb8E76B286D63264c6",
"type": "EOA",
"isVerified": true,
"name": "0x1b6c…64c6",
"url": "https://etherscan.io/address/0x1b6cC4C0670bBA2B992b82Cb8E76B286D63264c6"
},
{
"address": "eth:0x403F4d4958409480502CdC78a54cE1B67263C17a",
"type": "EOA",
"isVerified": true,
"name": "0x403F…C17a",
"url": "https://etherscan.io/address/0x403F4d4958409480502CdC78a54cE1B67263C17a"
},
{
"address": "eth:0x891bbCfEF0C7504218b3156Cd0795cA5C8c7d489",
"type": "EOA",
"isVerified": true,
"name": "0x891b…d489",
"url": "https://etherscan.io/address/0x891bbCfEF0C7504218b3156Cd0795cA5C8c7d489"
}
],
"discoveryDrivenData": true
},
{
"id": "EigenLayerRewardsInitiatorMultisig",
"name": "EigenLayerRewardsInitiatorMultisig",
"description": "A Multisig with 3/4 threshold. \n* Can interact with EigenDAServiceManager\n * can create rewards submissions ",
"accounts": [
{
"address": "eth:0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A",
"type": "Contract",
"isVerified": true,
"name": "0x178e…1b8A",
"url": "https://etherscan.io/address/0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x900a9E1D5D5980973f513173249727505FA3bd22",
"type": "EOA",
"isVerified": true,
"name": "0x900a…bd22",
"url": "https://etherscan.io/address/0x900a9E1D5D5980973f513173249727505FA3bd22"
},
{
"address": "eth:0x5dc74815C14E2D4223B79D2dE94C4ccD5f5f7DA7",
"type": "EOA",
"isVerified": true,
"name": "0x5dc7…7DA7",
"url": "https://etherscan.io/address/0x5dc74815C14E2D4223B79D2dE94C4ccD5f5f7DA7"
},
{
"address": "eth:0x55688D9211bC00BA573A1e0672e5de050818a360",
"type": "EOA",
"isVerified": true,
"name": "0x5568…a360",
"url": "https://etherscan.io/address/0x55688D9211bC00BA573A1e0672e5de050818a360"
},
{
"address": "eth:0x68bbBD6c18B0bc1B563489A13a398345E9da23d0",
"type": "EOA",
"isVerified": true,
"name": "0x68bb…23d0",
"url": "https://etherscan.io/address/0x68bbBD6c18B0bc1B563489A13a398345E9da23d0"
}
],
"discoveryDrivenData": true
},
{
"id": "EigenDA Multisig",
"name": "EigenDA Multisig",
"description": "A Multisig with 3/8 threshold. \n* Can interact with EjectionManager\n * can eject DA operators from a quorum ",
"accounts": [
{
"address": "eth:0x338477FfaF63c04AC06048787f910671eC914B34",
"type": "Contract",
"isVerified": true,
"name": "0x3384…4B34",
"url": "https://etherscan.io/address/0x338477FfaF63c04AC06048787f910671eC914B34"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9308319e3988843f36BC6682Ffa571525E56a125",
"type": "EOA",
"isVerified": true,
"name": "0x9308…a125",
"url": "https://etherscan.io/address/0x9308319e3988843f36BC6682Ffa571525E56a125"
},
{
"address": "eth:0x5262498E7D4fbbb08425b2a06D91157acDC50aDA",
"type": "EOA",
"isVerified": true,
"name": "0x5262…0aDA",
"url": "https://etherscan.io/address/0x5262498E7D4fbbb08425b2a06D91157acDC50aDA"
},
{
"address": "eth:0x995152ee7BB6304565Fbe04465d2c4D1BdD5683F",
"type": "EOA",
"isVerified": true,
"name": "0x9951…683F",
"url": "https://etherscan.io/address/0x995152ee7BB6304565Fbe04465d2c4D1BdD5683F"
},
{
"address": "eth:0xA38372470ed4c3C4bb5123CC7f335212950e350A",
"type": "EOA",
"isVerified": true,
"name": "0xA383…350A",
"url": "https://etherscan.io/address/0xA38372470ed4c3C4bb5123CC7f335212950e350A"
},
{
"address": "eth:0x44aC63d4e18c0d24d0EDe1C058D5A93Fc2fbB904",
"type": "EOA",
"isVerified": true,
"name": "0x44aC…B904",
"url": "https://etherscan.io/address/0x44aC63d4e18c0d24d0EDe1C058D5A93Fc2fbB904"
},
{
"address": "eth:0x3C20b05f44ef008A5b848761e58e5Ca9594163e9",
"type": "EOA",
"isVerified": true,
"name": "0x3C20…63e9",
"url": "https://etherscan.io/address/0x3C20b05f44ef008A5b848761e58e5Ca9594163e9"
},
{
"address": "eth:0xA4f7168cEa82877B23Bc55a7fd7557D546F4dD31",
"type": "EOA",
"isVerified": true,
"name": "0xA4f7…dD31",
"url": "https://etherscan.io/address/0xA4f7168cEa82877B23Bc55a7fd7557D546F4dD31"
},
{
"address": "eth:0x542aC639c0DeF0a468aed462B474FF9B7858Bd7E",
"type": "EOA",
"isVerified": true,
"name": "0x542a…Bd7E",
"url": "https://etherscan.io/address/0x542aC639c0DeF0a468aed462B474FF9B7858Bd7E"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-2-and-EOA-4",
"name": "EOA 1, EOA 2 and EOA 4",
"accounts": [
{
"address": "eth:0x454Ef2f69f91527856E06659f92a66f464C1ca4e",
"type": "EOA",
"isVerified": true,
"name": "0x454E…ca4e",
"url": "https://etherscan.io/address/0x454Ef2f69f91527856E06659f92a66f464C1ca4e",
"displayName": "EOA 1"
},
{
"address": "eth:0x5A49Bf6c5690E22dFff3eB37F7dd18254eC361ED",
"type": "EOA",
"isVerified": true,
"name": "0x5A49…61ED",
"url": "https://etherscan.io/address/0x5A49Bf6c5690E22dFff3eB37F7dd18254eC361ED",
"displayName": "EOA 2"
},
{
"address": "eth:0x8ED83c6Bb12E441Ca2C3a544F525d4a3Fb6484D8",
"type": "EOA",
"isVerified": true,
"name": "0x8ED8…84D8",
"url": "https://etherscan.io/address/0x8ED83c6Bb12E441Ca2C3a544F525d4a3Fb6484D8",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with EigenDAServiceManager\n * can confirm batches to the DA bridge ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-5",
"name": "EOA 3 and EOA 5",
"accounts": [
{
"address": "eth:0x8642473a123FE33b0aaE90bD8604eA1029417236",
"type": "EOA",
"isVerified": true,
"name": "0x8642…7236",
"url": "https://etherscan.io/address/0x8642473a123FE33b0aaE90bD8604eA1029417236",
"displayName": "EOA 3"
},
{
"address": "eth:0xD2Ee81Cf07B12140C793FcE5B26313CDd9d78eA8",
"type": "EOA",
"isVerified": true,
"name": "0xD2Ee…8eA8",
"url": "https://etherscan.io/address/0xD2Ee81Cf07B12140C793FcE5B26313CDd9d78eA8",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with EjectionManager\n * can eject DA operators from a quorum ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0xe0550117Cb066D3b330eBd764B0d75D3BA378734",
"type": "EOA",
"isVerified": true,
"name": "0xe055…8734",
"url": "https://etherscan.io/address/0xe0550117Cb066D3b330eBd764B0d75D3BA378734",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with RegistryCoordinator\n * can approve the replacement of churned operators from a quorum ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "eth:0xe8437B66E834B7CdC90cC5D98B8DD6e636b37D7a",
"type": "EOA",
"isVerified": true,
"name": "0xe843…7D7a",
"url": "https://etherscan.io/address/0xe8437B66E834B7CdC90cC5D98B8DD6e636b37D7a",
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with EigenDARelayRegistry\n * Can store and serve both unencoded blobs as well as encoded chunks ",
"discoveryDrivenData": true
},
{
"id": "EOA-8",
"name": "EOA 8",
"accounts": [
{
"address": "eth:0xF3d7C0D52fF8f4CF74A3CD9C53778516f4235bE9",
"type": "EOA",
"isVerified": true,
"name": "0xF3d7…5bE9",
"url": "https://etherscan.io/address/0xF3d7C0D52fF8f4CF74A3CD9C53778516f4235bE9",
"displayName": "EOA 8"
}
],
"chain": "ethereum",
"description": "* Can interact with EigenDADisperserRegistry\n * Can disperse EigenDA blobs to the EigenDA node operators ",
"discoveryDrivenData": true
}
]
}
}
+0 -638
{
"addresses": {
"ethereum": [
{
"name": "StakeRegistry",
"isVerified": true,
"address": "eth:0x006124Ae7976137266feeBFb3F4D2BE4C073139D",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x1C468cf7089D263c2f53e2579b329B16aBc4dd96"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712353799,
"transactionHash": "0x67b4fa469020a02fb0ab975c67604ada64cb11cdb170d44a3108cc67a9037bad",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1712353799,
"transactionHash": "0xb72070366da1397312ab26f2128e3be250c3f9b8fa7164694e55d052f8d9f8ac",
"implementations": [
"eth:0x1C468cf7089D263c2f53e2579b329B16aBc4dd96"
]
}
],
"description": "Keeps track of the total stake of each operator.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x006124Ae7976137266feeBFb3F4D2BE4C073139D#code"
},
{
"name": "BLSApkRegistry",
"isVerified": true,
"address": "eth:0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x5d0B9cE2e277Daf508528E9f6Bf6314E79e4eD2b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712353799,
"transactionHash": "0xd0aab9a017adecfb4a605cd0c0790eaa6776e15054ddae552970406fc2320dd8",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1712353799,
"transactionHash": "0x02bfebfdc5898228aafc5da844daeea8bc9c810ee1ee17f555d46da13247f13c",
"implementations": [
"eth:0x5d0B9cE2e277Daf508528E9f6Bf6314E79e4eD2b"
]
}
],
"description": "Keeps track of the BLS public keys of each operator and the quorum aggregated keys.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505#code"
},
{
"name": "RegistryCoordinator",
"isVerified": true,
"address": "eth:0x0BAAc79acD45A023E19345c352d8a7a83C4e5656",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x2088435ABcB1234A9427B755931C9064C93a2595"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712353787,
"transactionHash": "0x3a9b2c12f66b0acc238c64eebdf84faee5e7539710be705584432368f1724d7f",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1712353799,
"transactionHash": "0x6a6489dbfbe688c34d924a3e86de303d3d427dc328652e931926333729f242be",
"implementations": [
"eth:0xd3e09a0c2A9A6FDf5E92aE65D3CC090A4dF8EECF"
]
},
{
"timestamp": 1721834291,
"transactionHash": "0x28e327c2afc40ceec4bbc6e6a960b2f7744632a20e48da93c657bdd82c92bf5c",
"implementations": [
"eth:0xdcabf0bE991d4609096CCe316df08d091356E03F"
]
},
{
"timestamp": 1748556275,
"transactionHash": "0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282",
"implementations": [
"eth:0x2088435ABcB1234A9427B755931C9064C93a2595"
]
}
],
"description": "Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig\n * **churnApprover**: EOA 6\n * **owner**: EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0BAAc79acD45A023E19345c352d8a7a83C4e5656#code"
},
{
"name": "PauserRegistry",
"isVerified": true,
"address": "eth:0x0c431C66F4dE941d089625E5B423D00707977060",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Defines and stores pauser and unpauser roles for EigenDA contracts.\n* Roles:\n * **pausers**: EigenLayerOperationsMultisig, EigenLayerOwningMultisig, EigenLayerPauserMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0c431C66F4dE941d089625E5B423D00707977060#code"
},
{
"name": "EjectionManager",
"isVerified": true,
"address": "eth:0x130d8EA0052B45554e4C99079B84df292149Bd5E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0xC125fECDDabFe13f29EB287Bb8551892AEE7C98A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1715347895,
"transactionHash": "0xb9f7f80114bf8e8fa3092fb298aa8aae1bccbb04b36516667396b5b12a6a23e0",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1715347895,
"transactionHash": "0xd04d3d0dbf04adf100c0edbe832d60786758b828ce9073e205b8ab3675864d32",
"implementations": [
"eth:0x1A27AC48D40F70213Ae6ec64f66852e0A1a0E6fa"
]
},
{
"timestamp": 1723045967,
"transactionHash": "0x7dcee857c6f42698dd0db59a3032770cdffa8607b6902fee32f3d498991df44a",
"implementations": [
"eth:0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f"
]
},
{
"timestamp": 1748556275,
"transactionHash": "0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282",
"implementations": [
"eth:0xC125fECDDabFe13f29EB287Bb8551892AEE7C98A"
]
}
],
"description": "Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig\n * **ejectors**: EOA 3, EOA 5, EigenDA Multisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x130d8EA0052B45554e4C99079B84df292149Bd5E#code"
},
{
"name": "SocketRegistry",
"isVerified": true,
"address": "eth:0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x5b60105ceD5207D6ad217BF2d426e133454eCFB4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1733339723,
"transactionHash": "0xac0215d6889603e179b545d19d00944d5655764c4763ef724ffd7956b4d346b2",
"implementations": [
"eth:0x5b60105ceD5207D6ad217BF2d426e133454eCFB4"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2#code"
},
{
"name": "EigenDADisperserRegistry",
"isVerified": true,
"address": "eth:0x78cb05379a3b66E5227f2C1496432D7FFE794Fad",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x7DECf99BE82Ea4Cf72F381a5fCBc04228955FBE5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744750295,
"transactionHash": "0x19a69477f502e4c9c6ffa34582f15519fcd131c25e889864b5ce976d865bacd2",
"implementations": [
"eth:0x7DECf99BE82Ea4Cf72F381a5fCBc04228955FBE5"
]
}
],
"description": "Registry for EigenDA disperser info such as disperser key to address mapping.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig\n * **dispersers**: EOA 8",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x78cb05379a3b66E5227f2C1496432D7FFE794Fad#code"
},
{
"name": "EigenDAServiceManager",
"isVerified": true,
"address": "eth:0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0xae448D008B6F69033AfdA361b46b36C472B6FEE0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712353787,
"transactionHash": "0x0742f1a4d072fc85fe39830a9d21536bf3e09c0ce5a7571cab93bd85d09ff576",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1712353799,
"transactionHash": "0xb51ad742d1c13af667acb1608d33790a5dcc4970153a6ac2f415390b16fb485e",
"implementations": [
"eth:0xF5fD25A90902c27068CF5eBe53Be8da693Ac899e"
]
},
{
"timestamp": 1715289191,
"transactionHash": "0xb40a6884127043977ba87604e5b6a7447b7f8e6fa88b3ab3d940507c8e1c92d8",
"implementations": [
"eth:0x26089e9738b809d8308B0011B93b4225a112DB8C"
]
},
{
"timestamp": 1716321419,
"transactionHash": "0x43cca617c25c2c5ac4164bdfbeedb8dbf7325056844893fe61bb9e2034ebad1e",
"implementations": [
"eth:0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1"
]
},
{
"timestamp": 1722701675,
"transactionHash": "0xfacff9a26f07d7ae55c6b9fc80059faa016f249c4624841cfcd43c34717cbaf7",
"implementations": [
"eth:0x0D2C5FD4Bb956cDD48A23fC3Ef77a768a5cDbAf7"
]
},
{
"timestamp": 1726582631,
"transactionHash": "0xaedce35d052ceaed37943107a78d8fb3d833ac5619edeab62a8772d67afaaff9",
"implementations": [
"eth:0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07"
]
},
{
"timestamp": 1748556275,
"transactionHash": "0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282",
"implementations": [
"eth:0xae448D008B6F69033AfdA361b46b36C472B6FEE0"
]
}
],
"description": "Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig\n * **batchConfirmers**: EOA 1, EOA 2, EOA 4\n * **owner**: EigenDAOperationsMultisig\n * **pauserRegistry**: PauserRegistry; ultimately EOA 10, EOA 11, EOA 12, EOA 13, EOA 14, EOA 9, EigenLayerCommunityMultisig, EigenLayerOperationsMultisig, EigenLayerOperationsMultisig2, Safe\n * **rewardsInitiator**: EigenLayerRewardsInitiatorMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0#code"
},
{
"name": "PaymentVault",
"isVerified": true,
"address": "eth:0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x62242213E6FA34E943844f9B3124150EFb9CB0dD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744750295,
"transactionHash": "0x359ca1fa527881edba34879bf633971940ab7addc0c00d96eebbe318fb3f8bd5",
"implementations": [
"eth:0x62242213E6FA34E943844f9B3124150EFb9CB0dD"
]
}
],
"description": "Entrypoint for making reservations and on demand payments for EigenDA.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05#code"
},
{
"name": "IndexRegistry",
"isVerified": true,
"address": "eth:0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x1ae0b73118906f39D5ED30Ae4A484ce2F479a14c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712353799,
"transactionHash": "0xfebe64f00a8d96fe319e7b388f6cf4c4fb343dac129610a1c978f2ffc2e70a36",
"implementations": [
"eth:0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9"
]
},
{
"timestamp": 1712353799,
"transactionHash": "0x59468c0a593e95396455fade35463fcff5e9e310e1da5fef0de8f9ad00645acc",
"implementations": [
"eth:0x1ae0b73118906f39D5ED30Ae4A484ce2F479a14c"
]
}
],
"description": "A registry contract that keeps track of an ordered list of operators for each quorum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030#code"
},
{
"name": "EigenDARelayRegistry",
"isVerified": true,
"address": "eth:0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0xF6D82FBBdf700c086389e72C3023812e956ECa9e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744750223,
"transactionHash": "0x5542d5049911c1b3f1a3d0e2f2c861a7e473c817622998049b78529202e6a374",
"implementations": [
"eth:0xF6D82FBBdf700c086389e72C3023812e956ECa9e"
]
}
],
"description": "Registry for EigenDA relay keys, maps key to address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig\n * **relayers**: EOA 7",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B#code"
},
{
"name": "EigenDAThresholdRegistry",
"isVerified": true,
"address": "eth:0xdb4c89956eEa6F606135E7d366322F2bDE609F15",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0x92104977f16dAe423966caa5cD9C115F2D25a8D6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744750211,
"transactionHash": "0x903e00f79e1b98e13ebbc40db4c023249e3dca47685bd30ad86962d60aa83292",
"implementations": [
"eth:0x92104977f16dAe423966caa5cD9C115F2D25a8D6"
]
}
],
"description": "Registry of EigenDA threshold (i.e, adversary and confirmation threshold percentage for a quorum)\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdb4c89956eEa6F606135E7d366322F2bDE609F15#code"
},
{
"name": "EigenDACertVerifierRouter",
"isVerified": true,
"address": "eth:0x1be7258230250Bc6a4548F8D59d576a87D216C12",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8247EF5705d3345516286B72bFE6D690197C2E99"
],
"implementations": [
"eth:0xff35F7DC73F7fA664910Ab58200dFD4129F1D9E0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1751656319,
"transactionHash": "0x5488e95653a4fee14a5d79879453d85348aa9cf73ee1ac692af8b2b15f669f60",
"implementations": [
"eth:0xff35F7DC73F7fA664910Ab58200dFD4129F1D9E0"
]
}
],
"description": "A router contract for DA Certificate verifiers. Verifier routing depends on the certificate reference block number.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EigenDAOperationsMultisig",
"upgradableBy": [
{
"name": "EigenDAOperationsMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1be7258230250Bc6a4548F8D59d576a87D216C12#code"
},
{
"name": "EigenDACertVerifier",
"isVerified": true,
"address": "eth:0x46766C6426eF4D3092f73F72660A8b7B510E6846",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x46766C6426eF4D3092f73F72660A8b7B510E6846#code"
},
{
"name": "EigenDACertVerifier",
"isVerified": true,
"address": "eth:0x61692e93b6B045c444e942A91EcD1527F23A3FB7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x61692e93b6B045c444e942A91EcD1527F23A3FB7#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x8247EF5705d3345516286B72bFE6D690197C2E99",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EigenDAOperationsMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8247EF5705d3345516286B72bFE6D690197C2E99#code"
},
{
"name": "EigenDACertVerifier",
"isVerified": true,
"address": "eth:0xD2e690d08Db56Fb648B1340457281EDE7b6F53FE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD2e690d08Db56Fb648B1340457281EDE7b6F53FE#code"
},
{
"name": "EigenDACertVerifier",
"isVerified": true,
"address": "eth:0xE1Ae45810A738F13e70Ac8966354d7D0feCF7BD6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A legacy DACert verifier contract. It is used to verify v2 DA certificates. New verifiers should use the new verifier router contract.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE1Ae45810A738F13e70Ac8966354d7D0feCF7BD6#code"
},
{
"name": "OperatorStateRetriever",
"isVerified": true,
"address": "eth:0xEC35aa6521d23479318104E10B4aA216DBBE63Ce",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A contract for retrieving AVS operators state (e.g., quorum bitmaps, ordered operator lists, stakes, sockets, signatures indices—at) at a given block directly from on-chain registries.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEC35aa6521d23479318104E10B4aA216DBBE63Ce#code"
}
]
},
"risks": [
{
"category": "Funds can be lost if",
"text": "the EigenDACertVerifier or EigenDACertVerifierRouter contracts receive a malicious code upgrade and accept invalid certificates. There is no delay on code upgrades."
},
{
"category": "Funds can be lost if",
"text": "the EigenDAServiceManager (BLS signature verifier) contract receives a malicious code upgrade. There is no delay on code upgrades."
},
{
"category": "Funds can be lost if",
"text": "the EigenDA middleware contracts (StakeRegistry, BLSApkRegistry, RegistryCoordinator) receive a malicious code upgrade and report incorrect stake or keys to the cert verifier. There is no delay on code upgrades."
},
{
"category": "Funds can be lost if",
"text": "the EigenLayer EIGEN token contract receives a malicious code upgrade. There is a 10d delay on code upgrades."
},
{
"category": "Funds can be lost if",
"text": "the churn approver or ejectors act maliciously and eject EigenDA operators from a quorum without cause."
},
{
"category": "Funds can be lost if",
"text": "a sequencer posts an incorrect or malicious DA certificate that is accepted by the verifier contract."
}
]
}
+0 -7
{
"baseTimestamp": 1788943774,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+0 -482
[
{
"id": "473bf5ea",
"date": "Thu, 27 Aug 2026 12:49:13 GMT",
"timestamp": 1787834881,
"description": "EigenDAOperationsMultisig: member removed; threshold 3/5 → 2/4.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (eth:0x002721B4790d97dC140a049936aA710152Ba92D5) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"eth:0xA3e302a6Ea0cf79B8580d94e92Eb5514292daacE\"\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"2 of 4 (50%)\"\n }\n```"
}
]
},
{
"id": "e782a88a",
"date": "Thu, 23 Jul 2026 12:58:55 GMT",
"timestamp": 1784811471,
"description": "EigenDAOperationsMultisig: new signer added; threshold 3/4 → 3/5. New EigenDACertVerifier deployed and registered on the CertVerifierRouter with activation block 25,575,801 (2026-07-21). Rewrote the security-parameters check to be division-free with explicit underflow/threshold-ordering guards; preserves the intended security threshold ([diff](https://disco.l2beat.com/diff/eth:0x46766C6426eF4D3092f73F72660A8b7B510E6846/eth:0xD2e690d08Db56Fb648B1340457281EDE7b6F53FE)).",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (eth:0x002721B4790d97dC140a049936aA710152Ba92D5) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xB646A0871af2b2c6e115b24D7E36d406780b6ca8\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```\n\n```diff\n contract EigenDACertVerifierRouter (eth:0x1be7258230250Bc6a4548F8D59d576a87D216C12) [eigenda/EigenDACertVerifierRouter] {\n +++ description: A router contract for DA Certificate verifiers. Verifier routing depends on the certificate reference block number.\n values.certVerifierABNs.2:\n+ 25575801\n+++ description: The DA verifier contracts indexed by activation block number.\n values.DAVerifiers.2:\n+ {\"activationBlockNumber\":25575801,\"certVerifier\":\"eth:0xD2e690d08Db56Fb648B1340457281EDE7b6F53FE\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract EigenDACertVerifier (eth:0xD2e690d08Db56Fb648B1340457281EDE7b6F53FE) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "5a21eb1b",
"date": "Fri, 03 Apr 2026 10:33:14 GMT",
"timestamp": 1775212321,
"description": "EigenDAOperationsMultisig member removed (0x4985...), threshold unchanged at 3, now 3-of-4 (75%) instead of 3-of-5 (60%).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (eth:0x002721B4790d97dC140a049936aA710152Ba92D5) {\n +++ description: None\n values.$members.1:\n- \"eth:0x4985238672d91Baed43dF1B2431F67bc332A1753\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "0e5b3479",
"date": "Thu, 26 Feb 2026 15:12:47 GMT",
"timestamp": 1772118702,
"description": "EigenLayerRewardsInitiatorMultisig: one member removed (0xf20eD26be), reducing signers from 5 to 4. Threshold remains 3, changing the effective quorum from 3/5 (60%) to 3/4 (75%).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (eth:0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.4:\n- \"eth:0xf20eD26be203f09B8F0Cb3265E74BB6AD24408b4\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "4733c0d8",
"date": "Thu, 12 Feb 2026 14:57:30 GMT",
"timestamp": 1770908185,
"description": "One signer was removed from the EigenDAOperationsMultisig, reducing it from 6 to 5 members. The threshold remains at 3, changing the ratio from 50% to 60%.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (eth:0x002721B4790d97dC140a049936aA710152Ba92D5) {\n +++ description: None\n values.$members.5:\n- \"eth:0x3f64654ec71d806F8d91AF285A6c34Df818E3aC3\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "d549a712",
"date": "Wed, 28 Jan 2026 10:55:20 GMT",
"timestamp": 1769597655,
"description": "Member rotation.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (eth:0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.1:\n- \"eth:0xc201C95e809292c6ad242F4bbD8B342AD06571FB\"\n+ \"eth:0x5dc74815C14E2D4223B79D2dE94C4ccD5f5f7DA7\"\n }\n```"
}
]
},
{
"id": "16ee60c6",
"date": "Thu, 20 Nov 2025 10:18:33 GMT",
"timestamp": 1763633846,
"description": "New verifier adding status codes for certificate verification results.\nhttps://disco.l2beat.com/diff/eth:0x46766C6426eF4D3092f73F72660A8b7B510E6846/eth:0x61692e93b6B045c444e942A91EcD1527F23A3FB7",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (eth:0x002721B4790d97dC140a049936aA710152Ba92D5) {\n +++ description: None\n values.$members.6:\n- \"eth:0x5D9A6573206e5205702E4caD87DC61f4C2a1Ad04\"\n values.multisigThreshold:\n- \"3 of 7 (43%)\"\n+ \"3 of 6 (50%)\"\n }\n```\n\n```diff\n contract EigenDACertVerifierRouter (eth:0x1be7258230250Bc6a4548F8D59d576a87D216C12) {\n +++ description: A router contract for DA Certificate verifiers. Verifier routing depends on the certificate reference block number.\n values.certVerifierABNs.1:\n+ 23786550\n+++ description: The DA verifier contracts indexed by activation block number.\n values.DAVerifiers.1:\n+ {\"activationBlockNumber\":23786550,\"certVerifier\":\"eth:0x46766C6426eF4D3092f73F72660A8b7B510E6846\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract EigenDACertVerifier (eth:0x46766C6426eF4D3092f73F72660A8b7B510E6846)\n +++ description: A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.\n```"
}
]
},
{
"id": "1819fe66",
"date": "Fri, 31 Oct 2025 14:49:59 GMT",
"timestamp": 1761318853,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EigenDACertVerificationUtilsLibrary (eth:0x5e29552239d9ACa88d2f410C35D8C0dE47483F37)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenDACertVerificationUtils (eth:0x8113823aEF00b8Ef4Dac4CF4D20B40D27b3d552f)\n +++ description: None\n```"
}
]
},
{
"id": "e7784bb0",
"date": "Fri, 24 Oct 2025 15:15:21 GMT",
"timestamp": 1761318853,
"description": "Added DACert v2 verifier and EigenDACertVerifierRouter.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EigenDACertVerifierRouter (eth:0x1be7258230250Bc6a4548F8D59d576a87D216C12)\n +++ description: A router contract for DA Certificate verifiers. Verifier routing depends on the certificate reference block number.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDACertVerifier (eth:0x61692e93b6B045c444e942A91EcD1527F23A3FB7)\n +++ description: A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDACertVerifier (eth:0xE1Ae45810A738F13e70Ac8966354d7D0feCF7BD6)\n +++ description: A legacy DACert verifier contract. It is used to verify v2 DA certificates. New verifiers should use the new verifier router contract.\n```\n\n```diff\n+ Status: CREATED\n contract OperatorStateRetriever (eth:0xEC35aa6521d23479318104E10B4aA216DBBE63Ce)\n +++ description: A contract for retrieving AVS operators state (e.g., quorum bitmaps, ordered operator lists, stakes, sockets, signatures indices—at) at a given block directly from on-chain registries.\n```"
}
]
},
{
"id": "8648d07d",
"date": "Fri, 10 Oct 2025 09:42:39 GMT",
"timestamp": 1760089295,
"description": "Added member to multisig.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (eth:0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x900a9E1D5D5980973f513173249727505FA3bd22\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "4c8ae091",
"date": "Wed, 27 Aug 2025 13:18:55 GMT",
"timestamp": 1756300615,
"description": "Multisig owners update.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.3:\n- \"eth:0x2bBA03bA38D90634e6afD8C23C16ca01651bc493\"\n values.$members.5:\n- \"eth:0xca3E83c0e41A1f27b9f832F4fcE22e79Cffecfc7\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "4c5fafc8",
"date": "Mon, 28 Jul 2025 06:07:38 GMT",
"timestamp": 1753682858,
"description": "ms member added.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xc201C95e809292c6ad242F4bbD8B342AD06571FB\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "1722b25a",
"date": "Mon, 14 Jul 2025 12:45:00 GMT",
"timestamp": 1752497100,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 16,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EigenDAOperationsMultisig (0x002721B4790d97dC140a049936aA710152Ba92D5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakeRegistry (0x006124Ae7976137266feeBFb3F4D2BE4C073139D)\n +++ description: Keeps track of the total stake of each operator.\n```\n\n```diff\n+ Status: CREATED\n contract BLSApkRegistry (0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505)\n +++ description: Keeps track of the BLS public keys of each operator and the quorum aggregated keys.\n```\n\n```diff\n+ Status: CREATED\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656)\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum.\n```\n\n```diff\n+ Status: CREATED\n contract PauserRegistry (0x0c431C66F4dE941d089625E5B423D00707977060)\n +++ description: Defines and stores pauser and unpauser roles for EigenDA contracts.\n```\n\n```diff\n+ Status: CREATED\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E)\n +++ description: Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerRewardsInitiatorMultisig (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenDA Multisig (0x338477FfaF63c04AC06048787f910671eC914B34)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SocketRegistry (0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenDADisperserRegistry (0x78cb05379a3b66E5227f2C1496432D7FFE794Fad)\n +++ description: Registry for EigenDA disperser info such as disperser key to address mapping.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8247EF5705d3345516286B72bFE6D690197C2E99)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0)\n +++ description: Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.\n```\n\n```diff\n+ Status: CREATED\n contract PaymentVault (0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05)\n +++ description: Entrypoint for making reservations and on demand payments for EigenDA.\n```\n\n```diff\n+ Status: CREATED\n contract IndexRegistry (0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030)\n +++ description: A registry contract that keeps track of an ordered list of operators for each quorum.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDARelayRegistry (0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B)\n +++ description: Registry for EigenDA relay keys, maps key to address.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDAThresholdRegistry (0xdb4c89956eEa6F606135E7d366322F2bDE609F15)\n +++ description: Registry of EigenDA threshold (i.e, adversary and confirmation threshold percentage for a quorum)\n```"
}
]
},
{
"id": "e323dd2f",
"date": "Tue, 01 Jul 2025 10:40:25 GMT",
"timestamp": 1751366425,
"description": "new 3/8 Ejector Safe.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E) {\n +++ description: Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).\n values.ejectors.2:\n+ \"0x338477FfaF63c04AC06048787f910671eC914B34\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract EigenDA Multisig (0x338477FfaF63c04AC06048787f910671eC914B34)\n +++ description: None\n```"
}
]
},
{
"id": "bdbfcd50",
"date": "Tue, 03 Jun 2025 16:21:03 GMT",
"timestamp": 1748967663,
"description": "Preparation for EigenDA V2 Blazaar, no impactful changes.\n\n- RegistryCoordinator: Added socket registry, error format changes\n- Socket registry: new contract that maps operators to their sockets\n- EjectionManager: added check for amountEjectable & stakeForEjection >0\n- EigenDAServiceManager: added EigenDADisperserRegistry, EigenDAThresholdRegistry, EigenDARelayRegistry. Removed quorum mentions, new data structures, new rewards functions\n- EigenDADisperserRegistry: Registry for EigenDA disperser info such as disperser key to address mapping\n- EigenDAThresholdRegistry: Registry of EigenDA threshold (adversary threshold percentage for a quorum, confirmation threshold percentage for a quorum)\n- EigenDARelayRegistry: Registry for EigenDA relay keys, maps key to address\n- PaymentVault: Entrypoint for making reservations and on demand payments for EigenDA",
"isHighSeverity": true,
"changeCount": 81,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAOperationsMultisig (0x002721B4790d97dC140a049936aA710152Ba92D5) {\n +++ description: None\n receivedPermissions.12:\n+ {\"permission\":\"upgrade\",\"from\":\"0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2\",\"role\":\"admin\",\"via\":[{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"upgrade\",\"from\":\"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\",\"role\":\"admin\",\"via\":[{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"upgrade\",\"from\":\"0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05\",\"role\":\"admin\",\"via\":[{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n receivedPermissions.9:\n+ {\"permission\":\"upgrade\",\"from\":\"0x130d8EA0052B45554e4C99079B84df292149Bd5E\",\"role\":\"admin\",\"via\":[{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n receivedPermissions.8:\n+ {\"permission\":\"upgrade\",\"from\":\"0xdb4c89956eEa6F606135E7d366322F2bDE609F15\",\"role\":\"admin\",\"via\":[{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n receivedPermissions.7.from:\n- \"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\"\n+ \"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"\n receivedPermissions.6.from:\n- \"0x130d8EA0052B45554e4C99079B84df292149Bd5E\"\n+ \"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"\n receivedPermissions.5.from:\n- \"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"\n+ \"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"\n receivedPermissions.4.from:\n- \"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"\n+ \"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"\n receivedPermissions.3.from:\n- \"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"\n+ \"0x78cb05379a3b66E5227f2C1496432D7FFE794Fad\"\n receivedPermissions.2.from:\n- \"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"\n+ \"0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B\"\n }\n```\n\n```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum.\n sourceHashes.0:\n- \"0x223309c7d816ce318a9371a50683d99b1ace4ccb775c4a4b3e6ec1238f0a5c68\"\n+ \"0x7e7c9cae80b660c369700ce034c417e93999b08e43dabd1c37a1e76599552575\"\n values.$implementation:\n- \"0xdcabf0bE991d4609096CCe316df08d091356E03F\"\n+ \"0x2088435ABcB1234A9427B755931C9064C93a2595\"\n values.$pastUpgrades.3:\n+ [\"2024-04-05T21:49:59.000Z\",\"0x6a6489dbfbe688c34d924a3e86de303d3d427dc328652e931926333729f242be\",[\"0xd3e09a0c2A9A6FDf5E92aE65D3CC090A4dF8EECF\"]]\n values.$pastUpgrades.2.2:\n- [\"0xd3e09a0c2A9A6FDf5E92aE65D3CC090A4dF8EECF\"]\n+ \"0x3a9b2c12f66b0acc238c64eebdf84faee5e7539710be705584432368f1724d7f\"\n values.$pastUpgrades.2.1:\n- \"0x6a6489dbfbe688c34d924a3e86de303d3d427dc328652e931926333729f242be\"\n+ \"2024-04-05T21:49:47.000Z\"\n values.$pastUpgrades.2.0:\n- \"2024-04-05T21:49:59.000Z\"\n+ [\"0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9\"]\n values.$pastUpgrades.1.2:\n- \"0x3a9b2c12f66b0acc238c64eebdf84faee5e7539710be705584432368f1724d7f\"\n+ [\"0x2088435ABcB1234A9427B755931C9064C93a2595\"]\n values.$pastUpgrades.1.1:\n- \"2024-04-05T21:49:47.000Z\"\n+ \"0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282\"\n values.$pastUpgrades.1.0:\n- [\"0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9\"]\n+ \"2025-05-29T22:04:35.000Z\"\n values.$upgradeCount:\n- 3\n+ 4\n values.socketRegistry:\n+ \"0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2\"\n implementationNames.0xdcabf0bE991d4609096CCe316df08d091356E03F:\n- \"RegistryCoordinator\"\n implementationNames.0x2088435ABcB1234A9427B755931C9064C93a2595:\n+ \"RegistryCoordinator\"\n }\n```\n\n```diff\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E) {\n +++ description: Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).\n sourceHashes.0:\n- \"0xe0842698f9d2aadda65d129ee9797efd5820d2c146dc3f368826b9815f5b8c9f\"\n+ \"0x94a826fe3f9609e445cfd3cd6d7d9709c559367e9cb49a9b6d7952cd3a116cd0\"\n values.$implementation:\n- \"0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f\"\n+ \"0xC125fECDDabFe13f29EB287Bb8551892AEE7C98A\"\n values.$pastUpgrades.3:\n+ [\"2024-05-10T13:31:35.000Z\",\"0xd04d3d0dbf04adf100c0edbe832d60786758b828ce9073e205b8ab3675864d32\",[\"0x1A27AC48D40F70213Ae6ec64f66852e0A1a0E6fa\"]]\n values.$pastUpgrades.2.2:\n- [\"0x1A27AC48D40F70213Ae6ec64f66852e0A1a0E6fa\"]\n+ \"0x7dcee857c6f42698dd0db59a3032770cdffa8607b6902fee32f3d498991df44a\"\n values.$pastUpgrades.2.1:\n- \"0xd04d3d0dbf04adf100c0edbe832d60786758b828ce9073e205b8ab3675864d32\"\n+ [\"0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f\"]\n values.$pastUpgrades.2.0:\n- \"2024-05-10T13:31:35.000Z\"\n+ \"2024-08-07T15:52:47.000Z\"\n values.$pastUpgrades.1.2:\n- \"0x7dcee857c6f42698dd0db59a3032770cdffa8607b6902fee32f3d498991df44a\"\n+ \"0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282\"\n values.$pastUpgrades.1.1.0:\n- \"0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f\"\n+ \"0xC125fECDDabFe13f29EB287Bb8551892AEE7C98A\"\n values.$pastUpgrades.1.0:\n- \"2024-08-07T15:52:47.000Z\"\n+ \"2025-05-29T22:04:35.000Z\"\n values.$upgradeCount:\n- 3\n+ 4\n implementationNames.0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f:\n- \"EjectionManager\"\n implementationNames.0xC125fECDDabFe13f29EB287Bb8551892AEE7C98A:\n+ \"EjectionManager\"\n }\n```\n\n```diff\n contract ProxyAdmin (0x8247EF5705d3345516286B72bFE6D690197C2E99) {\n +++ description: None\n directlyReceivedPermissions.10:\n+ {\"permission\":\"upgrade\",\"from\":\"0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2\",\"role\":\"admin\"}\n directlyReceivedPermissions.9:\n+ {\"permission\":\"upgrade\",\"from\":\"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\",\"role\":\"admin\"}\n directlyReceivedPermissions.8:\n+ {\"permission\":\"upgrade\",\"from\":\"0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05\",\"role\":\"admin\"}\n directlyReceivedPermissions.7:\n+ {\"permission\":\"upgrade\",\"from\":\"0x130d8EA0052B45554e4C99079B84df292149Bd5E\",\"role\":\"admin\"}\n directlyReceivedPermissions.6:\n+ {\"permission\":\"upgrade\",\"from\":\"0xdb4c89956eEa6F606135E7d366322F2bDE609F15\",\"role\":\"admin\"}\n directlyReceivedPermissions.5.from:\n- \"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\"\n+ \"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"\n directlyReceivedPermissions.4.from:\n- \"0x130d8EA0052B45554e4C99079B84df292149Bd5E\"\n+ \"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"\n directlyReceivedPermissions.3.from:\n- \"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"\n+ \"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"\n directlyReceivedPermissions.2.from:\n- \"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"\n+ \"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"\n directlyReceivedPermissions.1.from:\n- \"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"\n+ \"0x78cb05379a3b66E5227f2C1496432D7FFE794Fad\"\n directlyReceivedPermissions.0.from:\n- \"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"\n+ \"0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B\"\n }\n```\n\n```diff\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.\n sourceHashes.1:\n- \"0xd87f004d37330210f1eb137e4498b14ba6340f079eaa0e9e7a22c1d4f76dde7d\"\n+ \"0x41471c5c89db3f645030775d3f3cc317047a179f36469fbd736db24baed6523e\"\n sourceHashes.0:\n- \"0xb0f8e019272d9343047a9e89cbb9526954b9e2a1149fdc2476e7c29759b38951\"\n+ \"0xd87f004d37330210f1eb137e4498b14ba6340f079eaa0e9e7a22c1d4f76dde7d\"\n values.$implementation:\n- \"0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07\"\n+ \"0xae448D008B6F69033AfdA361b46b36C472B6FEE0\"\n values.$pastUpgrades.6:\n+ [\"2024-09-17T14:17:11.000Z\",\"0xaedce35d052ceaed37943107a78d8fb3d833ac5619edeab62a8772d67afaaff9\",[\"0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07\"]]\n values.$pastUpgrades.5.2:\n- \"0xaedce35d052ceaed37943107a78d8fb3d833ac5619edeab62a8772d67afaaff9\"\n+ \"0xfacff9a26f07d7ae55c6b9fc80059faa016f249c4624841cfcd43c34717cbaf7\"\n values.$pastUpgrades.5.1.0:\n- \"0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07\"\n+ \"0x0D2C5FD4Bb956cDD48A23fC3Ef77a768a5cDbAf7\"\n values.$pastUpgrades.5.0:\n- \"2024-09-17T14:17:11.000Z\"\n+ \"2024-08-03T16:14:35.000Z\"\n values.$pastUpgrades.4.2:\n- \"0xfacff9a26f07d7ae55c6b9fc80059faa016f249c4624841cfcd43c34717cbaf7\"\n+ [\"0x26089e9738b809d8308B0011B93b4225a112DB8C\"]\n values.$pastUpgrades.4.1:\n- [\"0x0D2C5FD4Bb956cDD48A23fC3Ef77a768a5cDbAf7\"]\n+ \"0xb40a6884127043977ba87604e5b6a7447b7f8e6fa88b3ab3d940507c8e1c92d8\"\n values.$pastUpgrades.4.0:\n- \"2024-08-03T16:14:35.000Z\"\n+ \"2024-05-09T21:13:11.000Z\"\n values.$pastUpgrades.3.2:\n- [\"0x26089e9738b809d8308B0011B93b4225a112DB8C\"]\n+ \"0x43cca617c25c2c5ac4164bdfbeedb8dbf7325056844893fe61bb9e2034ebad1e\"\n values.$pastUpgrades.3.1:\n- \"0xb40a6884127043977ba87604e5b6a7447b7f8e6fa88b3ab3d940507c8e1c92d8\"\n+ [\"0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1\"]\n values.$pastUpgrades.3.0:\n- \"2024-05-09T21:13:11.000Z\"\n+ \"2024-05-21T19:56:59.000Z\"\n values.$pastUpgrades.2.2:\n- \"0x43cca617c25c2c5ac4164bdfbeedb8dbf7325056844893fe61bb9e2034ebad1e\"\n+ \"0xb51ad742d1c13af667acb1608d33790a5dcc4970153a6ac2f415390b16fb485e\"\n values.$pastUpgrades.2.1:\n- [\"0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1\"]\n+ \"2024-04-05T21:49:59.000Z\"\n values.$pastUpgrades.2.0:\n- \"2024-05-21T19:56:59.000Z\"\n+ [\"0xF5fD25A90902c27068CF5eBe53Be8da693Ac899e\"]\n values.$pastUpgrades.1.2:\n- \"0xb51ad742d1c13af667acb1608d33790a5dcc4970153a6ac2f415390b16fb485e\"\n+ \"2024-04-05T21:49:47.000Z\"\n values.$pastUpgrades.1.1:\n- \"2024-04-05T21:49:59.000Z\"\n+ [\"0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9\"]\n values.$pastUpgrades.1.0:\n- [\"0xF5fD25A90902c27068CF5eBe53Be8da693Ac899e\"]\n+ \"0x0742f1a4d072fc85fe39830a9d21536bf3e09c0ce5a7571cab93bd85d09ff576\"\n values.$pastUpgrades.0.2:\n- \"2024-04-05T21:49:47.000Z\"\n+ \"0xfa483d640a2793a223b75e6a2c6fb8f9eaa2a1c0df1e6ca69d7d332251981282\"\n values.$pastUpgrades.0.1.0:\n- \"0x1f96861fEFa1065a5A96F20Deb6D8DC3ff48F7f9\"\n+ \"0xae448D008B6F69033AfdA361b46b36C472B6FEE0\"\n values.$pastUpgrades.0.0:\n- \"0x0742f1a4d072fc85fe39830a9d21536bf3e09c0ce5a7571cab93bd85d09ff576\"\n+ \"2025-05-29T22:04:35.000Z\"\n values.$upgradeCount:\n- 6\n+ 7\n values.eigenDADisperserRegistry:\n+ \"0x78cb05379a3b66E5227f2C1496432D7FFE794Fad\"\n values.eigenDARelayRegistry:\n+ \"0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B\"\n values.eigenDAThresholdRegistry:\n+ \"0xdb4c89956eEa6F606135E7d366322F2bDE609F15\"\n values.paymentVault:\n+ \"0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05\"\n implementationNames.0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07:\n- \"EigenDAServiceManager\"\n implementationNames.0xae448D008B6F69033AfdA361b46b36C472B6FEE0:\n+ \"EigenDAServiceManager\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SocketRegistry (0x5a3eD432f2De9645940333e4474bBAAB8cf64cf2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenDADisperserRegistry (0x78cb05379a3b66E5227f2C1496432D7FFE794Fad)\n +++ description: Registry for EigenDA disperser info such as disperser key to address mapping.\n```\n\n```diff\n+ Status: CREATED\n contract PaymentVault (0xb2e7ef419a2A399472ae22ef5cFcCb8bE97A4B05)\n +++ description: Entrypoint for making reservations and on demand payments for EigenDA.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDARelayRegistry (0xD160e6C1543f562fc2B0A5bf090aED32640Ec55B)\n +++ description: Registry for EigenDA relay keys, maps key to address.\n```\n\n```diff\n+ Status: CREATED\n contract EigenDAThresholdRegistry (0xdb4c89956eEa6F606135E7d366322F2bDE609F15)\n +++ description: Registry of EigenDA threshold (i.e, adversary and confirmation threshold percentage for a quorum)\n```"
}
]
},
{
"id": "103381b2",
"date": "Tue, 06 May 2025 14:18:59 GMT",
"timestamp": 1746541139,
"description": "New EigenDAOperationsMultisig as owner of core contracts. EigenDA has not upgraded to the allocation manager and its operators set yet, still uses AVS registry.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum.\n values.owner:\n- \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n+ \"0x002721B4790d97dC140a049936aA710152Ba92D5\"\n }\n```\n\n```diff\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E) {\n +++ description: Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).\n values.ejectors.1:\n+ \"0x8642473a123FE33b0aaE90bD8604eA1029417236\"\n values.owner:\n- \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n+ \"0x002721B4790d97dC140a049936aA710152Ba92D5\"\n }\n```\n\n```diff\n contract ProxyAdmin (0x8247EF5705d3345516286B72bFE6D690197C2E99) {\n +++ description: None\n values.owner:\n- \"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"\n+ \"0x002721B4790d97dC140a049936aA710152Ba92D5\"\n receivedPermissions:\n- [{\"permission\":\"upgrade\",\"from\":\"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\"},{\"permission\":\"upgrade\",\"from\":\"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"},{\"permission\":\"upgrade\",\"from\":\"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"},{\"permission\":\"upgrade\",\"from\":\"0x130d8EA0052B45554e4C99079B84df292149Bd5E\"},{\"permission\":\"upgrade\",\"from\":\"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"},{\"permission\":\"upgrade\",\"from\":\"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"}]\n directlyReceivedPermissions:\n+ [{\"permission\":\"upgrade\",\"from\":\"0x006124Ae7976137266feeBFb3F4D2BE4C073139D\"},{\"permission\":\"upgrade\",\"from\":\"0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505\"},{\"permission\":\"upgrade\",\"from\":\"0x0BAAc79acD45A023E19345c352d8a7a83C4e5656\"},{\"permission\":\"upgrade\",\"from\":\"0x130d8EA0052B45554e4C99079B84df292149Bd5E\"},{\"permission\":\"upgrade\",\"from\":\"0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0\"},{\"permission\":\"upgrade\",\"from\":\"0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030\"}]\n }\n```\n\n```diff\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.\n values.owner:\n- \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n+ \"0x002721B4790d97dC140a049936aA710152Ba92D5\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract EigenDAOperationsMultisig (0x002721B4790d97dC140a049936aA710152Ba92D5)\n +++ description: None\n```"
}
]
},
{
"id": "0f874d74",
"date": "Sun, 06 Apr 2025 07:54:21 GMT",
"timestamp": 1743926061,
"description": "signer/perms changes.",
"isHighSeverity": false,
"changeCount": 53,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerPauserMultisig (0x5050389572f2d220ad927CcbeA0D406831012390) {\n +++ description: None\n values.$members.7:\n- \"0x9C7E495F6220c2Eccf19Ce73a2d1d486D53296E4\"\n values.$members.6:\n- \"0x57af860e3a1C16641CDDDa92898266D2df7Dfa71\"\n values.$members.5:\n- \"0x1084c2e1E33632c4cB0e7C4f15c64b19d7fB1256\"\n+ \"0x9C7E495F6220c2Eccf19Ce73a2d1d486D53296E4\"\n values.$members.4:\n- \"0xEFca484E497a9de170Da32abfa11650957dD2a95\"\n+ \"0x57af860e3a1C16641CDDDa92898266D2df7Dfa71\"\n values.$members.3:\n- \"0xA935b0d2a529abb7F048CB56dd8B876ed5d8bD99\"\n+ \"0x1084c2e1E33632c4cB0e7C4f15c64b19d7fB1256\"\n values.$members.2:\n- \"0x34D64c402cA43C1c4B368e16130C64aC245718C6\"\n+ \"0xEFca484E497a9de170Da32abfa11650957dD2a95\"\n values.multisigThreshold:\n- \"1 of 8 (13%)\"\n+ \"1 of 6 (17%)\"\n }\n```\n\n```diff\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.\n issuedPermissions.19:\n- {\"permission\":\"upgrade\",\"to\":\"0xFEA47018D632A77bA579846c840d5706705Dc598\",\"via\":[{\"address\":\"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"},{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n issuedPermissions.18:\n- {\"permission\":\"upgrade\",\"to\":\"0xBE1685C81aA44FF9FB319dD389addd9374383e90\",\"via\":[{\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000},{\"address\":\"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"},{\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}]}\n issuedPermissions.17.permission:\n- \"interact\"\n+ \"upgrade\"\n issuedPermissions.17.description:\n- \"can pause the DA bridge\"\n issuedPermissions.17.via.0.address:\n- \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n+ \"0x8247EF5705d3345516286B72bFE6D690197C2E99\"\n issuedPermissions.16.permission:\n- \"interact\"\n+ \"upgrade\"\n issuedPermissions.16.to:\n- \"0x34D64c402cA43C1c4B368e16130C64aC245718C6\"\n+ \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n issuedPermissions.16.description:\n- \"can pause the DA bridge\"\n issuedPermissions.16.via.2:\n+ {\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000}\n issuedPermissions.16.via.1.address:\n- \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n+ \"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"\n issuedPermissions.16.via.0.address:\n- \"0x5050389572f2d220ad927CcbeA0D406831012390\"\n+ \"0x8247EF5705d3345516286B72bFE6D690197C2E99\"\n issuedPermissions.15.to:\n- \"0x1084c2e1E33632c4cB0e7C4f15c64b19d7fB1256\"\n+ \"0xFEA47018D632A77bA579846c840d5706705Dc598\"\n issuedPermissions.15.via.1.address:\n- \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n+ \"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"\n issuedPermissions.15.via.0.address:\n- \"0x5050389572f2d220ad927CcbeA0D406831012390\"\n+ \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n issuedPermissions.14.permission:\n- \"upgrade\"\n+ \"interact\"\n issuedPermissions.14.to:\n- \"0x461854d84Ee845F905e0eCf6C288DDEEb4A9533F\"\n+ \"0x1084c2e1E33632c4cB0e7C4f15c64b19d7fB1256\"\n issuedPermissions.14.via.2:\n- {\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000}\n issuedPermissions.14.via.1.address:\n- \"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"\n+ \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n issuedPermissions.14.via.0.address:\n- \"0x8247EF5705d3345516286B72bFE6D690197C2E99\"\n+ \"0x5050389572f2d220ad927CcbeA0D406831012390\"\n issuedPermissions.14.description:\n+ \"can pause the DA bridge\"\n issuedPermissions.13.permission:\n- \"interact\"\n+ \"upgrade\"\n issuedPermissions.13.to:\n- \"0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A\"\n+ \"0x461854d84Ee845F905e0eCf6C288DDEEb4A9533F\"\n issuedPermissions.13.description:\n- \"can create rewards submissions.\"\n issuedPermissions.13.via.2:\n+ {\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000}\n issuedPermissions.13.via.1:\n+ {\"address\":\"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"}\n issuedPermissions.13.via.0:\n+ {\"address\":\"0x8247EF5705d3345516286B72bFE6D690197C2E99\"}\n issuedPermissions.12.to:\n- \"0xEFca484E497a9de170Da32abfa11650957dD2a95\"\n+ \"0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A\"\n issuedPermissions.12.description:\n- \"can pause the DA bridge\"\n+ \"can create rewards submissions.\"\n issuedPermissions.12.via.1:\n- {\"address\":\"0x0c431C66F4dE941d089625E5B423D00707977060\"}\n issuedPermissions.12.via.0:\n- {\"address\":\"0x5050389572f2d220ad927CcbeA0D406831012390\"}\n issuedPermissions.11.to:\n- \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n+ \"0xEFca484E497a9de170Da32abfa11650957dD2a95\"\n issuedPermissions.11.via.2:\n- {\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000}\n issuedPermissions.11.via.1.address:\n- \"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"\n+ \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n issuedPermissions.11.via.0.address:\n- \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n+ \"0x5050389572f2d220ad927CcbeA0D406831012390\"\n issuedPermissions.10.via.2:\n+ {\"address\":\"0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d\",\"delay\":864000}\n issuedPermissions.10.via.1:\n+ {\"address\":\"0x369e6F597e22EaB55fFb173C6d9cD234BD699111\"}\n issuedPermissions.9.to:\n- \"0x4a3CD82B73821d075799680AcDff3e884B726777\"\n+ \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n issuedPermissions.9.via.1:\n- {\"address\":\"0x0c431C66F4dE941d089625E5B423D00707977060\"}\n issuedPermissions.9.via.0.address:\n- \"0x5050389572f2d220ad927CcbeA0D406831012390\"\n+ \"0x0c431C66F4dE941d089625E5B423D00707977060\"\n issuedPermissions.8.to:\n- \"0x57af860e3a1C16641CDDDa92898266D2df7Dfa71\"\n+ \"0x4a3CD82B73821d075799680AcDff3e884B726777\"\n issuedPermissions.7.to:\n- \"0xA935b0d2a529abb7F048CB56dd8B876ed5d8bD99\"\n+ \"0x57af860e3a1C16641CDDDa92898266D2df7Dfa71\"\n }\n```\n\n```diff\n contract EigenLayerOperationsMultisig (0xBE1685C81aA44FF9FB319dD389addd9374383e90) {\n +++ description: None\n values.$members.4:\n- \"0xa2425B00F9A9457AEdd51d4C36d9917eA1Aa7a02\"\n+ \"0xE31ad7cFD94bD74C40b53160aA0E8A0b6D340830\"\n values.$members.3:\n- \"0x27ff193A6A1574A611E21c39FDA636fA1d61ba30\"\n+ \"0xFBB1A3C8C8A99A2A4797250dF87E307Dc3f01Fe0\"\n values.$members.2:\n- \"0xb7Ae34BB33da55f12797e793E01e63a17B11d108\"\n+ \"0x27ff193A6A1574A611E21c39FDA636fA1d61ba30\"\n values.$members.1:\n- \"0xe7fFd467F7526abf9c8796EDeE0AD30110419127\"\n+ \"0xb7Ae34BB33da55f12797e793E01e63a17B11d108\"\n values.$members.0:\n- \"0x422e2F724faFE75F3635458aD7D3Ac803DCD7ff1\"\n+ \"0xe7fFd467F7526abf9c8796EDeE0AD30110419127\"\n }\n```"
}
]
},
{
"id": "5ceb5fcf",
"date": "Wed, 19 Mar 2025 15:44:58 GMT",
"timestamp": 1742399098,
"description": "MS signer change.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.5:\n- \"0xf20eD26be203f09B8F0Cb3265E74BB6AD24408b4\"\n values.$members.4:\n- \"0xaBd099133278ACF0415186c88F34e01b05D116f6\"\n+ \"0xf20eD26be203f09B8F0Cb3265E74BB6AD24408b4\"\n values.$members.3:\n- \"0x2bBA03bA38D90634e6afD8C23C16ca01651bc493\"\n+ \"0x55688D9211bC00BA573A1e0672e5de050818a360\"\n values.$members.2:\n- \"0xca3E83c0e41A1f27b9f832F4fcE22e79Cffecfc7\"\n+ \"0x2bBA03bA38D90634e6afD8C23C16ca01651bc493\"\n values.$members.1:\n- \"0x68bbBD6c18B0bc1B563489A13a398345E9da23d0\"\n+ \"0xca3E83c0e41A1f27b9f832F4fcE22e79Cffecfc7\"\n values.$members.0:\n- \"0xe7fFd467F7526abf9c8796EDeE0AD30110419127\"\n+ \"0x68bbBD6c18B0bc1B563489A13a398345E9da23d0\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "8d00b317",
"date": "Fri, 14 Mar 2025 12:53:14 GMT",
"timestamp": 1741956794,
"description": "MS member change.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerRewardsInitiatorMultisig (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A) {\n +++ description: None\n values.$members.5:\n+ \"0xe7fFd467F7526abf9c8796EDeE0AD30110419127\"\n values.$members.4:\n- \"0xe7fFd467F7526abf9c8796EDeE0AD30110419127\"\n+ \"0xca3E83c0e41A1f27b9f832F4fcE22e79Cffecfc7\"\n values.$members.3:\n- \"0xca3E83c0e41A1f27b9f832F4fcE22e79Cffecfc7\"\n+ \"0xf20eD26be203f09B8F0Cb3265E74BB6AD24408b4\"\n values.$members.2:\n- \"0xf20eD26be203f09B8F0Cb3265E74BB6AD24408b4\"\n+ \"0x2bBA03bA38D90634e6afD8C23C16ca01651bc493\"\n values.$members.1:\n- \"0x2bBA03bA38D90634e6afD8C23C16ca01651bc493\"\n+ \"0xaBd099133278ACF0415186c88F34e01b05D116f6\"\n values.$members.0:\n- \"0xaBd099133278ACF0415186c88F34e01b05D116f6\"\n+ \"0x68bbBD6c18B0bc1B563489A13a398345E9da23d0\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "b05c7fec",
"date": "Thu, 06 Feb 2025 09:19:17 GMT",
"timestamp": 1738833557,
"description": "Signer rotation in EigenLayerCommunityMultisig.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenLayerCommunityMultisig (0xFEA47018D632A77bA579846c840d5706705Dc598) {\n +++ description: None\n values.$members.4:\n- \"0x313011Ee87b12700E29B0D1136Ae3d64665F3939\"\n+ \"0xED732DEb32034e603bEEEdA84605dAbb8933594b\"\n values.$members.3:\n- \"0x80cb2DA66A3ccb6064f16B15B6ae11d8E089C6D7\"\n+ \"0x7F68e9C17D22005688b8E6968fCe31e32B4B03d1\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x7F68e9C17D22005688b8E6968fCe31e32B4B03d1)\n +++ description: None\n```"
}
]
},
{
"id": "4b79504c",
"date": "Wed, 29 Jan 2025 14:53:51 GMT",
"timestamp": 1738162431,
"description": "Refine permissions.",
"isHighSeverity": false,
"changeCount": 20,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenPodManager (0x91E677b07F7AF907ec9a428aafA9fc14a0d3A338) {\n +++ description: None\n values.numPods:\n- 32824\n+ 32895\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract PauserRegistry (0x0c431C66F4dE941d089625E5B423D00707977060)\n +++ description: Defines and stores pauser and unpauser roles for EigenLayer contracts and the EigenDAServiceManager.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (0x0ed6703C298d28aE0878d1b28e88cA87F9662fE9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AVSDirectory (0x135DDa560e946695d6f155dACaFC6f1F25C1F5AF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerOwningMultisig (0x369e6F597e22EaB55fFb173C6d9cD234BD699111)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelegationManager (0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A)\n +++ description: The DelegationManager contract is responsible for registering EigenLayer operators and managing the EigenLayer strategies delegations. The EigenDA StakeRegistry contract reads from the DelegationManager to track the total stake of each EigenDA operator.\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerProtocolCouncil (0x461854d84Ee845F905e0eCf6C288DDEEb4A9533F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerPauserMultisig (0x5050389572f2d220ad927CcbeA0D406831012390)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (0x5a2a4F2F3C18f09179B6703e63D9eDD165909073)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StrategyFactory (0x5e4C39Ad7A3E881585e383dB9827EB4811f6F647)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenPod (0x6D225e974Fa404D25Ffb84eD6E242Ffa18eF6430)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StrategyManager (0x858646372CC42E1A627fcE94aa7A7033e7CF075A)\n +++ description: The StrategyManager contract is responsible for managing the EigenLayer token strategies. Each EigenDA quorum has at least one strategy that defines the operators quorum stake.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8b9566AdA63B64d1E1dcF1418b43fd1433b72444)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenPodManager (0x91E677b07F7AF907ec9a428aafA9fc14a0d3A338)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerOperationsMultisig (0xBE1685C81aA44FF9FB319dD389addd9374383e90)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockControllerOwning (0xC06Fd4F821eaC1fF1ae8067b36342899b57BAa2d)\n +++ description: A timelock that allows scheduling calls and executing or cancelling them with a delay\n```\n\n```diff\n+ Status: CREATED\n contract Slasher (0xD92145c07f8Ed1D392c1B88017934E301CC1c3Cd)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBase (0xe9FA8F904d97854C7389b68923262ADCC6C27827)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract EIGEN Token (0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83)\n +++ description: The EIGEN token can be socially forked to slash operators for data withholding attacks (and other intersubjectively attributable faults). EIGEN is a wrapper over a second token, bEIGEN, which will be used solely for intersubjective staking. Forking EIGEN means changing the canonical implementation of the bEIGEN token in the EIGEN token contract.\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerCommunityMultisig (0xFEA47018D632A77bA579846c840d5706705Dc598)\n +++ description: None\n```"
}
]
},
{
"id": "02f75f8a",
"date": "Mon, 09 Dec 2024 13:18:36 GMT",
"timestamp": 1733750316,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract GnosisSafe (0x12a6Bfb2f81267b847743c87767B3A45b897b1C0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AltLayerToken (0x8457CA5040ad67fdebbCC8EdCE889A335Bc0fbFB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8d254438fD1Bc99f0862D63cB9B33a7b68c8F08D)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x90F3068f412D2090A08a83742f8864a2dF385647)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xA7Ee328c8A00BEB30BC70789C4CFdb81a61eBc2f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xAa34B20da3f64BD4574DF818c7FBE2228b35FAAc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xAd9A9c2EbEa3401d9A0e588bBc05455dd9F37570)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakedALT (0xb6D149C8DdA37aAAa2F8AD0934f2e5682C35890B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC4626Vault (0xF96798F49936EfB1a56F99Ceae924b6B8359afFb)\n +++ description: None\n```"
}
]
},
{
"id": "207287f6",
"date": "Mon, 21 Oct 2024 21:09:33 GMT",
"timestamp": 1729544973,
"description": "The OperationsMultisig updated the ejectionCooldown param, and quorumEjection params for quorum 0 (ETH) and quorum 1 (EIGEN). \nShortened ejectionRateLimitWindow and ejectionCooldown to 3 days, so that max 33% of the stake can be ejected in a 3-day window, and ejected operators can rejoin after 3 days from being ejected.\nAdded description for ejectionCooldown value in config.\n\ntx hash: 0x4c850491b06a70d7bdacaf0686d0f14b5ef6ec24c38c3c9e3ba359468b9caeab",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n+++ description: The time in seconds that an operator must wait before being able to re-register after being ejected.\n+++ severity: MEDIUM\n values.ejectionCooldown:\n- 604800\n+ 259200\n }\n```\n\n```diff\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E) {\n +++ description: Contract used for ejection of operators from the RegistryCoordinator.\n+++ description: Time delta to track ejection over. Cannot eject more than ejectableStakePercent of total stake in this time delta.\n values.ejectionRateLimitWindow.1:\n+ 259200\n }\n```"
}
]
},
{
"id": "fee3870e",
"date": "Wed, 18 Sep 2024 14:02:13 GMT",
"timestamp": 1726668133,
"description": "Added shapes to strategy template to automatically apply the template. Templated ignoring eigen() token method to prevent custom strategy from spamming.",
"isHighSeverity": false,
"changeCount": 14,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x0Fe4F44beE93503346A3Ac9EE5A26b130a5796d6)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x13760F50a9d7377e4F20CB8CF9e4c26586c658ff)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x1BeE69b7dFFfA4E2d53C2a2Df135C388AD25dCD2)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x298aFB19A105D59E74658C4C334Ff360BadE6dd2)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x54945180dB7943c0ed0FEE7EdaB2Bd24620256bc)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x57ba429517c3473B6d34CA9aCd56c0e735b94c02)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract (0x6075546538c3eFbD607ea6aFC24149fCcFb2edF4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x7CA911E83dabf90C90dD3De5411a10F1A6112184)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x8CA7A5d6f3acd3A7A8bC468a8CD0FB14B6BD28b6)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x93c4b944D05dfe6df7645A86cd2206016c51564D)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0x9d7eD45EE2E8FC5482fa2428f15C971e6369011d)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0xa4C637e0F704745D182e4D38cAb7E7485321d059)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract EigenStrategy (0xaCB55C530Acdb2849e6d4f36992Cd8c9D50ED8F7)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```\n\n```diff\n+ Status: CREATED\n contract StrategyBaseTVLLimits (0xAe60d8180437b5C34bB956822ac2710972584473)\n +++ description: A strategy implementation allowing to deposit a specific token as a restakable asset.\n```"
}
]
},
{
"id": "2493e44b",
"date": "Wed, 18 Sep 2024 11:14:04 GMT",
"timestamp": 1726658044,
"description": "New quorum added for Restaked ALT (reALT). This new third quorum is not used in latest confirmBatch transactions.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n values.$implementation:\n- \"0x0D2C5FD4Bb956cDD48A23fC3Ef77a768a5cDbAf7\"\n+ \"0x58fDE694Db83e589ABb21A6Fe66cb20Ce5554a07\"\n values.$upgradeCount:\n- 5\n+ 6\n+++ description: The maximum percentage of the stake which can be held by adversarial nodes before the availability of a blob is affected. First bytes is hex value for the first quorum, second byte is for the second quorum and so on.\n+++ severity: MEDIUM\n values.quorumAdversaryThresholdPercentages:\n- \"0x2121\"\n+ \"0x212121\"\n+++ description: The minimum percentage of stake that must attest in order to consider the blob dispersal successful. First bytes is hex value for the first quorum, second byte is for the second quorum and so on.\n+++ severity: MEDIUM\n values.quorumConfirmationThresholdPercentages:\n- \"0x3737\"\n+ \"0x373737\"\n }\n```"
}
]
},
{
"id": "10cb4ef2",
"date": "Mon, 02 Sep 2024 09:21:51 GMT",
"timestamp": 1725268911,
"description": "A third quorum is added. (added config) This new quorum uses a yet unverified strategy to count its stake. (Probably related to restaked ALT)\n\nsource: [StakeRegistry.strategyParams(2,0)](https://etherscan.io/address/0x006124Ae7976137266feeBFb3F4D2BE4C073139D#readProxyContract#F20)",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum3.2:\n- 0\n+ 667\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum3.1:\n- 0\n+ 11000\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum3.0:\n- 0\n+ 15\n+++ description: if quorum count changes, makes sure the new quorum parameters are tracked in the config\n+++ severity: HIGH\n values.quorumCount:\n- 2\n+ 3\n }\n```\n\n```diff\n contract EigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n values.getRestakeableStrategies.14:\n+ \"0x6075546538c3eFbD607ea6aFC24149fCcFb2edF4\"\n }\n```"
}
]
},
{
"id": "1ebcc114",
"date": "Thu, 08 Aug 2024 07:56:00 GMT",
"timestamp": 1723103760,
"description": "Added uint256 type safety to totalEjectable calculation.",
"isHighSeverity": true,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E) {\n +++ description: Contract used for ejection of operators from the RegistryCoordinator.\n values.$implementation:\n- \"0x1A27AC48D40F70213Ae6ec64f66852e0A1a0E6fa\"\n+ \"0x33A517608999DF5CEfFa2b2EbA88B4461c26Af6f\"\n }\n```"
}
]
},
{
"id": "c11fc689",
"date": "Sun, 04 Aug 2024 10:05:09 GMT",
"timestamp": 1722765909,
"description": "This eigenDAServiceManager implementation upgrade prepared for the ability of AVSs to reward stakers and operators. Apart from that, only formatting and abstraction changes:\n- New `ServiceManagerBaseStorage` abstract contract (moved out from `ServiceManagerBase`)\n- New `createAVSRewardsSubmission` function and `onlyRewardsInitiator` modifier to call it: This allows AVSs to reward stakers and operators (https://www.blog.eigenlayer.xyz/coming-soon-avs-rewards-and-eigen-programmatic-incentives/)\n- `IServiceManagerUI` abstracted out of `IServiceManager`",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract eigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n values.$implementation:\n- \"0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1\"\n+ \"0x0D2C5FD4Bb956cDD48A23fC3Ef77a768a5cDbAf7\"\n values.rewardsInitiator:\n+ \"0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0x178eeeA9E0928dA2153A1d7951FBe30CF8371b8A)\n +++ description: None\n```"
}
]
},
{
"id": "bdf14215",
"date": "Thu, 25 Jul 2024 08:06:53 GMT",
"timestamp": 1721894813,
"description": "RegistryCoordinator upgrade: two new variables lastEjectionTimestamp, and ejectionCooldown. Once ejected, operators now need to wait for the cooldown period to end before they can reregister (currently 7 days).",
"isHighSeverity": true,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n values.$implementation:\n- \"0xd3e09a0c2A9A6FDf5E92aE65D3CC090A4dF8EECF\"\n+ \"0xdcabf0bE991d4609096CCe316df08d091356E03F\"\n values.ejectionCooldown:\n+ 604800\n }\n```"
}
]
},
{
"id": "e9224a46",
"date": "Wed, 22 May 2024 14:05:54 GMT",
"timestamp": 1716386754,
"description": "Registry coordinator:\n - Ejector address was changed from the EigenLayerOperationsMultisig to the EjectionManager\n\neigenDAServiceManager:\n - New EjectionManager contract\n - quorumNumbersRequired - second quorum (EIGEN token) now active\n\nEjectionManager:\n- used to eject validators from quorum\n- permissioned, only ejectors and owner can eject operators\n- operators to eject are external input provided by ejector\n Ejection spec parameters: \n - Max 200 operators for each quorum. When the global operator cap (200) is reached for the quorum, the joining operator must have more than 1.1X the quorum weight of the current lowest-weighted operator in order to replace that operator.\n - RateLimitWindow and max EjectableStakePercent. There is a time delta (7 days) to track ejection over. SC checks that system cannot eject more than ejectableStakePercent (33.33%) of total stake in this time delta.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n values.ejector:\n- \"0xBE1685C81aA44FF9FB319dD389addd9374383e90\"\n+ \"0x130d8EA0052B45554e4C99079B84df292149Bd5E\"\n }\n```\n\n```diff\n contract eigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n upgradeability.implementation:\n- \"0x26089e9738b809d8308B0011B93b4225a112DB8C\"\n+ \"0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1\"\n implementations.0:\n- \"0x26089e9738b809d8308B0011B93b4225a112DB8C\"\n+ \"0xCDFFF07d5b8AcdAd13607615118a2e65030f5be1\"\n values.quorumNumbersRequired:\n- \"0x00\"\n+ \"0x0001\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract EjectionManager (0x130d8EA0052B45554e4C99079B84df292149Bd5E)\n +++ description: Contract used for ejection of operators from the RegistryCoordinator.\n```"
}
]
},
{
"id": "3d0f1628",
"date": "Fri, 10 May 2024 16:41:41 GMT",
"timestamp": 1715359301,
"description": "Only implementation change is the BLOCK_STALE_MEASURE constant variable, from 150 to 300. This is the maximum amount of blocks in the past that the service will consider stake amounts to still be 'valid'. If a batch is signed by a certain amount of stake, it then needs to be submitted within the next 300 blocks, or the confirmBatch function will revert.\n\nquorumAdversaryThresholdPercentages and quorumConfirmationThresholdPercentages are currently unused in the smart contracts. They might be called by off-chain workers.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract eigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n upgradeability.implementation:\n- \"0xF5fD25A90902c27068CF5eBe53Be8da693Ac899e\"\n+ \"0x26089e9738b809d8308B0011B93b4225a112DB8C\"\n implementations.0:\n- \"0xF5fD25A90902c27068CF5eBe53Be8da693Ac899e\"\n+ \"0x26089e9738b809d8308B0011B93b4225a112DB8C\"\n values.BLOCK_STALE_MEASURE:\n- 150\n+ 300\n values.quorumAdversaryThresholdPercentages:\n- \"0x21\"\n+ \"0x2121\"\n values.quorumConfirmationThresholdPercentages:\n- \"0x37\"\n+ \"0x3737\"\n }\n```"
}
]
},
{
"id": "a56a05cf",
"date": "Wed, 01 May 2024 11:45:46 GMT",
"timestamp": 1714563946,
"description": "- getRestakeableStrategies: From EL: Added bEIGEN-Strategy. This is an extended `BaseStrategy` smart contract that will be used for staking bEIGEN. (It also allows EIGEN but will unwrap it for you on deposit)\n\n- Second quorum - Added tracking of new quorum parameters. The second quorum uses EIGEN strategy (0xaCB55C530Acdb2849e6d4f36992Cd8c9D50ED8F7) for stake calculation in the stake registry.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656) {\n +++ description: Operators register here with an AVS: The coordinator has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes, 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum, 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum2.2:\n- 0\n+ 50\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum2.1:\n- 0\n+ 11000\n+++ description: 0_maxOperatorCount, 1_kickBIPsOfOperatorStake, 2_kickBIPsOfTotalStake\n values.operatorSetParamsQuorum2.0:\n- 0\n+ 200\n+++ description: if quorum count changes, makes sure the new quorum parameters are tracked in the config\n+++ type: RISK_PARAMETER\n+++ severity: HIGH\n values.quorumCount:\n- 1\n+ 2\n }\n```\n\n```diff\n contract eigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0) {\n +++ description: None\n values.getRestakeableStrategies.13:\n+ \"0xaCB55C530Acdb2849e6d4f36992Cd8c9D50ED8F7\"\n }\n```"
}
]
},
{
"id": "5ddf2264",
"date": "Mon, 29 Apr 2024 10:19:33 GMT",
"timestamp": 1714385973,
"description": "EigenDA exposes the address of the RegistryCoordinator while for istance EOracle does not (it's immutable constructor param). Check RC is discovered when adding new AVSes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StrategyManager (0x858646372CC42E1A627fcE94aa7A7033e7CF075A) {\n +++ description: None\n values.paused:\n- 1\n+ 0\n }\n```"
}
]
},
{
"id": "810c5c93",
"date": "Thu, 11 Apr 2024 13:21:37 GMT",
"timestamp": 1712841697,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 21,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract StakeRegistry (0x006124Ae7976137266feeBFb3F4D2BE4C073139D)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BLSApkRegistry (0x00A5Fd09F6CeE6AE9C8b0E5e33287F7c82880505)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RegistryCoordinator (0x0BAAc79acD45A023E19345c352d8a7a83C4e5656)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PauserRegistry (0x0c431C66F4dE941d089625E5B423D00707977060)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AVSDirectory (0x135DDa560e946695d6f155dACaFC6f1F25C1F5AF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenLayerBeaconOracle (0x343907185b71aDF0eBa9567538314396aa985442)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0x369e6F597e22EaB55fFb173C6d9cD234BD699111)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelegationManager (0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (0x5a2a4F2F3C18f09179B6703e63D9eDD165909073)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelayedWithdrawalRouter (0x7Fe7E9CC0F274d2435AD5d56D5fa73E47F6A23D8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract eigenDAProxyAdmin (0x8247EF5705d3345516286B72bFE6D690197C2E99)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StrategyManager (0x858646372CC42E1A627fcE94aa7A7033e7CF075A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract eigenDAServiceManager (0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8b9566AdA63B64d1E1dcF1418b43fd1433b72444)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenPod (0x8bA40dA60f0827d027F029aCEE62609F0527a255)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EigenPodManager (0x91E677b07F7AF907ec9a428aafA9fc14a0d3A338)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Timelock (0xA6Db1A8C5a981d1536266D2a393c5F8dDb210EAF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract IndexRegistry (0xBd35a7a1CDeF403a6a99e4E8BA0974D198455030)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xBE1685C81aA44FF9FB319dD389addd9374383e90)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Slasher (0xD92145c07f8Ed1D392c1B88017934E301CC1c3Cd)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xFEA47018D632A77bA579846c840d5706705Dc598)\n +++ description: None\n```"
}
]
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
[REMOVED]
espresso
+0 -656
+0 -1
"espresso"
+0 -1
"espresso-da"
+0 -1
"Espresso DA"
+0 -1
null
+0 -1
null
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -25
{
"badges": [],
"description": "Espresso DA is a three-layer data availability (DA) solution based on the HotShot consensus.",
"links": {
"websites": [
"https://espressosys.com/"
],
"documentation": [
"https://docs.espressosys.com/",
"https://docs.espressosys.com/network/espresso-architecture/the-espresso-network/internal-functionality/light-client"
],
"repositories": [
"https://github.com/espressosystems/",
"https://github.com/EspressoSystems/espresso-sequencer/tree/main/contracts"
],
"explorers": [
"https://explorer.main.net.espresso.network/"
],
"socialMedia": [
"https://x.com/EspressoSys",
"https://discord.com/invite/YHZPk5dbcq",
"https://medium.com/@espressosys"
]
}
}
+0 -1
null
+0 -1
null
+0 -16
[
{
"title": "Espresso transitions to Proof-of-Stake",
"url": "https://paragraph.com/@espressofndn/proof-of-stake-upgrade-begins",
"date": "2026-03-04T00:00:00Z",
"description": "Espresso transitions from a permissioned validator set to permissionless proof-of-stake secured by staked ESP tokens.",
"type": "general"
},
{
"title": "EspressoDA launch on mainnet",
"url": "https://medium.com/@espressosys/espresso-mainnet-0-is-live-deedc2505081",
"date": "2024-11-11T00:00:00Z",
"description": "EspressoDA mainnet launches with a permissioned set of node operators.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -46
{
"economicSecurity": {
"token": {
"symbol": "ESP",
"decimals": 18,
"coingeckoId": "espresso"
}
},
"risks": {
"economicSecurity": {
"value": {
"value": "No slashing",
"sentiment": "bad",
"description": "Although node operators are required to stake ESP tokens to become members of the DA network, there is no slashing mechanism in place for misbehaving nodes."
},
"adjustSecurityRisk": false
},
"fraudDetection": {
"value": "None",
"sentiment": "bad",
"description": "There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer."
}
},
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n## Consensus\n\nEspresso uses the HotShot consensus protocol, a communication-efficient proof-of-stake system that is Byzantine Fault Tolerant (BFT).\nThe validator set is permissionless: anyone can stake ESP tokens and the top 100 validators by total stake form the active consensus set, which is dynamically adjusted at epoch boundaries.\nBuilt on HotStuff-2, it achieves linear communication complexity using a pacemaker module to synchronize views and ensures safety and liveness as long as over two-thirds of the stake is controlled by honest nodes.\nAlthough validators are required to stake ESP to participate, there is currently no slashing mechanism in place for misbehaving nodes.\n\nHotShot operates in a view-by-view manner, where each view designates a leader and an external builder. \nDuring a view, the consensus proposer finalizes a block with a certificate of availability by utilizing Espresso DA for data availability.\n\n## Data Availability Certificate\n\nOnce the proposer sends data to HotShot node operators, they initiate Espresso DA's three layers of data availability:\n\n- **VID Layer**: Disperses erasure-coded data to all nodes. VID layer nodes only store chunks of the data.\n- **DA Committee Layer**: Uploads the data and commitment to a small DA committee. Every node in the committee stores the full data.\n- **CDN Layer**: Uploads the full data to a content delivery network (CDN). \n\nOnce nodes receive and store the data, they return votes to the proposer. DAVotes are votes from committee nodes storing the full data, while QuorumVotes are votes from nodes storing erasure-coded shares of the data.\nA DA certificate consists of two components, the retrievability certificate and the optimistic DAC certificate:\n\n- **Retrievability Certificate**: Formed when the DA leader collects 2/3 + 1 QuorumVotes.\n- **Optimistic DAC Certificate**: Formed when the DA leader gathers 2/3 + 1 DAVotes from the DA committee. Currently, the committee size is 21 members, so the threshold is 15 signatures.\n\n\nOnce the DAC is formed, the DA leader stops broadcasting data to the nodes.\n\n## L2s Data Availability\n\nThe life cycle of L2 transactions begins with users submitting transactions to the Espresso DA mempool through an RPC endpoint, or directly to the block builder private mempool, including a namespace ID to indicate the target L2 rollup. \nA DA leader collects and disperses these transactions across Espresso DA's layers to form a DA certificate. The leader then broadcasts a proposal with a vector commitment for the transactions to the HotShot consensus layer. \nThe finalization of the block commitment in HotShot establishes data availability for the corresponding transactions.\nAfter block finalization in HotShot, the relayer propagates the commitment and quorum certificates to the L1 Light Client contract, which verifies the certificate and the HotShot state SNARK proof via the verifyProof function. \n\n\n\nUsers can retrieve data by querying any of Espresso DA's layers, though the VID layer is slower due to the reconstruction of erasure-coded shares. L2s can also use a verifyInclusion function on an L1 light client smart contract to confirm a blob's inclusion in the Espresso DA HotShot chain."
},
"throughput": [
{
"size": 1000000,
"frequency": 2,
"sinceTimestamp": 1731283200
}
],
"type": "Public Blockchain",
"usedWithoutBridgeIn": [
{
"id": "appchain",
"name": "Appchain",
"slug": "appchain"
}
],
"validators": {
"type": "dynamic"
}
}
+0 -55
{
"daLayer": "espresso",
"name": "HotShot Light Client",
"relayerType": {
"value": "Permissioned",
"sentiment": "warning",
"description": "Only whitelisted relayers can post attestations to this bridge."
},
"risks": {
"committeeSecurity": {
"value": "Validator set",
"sentiment": "good",
"description": "The committee requires an honest minority (less than 1/3) of members (or the network stake) to prevent the DA bridge from accepting an unavailable data commitment. \n Participation in the committee is permissionless, based only on stake requirements and an honest majority of validators processing the new operator's request to join the active set.",
"orderHint": 2
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "No mechanism",
"sentiment": "bad",
"description": "The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity."
}
},
"technology": {
"description": "## Architecture\nThe Light Client contract serves as the DA bridge for the Espresso DA solution and is responsible for storing the HotShot consensus state on Ethereum.\n\nWhen HotShot nodes reach consensus, they sign the updated HotShot state using Schnorr signatures, which indicate agreement with the state of the proposed block. These signatures are stored locally on the DA layer nodes.\n\nA prover retrieves these signatures and generates a SNARK proof, which is sent to the LightClient contract's newFinalizedState function. The LightClient contract verifies this proof using its verifyProof method, which accepts the proof and a set of public inputs, such as the blockHeight and the Merkle root of all sequenced blocks. \n\nThe proof should contain the HotShot state, the stake table information, and the list of Schnorr signatures from the HotShot nodes that formed a quorum and reached consensus on the state, and the new state is accepted only if the proof passes verification.\n\nCurrently, attestations are relayed to the Light Client every 12 hours.",
"references": [
{
"title": "Light Client Functionality",
"url": "https://docs.espressosys.com/network/espresso-architecture/the-espresso-network/internal-functionality"
},
{
"title": "Espresso Github Repository",
"url": "https://github.com/EspressoSystems/espresso-sequencer/tree/main/contracts"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the DA bridge accepts an incorrect or malicious data commitment provided by 2/3 of validators."
},
{
"category": "Funds can be frozen if",
"text": "excluding L2-specific DA fallback - the permissioned relayers are unable to submit DA commitments to the Light Client contract."
}
]
},
"usedIn": [],
"validationType": {
"value": "Validity Proof",
"description": "The DA attestation requires onchain SNARK proof verification to be accepted by the bridge. Operators signatures and their corresponding stake are verified as part of the proof."
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -78
[
{
"projectId": "espresso",
"sinceTimestamp": 1704700211,
"untilTimestamp": 1772483759,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0x2063d4f7",
"signature": "function newFinalizedState(tuple newState, tuple proof)"
}
},
{
"projectId": "espresso",
"sinceTimestamp": 1704700211,
"untilTimestamp": 1772483759,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0x2063d4f7",
"signature": "function newFinalizedState(tuple newState, tuple proof)"
}
},
{
"projectId": "espresso",
"sinceTimestamp": 1772483759,
"untilTimestamp": 1772490059,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0x757c37ad",
"signature": "function newFinalizedState(tuple newState, tuple nextStakeTable, tuple proof)"
}
},
{
"projectId": "espresso",
"sinceTimestamp": 1772483759,
"untilTimestamp": 1772490059,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0x757c37ad",
"signature": "function newFinalizedState(tuple newState, tuple nextStakeTable, tuple proof)"
}
},
{
"projectId": "espresso",
"sinceTimestamp": 1772490059,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0xaabd5db3",
"signature": "function newFinalizedState(tuple newState, tuple nextStakeTable, uint256 newAuthRoot, tuple proof)"
}
},
{
"projectId": "espresso",
"sinceTimestamp": 1772490059,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"selector": "0xaabd5db3",
"signature": "function newFinalizedState(tuple newState, tuple nextStakeTable, uint256 newAuthRoot, tuple proof)"
}
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -132
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EspressoMultisig",
"name": "EspressoMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with OpsTimelock\n * cancel queued transactions \n * propose transactions ",
"accounts": [
{
"address": "eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982",
"type": "Contract",
"isVerified": true,
"name": "0x34F5…1982",
"url": "https://etherscan.io/address/0x34F5af5158171Ffd2475d21dB5fc3B311F221982"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x745948f86C228f11F970d11E8e281c68837dCC55",
"type": "EOA",
"isVerified": true,
"name": "0x7459…CC55",
"url": "https://etherscan.io/address/0x745948f86C228f11F970d11E8e281c68837dCC55"
},
{
"address": "eth:0x1584F9D22Ba5C56AC0bB6496c447a95a721Eb709",
"type": "EOA",
"isVerified": true,
"name": "0x1584…b709",
"url": "https://etherscan.io/address/0x1584F9D22Ba5C56AC0bB6496c447a95a721Eb709"
},
{
"address": "eth:0x3F3662e0B1D652cB6dDCd2dc31DFE5D762bBd3F2",
"type": "EOA",
"isVerified": true,
"name": "0x3F36…d3F2",
"url": "https://etherscan.io/address/0x3F3662e0B1D652cB6dDCd2dc31DFE5D762bBd3F2"
},
{
"address": "eth:0xf4b7676d9EC86D2011aB87855424219a97DEB40c",
"type": "EOA",
"isVerified": true,
"name": "0xf4b7…B40c",
"url": "https://etherscan.io/address/0xf4b7676d9EC86D2011aB87855424219a97DEB40c"
},
{
"address": "eth:0x5E768dd03BD821703ef825e057434De85913EEAC",
"type": "EOA",
"isVerified": true,
"name": "0x5E76…EEAC",
"url": "https://etherscan.io/address/0x5E768dd03BD821703ef825e057434De85913EEAC"
}
],
"discoveryDrivenData": true
},
{
"id": "EspressoOpsMultisig",
"name": "EspressoOpsMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with 2d delay**\n * HotShotLightClient [via: OpsTimelock with 2d delay]\n* Can interact with OpsTimelock\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 2d delay or with no delay** [via: OpsTimelock with 2d delay - or - acting directly]\n * propose transactions \n* Can interact with HotShotLightClient\n * can authorize an upgrade, update the permissioned prover, disable permissioned prover mode and set the state history retention period **with 2d delay** [via: OpsTimelock with 2d delay]",
"accounts": [
{
"address": "eth:0x5e37B8038615EF3D75cf28b5982C4CBF065401fB",
"type": "Contract",
"isVerified": true,
"name": "0x5e37…01fB",
"url": "https://etherscan.io/address/0x5e37B8038615EF3D75cf28b5982C4CBF065401fB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x22dfbDF674E6bd4112a332388E36940650eF5608",
"type": "EOA",
"isVerified": true,
"name": "0x22df…5608",
"url": "https://etherscan.io/address/0x22dfbDF674E6bd4112a332388E36940650eF5608"
},
{
"address": "eth:0x702bbBB423FB969f90031A866a9eCEF013E4734D",
"type": "EOA",
"isVerified": true,
"name": "0x702b…734D",
"url": "https://etherscan.io/address/0x702bbBB423FB969f90031A866a9eCEF013E4734D"
},
{
"address": "eth:0x5aF3Cda1bcB6105c3F714fd1746490E25a171490",
"type": "EOA",
"isVerified": true,
"name": "0x5aF3…1490",
"url": "https://etherscan.io/address/0x5aF3Cda1bcB6105c3F714fd1746490E25a171490"
},
{
"address": "eth:0x1584F9D22Ba5C56AC0bB6496c447a95a721Eb709",
"type": "EOA",
"isVerified": true,
"name": "0x1584…b709",
"url": "https://etherscan.io/address/0x1584F9D22Ba5C56AC0bB6496c447a95a721Eb709"
},
{
"address": "eth:0x745948f86C228f11F970d11E8e281c68837dCC55",
"type": "EOA",
"isVerified": true,
"name": "0x7459…CC55",
"url": "https://etherscan.io/address/0x745948f86C228f11F970d11E8e281c68837dCC55"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x4fD0Ac6922Da5C96b6f94202EcE60E8fE3bF3947",
"type": "EOA",
"isVerified": true,
"name": "0x4fD0…3947",
"url": "https://etherscan.io/address/0x4fD0Ac6922Da5C96b6f94202EcE60E8fE3bF3947",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with HotShotLightClient\n * can call newFinalizedState() to prove the latest HotShot state ",
"discoveryDrivenData": true
}
]
}
}
+0 -114
{
"addresses": {
"ethereum": [
{
"name": "PlonkVerifierV3",
"isVerified": true,
"address": "eth:0x098C593361d12DD638Ce7dBf34c8C6a655f8274c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x098C593361d12DD638Ce7dBf34c8C6a655f8274c#code"
},
{
"name": "OpsTimelock",
"isVerified": true,
"address": "eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 2d.\n* Roles:\n * **canceller**: EspressoMultisig, EspressoOpsMultisig\n * **defaultAdmin**: EspressoOpsMultisig, OpsTimelock; ultimately EspressoOpsMultisig\n * **executor**: EspressoOpsMultisig\n * **proposer**: EspressoMultisig, EspressoOpsMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700#code"
},
{
"name": "HotShotLightClient",
"isVerified": true,
"address": "eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700"
],
"implementations": [
"eth:0x0177b586A949088309227f1A91951571CF770D8C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1730830835,
"transactionHash": "0x48bc49aef98e23cde6494da9897bac992ea11e7390c162bb86baa5a2c2209c4c",
"implementations": [
"eth:0x2E81FD03725158903FD32E41b0357C47941BB2c3"
]
},
{
"timestamp": 1746118643,
"transactionHash": "0x61a3f76709191c8149c61f1aed15846ac8debd71a50540f71d94f21882323e41",
"implementations": [
"eth:0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B"
]
},
{
"timestamp": 1772483759,
"transactionHash": "0x6add50bc3075d1f66a1c9f57a5c38792140f5c757978ffce813da4c193ab2232",
"implementations": [
"eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93"
]
},
{
"timestamp": 1772490059,
"transactionHash": "0xce95265e02f16c8f7d227474167c4ce8dea8b540696748c8fad1676a6cc44269",
"implementations": [
"eth:0x0177b586A949088309227f1A91951571CF770D8C"
]
}
],
"description": "The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n* Roles:\n * **admin**: OpsTimelock; ultimately EspressoOpsMultisig\n * **owner**: OpsTimelock; ultimately EspressoOpsMultisig\n * **permissionedProver**: EOA 1",
"upgradableBy": [
{
"name": "EspressoOpsMultisig",
"delay": "2d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458#code"
},
{
"name": "OperatorRegistryV1Admin",
"isVerified": true,
"address": "eth:0x9760fb6F48c15f37304bCb5B502F00512032A3Bb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9760fb6F48c15f37304bCb5B502F00512032A3Bb#code"
}
]
},
"risks": [
{
"category": "Funds can be lost if",
"text": "the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades."
}
],
"zkVerifiers": [
"eth:0x098C593361d12DD638Ce7dBf34c8C6a655f8274c"
]
}
+0 -7
{
"baseTimestamp": 1785249458,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+0 -142
[
{
"id": "c2fd826b",
"date": "Tue, 28 Jul 2026 14:38:41 GMT",
"timestamp": 1785249458,
"description": "EspressoMultisig: `$members[4]` rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EspressoMultisig (eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"eth:0x811caa1c5C96BFE0AB12b2EEB542994B0C368627\"\n+ \"eth:0x5E768dd03BD821703ef825e057434De85913EEAC\"\n }\n```"
}
]
},
{
"id": "392fe05c",
"date": "Tue, 14 Apr 2026 15:09:05 GMT",
"timestamp": 1776179280,
"description": "HotShotLightClient admin/owner moved from EspressoMultisig (0x34F5af5, 3-of-5) directly to a new OpsTimelock (0x67861f1, OpenZeppelin TimelockController, 48-hour minimum delay).\n\nRole graph on the timelock:\n- PROPOSER: EspressoMultisig (3-of-5) + new EspressoOpsMultisig (0x5e37B8, 3-of-5)\n- CANCELLER: EspressoMultisig + EspressoOpsMultisig\n- EXECUTOR: EspressoOpsMultisig only (sole executor)\n- DEFAULT_ADMIN (manages all roles): timelock itself + EspressoOpsMultisig\n\nNet effect: upgrades require either multisig to propose, a 48-hour wait, and then EspressoOpsMultisig to execute. EspressoOpsMultisig is the single point of execution and can also grant/revoke roles directly (not timelock-gated) via DEFAULT_ADMIN_ROLE.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EspressoMultisig (eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982) {\n +++ description: None\n receivedPermissions.0.role:\n- \".owner\"\n+ \".Canceller\"\n receivedPermissions.0.description:\n- \"can authorize an upgrade, update the permissioned prover, disable permissioned prover mode and set the state history retention period.\"\n+ \"cancel queued transactions.\"\n receivedPermissions.0.from:\n- \"eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458\"\n+ \"eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700\"\n receivedPermissions.1.description:\n+ \"propose transactions.\"\n receivedPermissions.1.role:\n- \"admin\"\n+ \".Proposer\"\n receivedPermissions.1.from:\n- \"eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458\"\n+ \"eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700\"\n receivedPermissions.1.permission:\n- \"upgrade\"\n+ \"interact\"\n }\n```\n\n```diff\n contract HotShotLightClient (eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458) {\n +++ description: The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n values.$admin:\n- \"eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982\"\n+ \"eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700\"\n values.owner:\n- \"eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982\"\n+ \"eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract EspressoOpsMultisig (eth:0x5e37B8038615EF3D75cf28b5982C4CBF065401fB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OpsTimelock (eth:0x67861f1eF4Db9BCADdD8c5E86dB92386Dd4EC700)\n +++ description: A timelock with access control. The current minimum delay is 2d.\n```"
}
]
},
{
"id": "6c7139d8",
"date": "Wed, 04 Mar 2026 15:29:14 GMT",
"timestamp": 1772638086,
"description": "HotShotLightClient upgraded from LightClientV2 to LightClientV3 (impl `0x4DF3...` → `0x0177...`).\n\nKey changes in V3:\n- New `authRoot` state variable: a value signed by validators as part of the extended light client state, stored on-chain after SNARK verification.\n- New `newFinalizedState()` overload accepting `newAuthRoot` parameter. The V2 overload now reverts with `DeprecatedApi()`.\n- Redesigned proof verification: public inputs reduced from 11 to 5. Instead of passing all state fields individually, V3 computes `keccak256(abi.encodePacked(state, nextStakeTable, authRoot)) mod p` as a single signed message digest. This makes the circuit more future-proof — adding new certified states no longer requires circuit/VK updates.\n- `initializeV3()` re-initializes `_firstEpoch`.\n\nPlonkVerifierV2 replaced by PlonkVerifierV3 (`0x0D65...` → `0x098C...`) — updated to match the new circuit with `uint256[5]` public inputs instead of `uint256[11]`.\n\nDiff: https://disco.l2beat.com/diff/eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93/eth:0x0177b586A949088309227f1A91951571CF770D8C\n\nEspresso transitioned to permissionless PoS on March 4, 2026 ([announcement](https://paragraph.com/@espressofndn/proof-of-stake-upgrade-begins)). Validator set is now open — top 100 by staked ESP. Slashing is not yet implemented ([StakeTable.sol](https://github.com/EspressoSystems/espresso-network/blob/main/contracts/src/StakeTable.sol) comments: \"will be used for slashing later\"). Updated project type from DA Service to Public Blockchain.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract PlonkVerifierV2 (eth:0x0D654ce674D952B4944f6A2e410aBdaA824a417D)\n +++ description: None\n```\n\n```diff\n contract HotShotLightClient (eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458) {\n +++ description: The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n sourceHashes.1:\n- \"0x40a6e4b3d7ad267eb7f657fa35a983e445fe17019f66297d20a469d80f50cb15\"\n+ \"0xcd6859a33f4bb591c2c5303ca74047fbdd842f543c98e518219c727c33d864ba\"\n values.$implementation:\n- \"eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93\"\n+ \"eth:0x0177b586A949088309227f1A91951571CF770D8C\"\n values.$libraries.1:\n- \"eth:0x0D654ce674D952B4944f6A2e410aBdaA824a417D\"\n+ \"eth:0x098C593361d12DD638Ce7dBf34c8C6a655f8274c\"\n values.$pastUpgrades.3:\n+ [\"2026-03-02T22:20:59.000Z\",\"0xce95265e02f16c8f7d227474167c4ce8dea8b540696748c8fad1676a6cc44269\",[\"eth:0x0177b586A949088309227f1A91951571CF770D8C\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.currentEpoch:\n- 274\n+ 276\n values.getVersion.majorVersion:\n- 2\n+ 3\n values.authRoot:\n+ \"95706045122542419068533472823093870027268909194070702472720375130594565742773\"\n implementationNames.eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93:\n- \"LightClientV2\"\n implementationNames.eth:0x0177b586A949088309227f1A91951571CF770D8C:\n+ \"LightClientV3\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract PlonkVerifierV3 (eth:0x098C593361d12DD638Ce7dBf34c8C6a655f8274c)\n +++ description: None\n```"
}
]
},
{
"id": "e102e26e",
"date": "Mon, 02 Mar 2026 22:17:06 GMT",
"timestamp": 1772489763,
"description": "HotShotLightClient upgraded from LightClient (v1) to LightClientV2 (v2), part of Espresso's transition to Proof-of-Stake consensus. Key changes:\n\n- Introduces an epoch-based system (blocksPerEpoch=40000, ~1 day). Each epoch boundary requires a mandatory state update submission.\n- Replaces the static genesisStakeTableState with a dynamic votingStakeTableState that rotates at epoch boundaries, enabling PoS validator set changes.\n- PLONK proof verification expanded from 7 to 11 public inputs to accommodate the next stake table commitment in proofs.\n- The old `newFinalizedState(state, proof)` function is deprecated (reverts with `DeprecatedApi()`), replaced by `newFinalizedState(state, nextStakeTable, proof)`.\n- PlonkVerifier replaced by PlonkVerifierV2 (new library at 0x0D654ce674D952B4944f6A2e410aBdaA824a417D) matching the expanded 11-input proof format.\n- `renounceOwnership()` now always reverts (OwnershipCannotBeRenounced).\n\nThe PoS rollout started on March 2, 2026 across three epochs, with full activation targeted for March 4, 2026.\n\nLightClient diff: https://disco.l2beat.com/diff/eth:0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B/eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93\nPlonkVerifier diff: https://disco.l2beat.com/diff/eth:0xa239397D05516d3e44bED853E7BA1E672dDD958f/eth:0x0D654ce674D952B4944f6A2e410aBdaA824a417D",
"isHighSeverity": true,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HotShotLightClient (eth:0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458) {\n +++ description: The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n sourceHashes.1:\n- \"0x6c8c2f6bb51ae2ffefb868f088dc9db0c6c7b920bc8fe97de669ee0d91e43090\"\n+ \"0x40a6e4b3d7ad267eb7f657fa35a983e445fe17019f66297d20a469d80f50cb15\"\n values.$implementation:\n- \"eth:0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B\"\n+ \"eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93\"\n values.$libraries.1:\n- \"eth:0xa239397D05516d3e44bED853E7BA1E672dDD958f\"\n+ \"eth:0x0D654ce674D952B4944f6A2e410aBdaA824a417D\"\n values.$pastUpgrades.2:\n+ [\"2026-03-02T20:35:59.000Z\",\"0x6add50bc3075d1f66a1c9f57a5c38792140f5c757978ffce813da4c193ab2232\",[\"eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getVersion.majorVersion:\n- 1\n+ 2\n values.blocksPerEpoch:\n+ 40000\n values.currentEpoch:\n+ 274\n values.epochStartBlock:\n+ 10960201\n values.votingStakeTableState:\n+ {\"threshold\":34,\"blsKeyComm\":\"1561632536195555148145050274009949812309785157828896392838981322602622136791\",\"schnorrKeyComm\":\"20147560324529416943341534119711171689827441694011856532375917186049770295574\",\"amountComm\":\"349594070000690608819508126396071528924936277306125447047023081215269308099\"}\n implementationNames.eth:0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B:\n- \"LightClient\"\n implementationNames.eth:0x4DF3515bB525787e9eae08B8f9647C30F6FA7d93:\n+ \"LightClientV2\"\n }\n```\n\n```diff\n- Status: DELETED\n contract PlonkVerifier (eth:0xa239397D05516d3e44bED853E7BA1E672dDD958f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PlonkVerifierV2 (eth:0x0D654ce674D952B4944f6A2e410aBdaA824a417D)\n +++ description: None\n```"
}
]
},
{
"id": "ff6001cb",
"date": "Tue, 10 Feb 2026 15:08:45 GMT",
"timestamp": 1770736062,
"description": "EspressoMultisig expanded from 3 to 5 members with threshold raised from 2 to 3 (now 3 of 5).",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EspressoMultisig (eth:0x34F5af5158171Ffd2475d21dB5fc3B311F221982) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x745948f86C228f11F970d11E8e281c68837dCC55\"\n values.$members.1:\n+ \"eth:0x1584F9D22Ba5C56AC0bB6496c447a95a721Eb709\"\n values.$members.0:\n- \"eth:0x389b5c80A1dbE24f96BEb50002cB5fbe2536e1Cc\"\n+ \"eth:0x3F3662e0B1D652cB6dDCd2dc31DFE5D762bBd3F2\"\n values.$members.2:\n- \"eth:0x84ef523696eeE7BC7Fe102Eccc8508895Cd2c37E\"\n+ \"eth:0x811caa1c5C96BFE0AB12b2EEB542994B0C368627\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "208af8d9",
"date": "Fri, 31 Oct 2025 10:48:34 GMT",
"timestamp": 1746205715,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract OperatorRegistryV1Admin (eth:0x9760fb6F48c15f37304bCb5B502F00512032A3Bb)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PlonkVerifier (eth:0xa239397D05516d3e44bED853E7BA1E672dDD958f)\n +++ description: None\n```"
}
]
},
{
"id": "93ca23ec",
"date": "Mon, 14 Jul 2025 12:45:01 GMT",
"timestamp": 1752497101,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EspressoMultisig (0x34F5af5158171Ffd2475d21dB5fc3B311F221982)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract HotShotLightClient (0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458)\n +++ description: The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n```"
}
]
},
{
"id": "3ade9898",
"date": "Fri, 02 May 2025 17:23:34 GMT",
"timestamp": 1746206614,
"description": "Minor upgrade of the HotShotLightClient contract (hardcoded verifier keys for the lightclient verifier are now public methods).",
"isHighSeverity": true,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HotShotLightClient (0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458) {\n +++ description: The DA bridge contract that stores and verifies HotShot state commitments on Ethereum.\n sourceHashes.1:\n- \"0xb39829b8c4f7adee8b3f63d4c34b18a92e40670401393ceb3af7105d95f4b8c4\"\n+ \"0x6c8c2f6bb51ae2ffefb868f088dc9db0c6c7b920bc8fe97de669ee0d91e43090\"\n values.$implementation:\n- \"0x2E81FD03725158903FD32E41b0357C47941BB2c3\"\n+ \"0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B\"\n values.$pastUpgrades.1:\n+ [\"2024-11-05T18:20:35.000Z\",\"0x48bc49aef98e23cde6494da9897bac992ea11e7390c162bb86baa5a2c2209c4c\",[\"0x2E81FD03725158903FD32E41b0357C47941BB2c3\"]]\n values.$pastUpgrades.0.2:\n- [\"0x2E81FD03725158903FD32E41b0357C47941BB2c3\"]\n+ \"0x61a3f76709191c8149c61f1aed15846ac8debd71a50540f71d94f21882323e41\"\n values.$pastUpgrades.0.1:\n- \"2024-11-05T18:20:35.000Z\"\n+ \"2025-05-01T16:57:23.000Z\"\n values.$pastUpgrades.0.0:\n- \"0x48bc49aef98e23cde6494da9897bac992ea11e7390c162bb86baa5a2c2209c4c\"\n+ [\"0xBE0aA3c41A906ABDc48cE21A0960E8311535cA4B\"]\n values.$upgradeCount:\n- 1\n+ 2\n }\n```"
}
]
},
{
"id": "6cdc3423",
"date": "Wed, 04 Dec 2024 14:34:00 GMT",
"timestamp": 1733322840,
"description": "Light Client contract verified.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract HotShotLightClient (0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458) {\n +++ description: None\n unverified:\n- true\n values.genesisStakeTableState:\n+ {\"threshold\":34,\"blsKeyComm\":\"1561632536195555148145050274009949812309785157828896392838981322602622136791\",\"schnorrKeyComm\":\"20147560324529416943341534119711171689827441694011856532375917186049770295574\",\"amountComm\":\"349594070000690608819508126396071528924936277306125447047023081215269308099\"}\n values.genesisState:\n+ {\"viewNum\":0,\"blockHeight\":0,\"blockCommRoot\":0}\n values.getVersion:\n+ {\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":0}\n values.isPermissionedProverEnabled:\n+ true\n values.owner:\n+ \"0x34F5af5158171Ffd2475d21dB5fc3B311F221982\"\n values.permissionedProver:\n+ \"0x4fD0Ac6922Da5C96b6f94202EcE60E8fE3bF3947\"\n values.stateHistoryRetentionPeriod:\n+ 864000\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n sourceHashes:\n+ [\"0xbbe53a68c0042f4050bdf21e8d16eee4688dd35d24e49740915f0a0cf994f0d6\",\"0xb39829b8c4f7adee8b3f63d4c34b18a92e40670401393ceb3af7105d95f4b8c4\"]\n }\n```"
}
]
},
{
"id": "b0312081",
"date": "Tue, 26 Nov 2024 17:25:29 GMT",
"timestamp": 1732641929,
"description": "First discovery. HotShotLightClient implementation is unverified.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract Safe (0x34F5af5158171Ffd2475d21dB5fc3B311F221982)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract HotShotLightClient (0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458)\n +++ description: None\n```"
}
]
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -6
+0 -6
{
"creator": "Espresso Systems",
"projectsForTvs": [
{
"projectId": "espresso",
"sinceTimestamp": 1730830799
}
],
"proofSystemInfo": "## Description\n\nEspresso proof system implements a light client of HotShot consensus of Espresso network, i.e. it verifies that a sufficient number of Espresso nodes have correctly signed consensus message. It is implemented by a [Jellyfish Plonk](https://github.com/EspressoSystems/jellyfish) proof system on a [custom circuit](https://github.com/EspressoSystems/espresso-network/blob/2c166fe13a730733d18198d3989d3be2b4c42da8/hotshot-state-prover/src/v3/circuit.rs) that checks all necessary conditions. Jellyfish is a Rust implementation of [Plonk system](https://eprint.iacr.org/2019/953.pdf) without significant modifications. [This code](https://github.com/EspressoSystems/espresso-network/blob/2c166fe13a730733d18198d3989d3be2b4c42da8/contracts/rust/gen-vk-contract/src/main.rs) generates a Solidity verifier to check zk proofs within EVM.",
"techStack": {
"snark": [
{
"id": "Jellyfish",
"type": "Plonk",
"name": "Jellyfish",
"description": "Open-source toolkit of various cryptographic primitives, including an implementation of Plonk SNARK, developed in Rust by Espresso Systems."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
},
{
"id": "CustomCircuits",
"type": "Other",
"name": "App-specific circuits",
"description": "This project uses custom app-specific ZK circuits."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Jellyfish",
"type": "Plonk",
"name": "Jellyfish",
"description": "Open-source toolkit of various cryptographic primitives, including an implementation of Plonk SNARK, developed in Rust by Espresso Systems."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
}
],
"verifierHashes": [
{
"hash": "0x060faa7957cb2ffdc75de8ea20d1eb50277c7fb0d2f48ecb7e2db7956d0bdad4",
"name": "Espresso verifier v3",
"sourceLink": "https://github.com/EspressoSystems/jellyfish",
"proofSystem": {
"id": "Jellyfish",
"type": "Plonk",
"name": "Jellyfish",
"description": "Open-source toolkit of various cryptographic primitives, including an implementation of Plonk SNARK, developed in Rust by Espresso Systems."
},
"knownDeployments": [
{
"address": "eth:0x098C593361d12DD638Ce7dBf34c8C6a655f8274c"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the abi packed flattened VerifyingKey structure returned by _getVk() function on the Espresso Light Client contract (0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458)."
}
]
}
+1 -1
+1 -1
{
"consensusAlgorithm": {
"name": "Gasper",
"description": "Ethereum's consensus protocol combines two separate consensus protocols, LMD GHOST and Casper FFG.\nLMD GHOST is a fork choice rule that essentially provides liveness to the chain. On the other hand, Casper FFG provides finality to the chain, protecting it from deep reversions.\nLMD GHOST provides the core of the chain fork choice rule, by selecting the Greedy Heaviest-Observed Sub-Tree (GHOST) and considering only the validators\nmost recent vote (Latest Message Driven, LMD). Casper FFG is a finality gadget, it modifies the fork choice by making some of the chain branches inaccessible.\nTogether they are known as \"Gasper\".",
"blockTime": 12,
"consensusFinality": 768,
"unbondingPeriod": 777600
},
"economicSecurity": {
"token": {
"symbol": "ETH",
"decimals": 18,
"coingeckoId": "ethereum"
}
},
"finality": 768,
"pruningWindow": 1555200,
"risks": {
"daLayer": {
"value": "Self-verify",
"sentiment": "good",
"description": "Full nodes download the full data for both transactions on the execution layer, and data blobs on the consensus layer. For a block to be considered valid, all data must be available and pass the is_data_available() check. From the rollup perspective, Ethereum's canonical chain cannot contain unavailable data commitments as full nodes self-verify the data availability of each block, discarding blocks with unavailable data.\n "
}
},
"sovereignProjectsTrackingConfig": [
{
"projectId": "codex",
"name": "Codex",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x8c12f051c161c2cda736f3b3fa1c4bdd35b7922c",
"sequencers": [
"0xb5bd290ef8ef3840cb866c7a8b7cc9e45fde3ab9"
],
"sinceBlock": 20953494
}
]
},
{
"projectId": "quarkchain",
"name": "QuarkChain SWC",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xa68295d77766d4e04854746e3c1873c891c1765e",
"sequencers": [
"0xf503a133df0c43b4814b12098604655ad9fe7e3b"
],
"sinceBlock": 23847277
}
]
},
{
"projectId": "creator",
"name": "Creator",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x18cc381705761aa2d2e8ea62888a4029a0fad3ab",
"sequencers": [
"0x9f915dd047b9d64a94e62aa141da3c7425c9431f",
"0x0bf4b30e680cc7cbab1c2436275851bcc9d35dc1"
],
"sinceBlock": 23869474
},
{
"type": "ethereum",
"inbox": "0x18cc381705761aa2d2e8ea62888a4029a0fad3ab",
"sequencers": [
"0xbb2de57b06752f86a0921eb4bf56c50865abbfca"
],
"sinceBlock": 25481035,
"untilBlock": 25952904
}
]
},
{
"projectId": "openzk",
"name": "OpenZK",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x8c0Bfc04AdA21fd496c55B8C50331f904306F564",
"sequencers": [
"0x1c841ed065149e32e4c43e3b10ecd71f1fed1db7"
],
"sinceBlock": 21712806
}
]
},
{
"projectId": "tajir",
"name": "Tajir Chain",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x009afe3a07dc5eb0e3d6dcffbcec2c3c90ea20e3",
"sequencers": [
"0xec7cd2030e0510763b2c2c87fc7e7ccc2f8c7463"
],
"sinceBlock": 25780874
}
]
},
{
"projectId": "gensyn",
"name": "Gensyn",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00b7cda0fa738014f2bf3b812ea08ec652452215",
"sequencers": [
"0xc4f94828b1f1c43a35783975b1c0c8703c834b15"
],
"sinceBlock": 23433987
}
]
},
{
"projectId": "alphachain",
"name": "Alpha Chain",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00c2bdb995acf5a2b3db3b9340861b4d564c3c72",
"sequencers": [
"0x03e78a186ebde2c14ad9220d2605fa0a22d7bbf5"
],
"sinceBlock": 23945310
}
]
},
{
"projectId": "ethiq",
"name": "Ethiq",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x0065929a5da79a699cf4631480ad2739de13cad9",
"sequencers": [
"0x7d80f5908cbe1c05925e8274195b59a246e82a03"
],
"sinceBlock": 24060440
}
]
},
{
"projectId": "wannachain",
"name": "WANNA Chain",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00775ef4e086ced39cfd7d62543ea95fd78ad429",
"sequencers": [
"0xbd45bdb70e45654b8a94a0f88bc00e3312a7c2cb"
],
"sinceBlock": 26067519
}
]
},
{
"projectId": "tea",
"name": "Tea",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00e8008e38598eb5b33e0b67f72be074122fafcd",
"sequencers": [
"0xd24b47d373f97590a3c9b15f16f1b560ad5a617a"
],
"sinceBlock": 25181715
}
]
},
{
"projectId": "symbiosis",
"name": "Symbiosis",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xa150ff19a31e1054f950098869834affe9bc6fdc",
"sequencers": [
"0xbe7f4edb6257b4d2c77293c380f19ce96a4fa41e"
],
"sinceBlock": 22824353
}
]
},
{
"projectId": "giwa",
"name": "GIWA",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00b4148589a62ec7ca2c46722940e4dd79306c8d",
"sequencers": [
"0x0f3498258819bece3f47661b3e331bd36c1cf857"
],
"sinceBlock": 26063366
}
]
},
{
"projectId": "eez",
"name": "EEZ",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x4b2760f84b83d6b3829e30a7573b0172b6d6402c",
"sequencers": [
"0x4261d69f840cc550945def48e5f477737118d546"
],
"sinceBlock": 26125484,
"untilBlock": 26135244
},
{
"type": "ethereum",
"inbox": "0x07f9e14feb43a6262141bfb598c09b678fd00163",
"sequencers": [
"0x4261d69f840cc550945def48e5f477737118d546"
],
"sinceBlock": 26135813
}
]
},
{
"projectId": "pegglecoin",
"name": "Pegglecoin",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xff00000000000000000000000000000000042069",
"sequencers": [
"0x705623d3985cf88e5a69fc99ca7d089063449902"
],
"sinceBlock": 21937906
}
]
},
{
"projectId": "opstack-8686",
"name": "OP Stack chain 8686",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x004793cde50c3cff1f4bbe5c6ec2821ae9121df8",
"sequencers": [
"0x23920c97f74b2e41edd58d3be9964ed75883d2d8"
],
"sinceBlock": 26091305
}
]
},
{
"projectId": "opstack-6921",
"name": "OP Stack chain 6921",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x0027b099f5cb5968e008c8f602900a1b62c71f9f",
"sequencers": [
"0xa5c10e93172bff1dd28af7304b461d8a494fb8e8"
],
"sinceBlock": 25731748
}
]
},
{
"projectId": "opstack-55531",
"name": "OP Stack chain 55531",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00bafeac59dd7fd22e6077ffbdcb49ce3a556e7a",
"sequencers": [
"0x90ca054bb40f0f2c2c62694c55acc61bcd101357"
],
"sinceBlock": 25897365
}
]
},
{
"projectId": "opstack-61111001",
"name": "OP Stack chain 61111001",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x00adab684e5a2732c1e2f1ca2cfb44f1b41b6e1d",
"sequencers": [
"0x1df5bc985bc174f193880e11cc691e7f598c0dd2"
],
"sinceBlock": 24454960
}
]
},
{
"projectId": "opstack-56778039791",
"name": "OP Stack chain 56778039791",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x0069e993d403330ea18e77f110243e231d8880cb",
"sequencers": [
"0xc1987cdb1fcda40abd2a7fbace3adf36841d3332"
],
"sinceBlock": 23051817
}
]
},
{
"projectId": "orbit-5816",
"name": "Orbit chain 5816",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xd65a35d19910d9f4e4aeb3cb4a87c3153bfb0fc6",
"sequencers": [
"0x77b25ace2eb0bdc7b4dbb064a79ced4d9b6ef62c"
],
"sinceBlock": 26060523
}
]
},
{
"projectId": "zksyncos-51703",
"name": "ZKsync OS chain 51703",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xa7980e38722dbe6238f221da65e1143d22161a71",
"sequencers": [
"0xbb2de57b06752f86a0921eb4bf56c50865abbfca"
],
"sinceBlock": 25953681
}
]
},
{
"projectId": "zksyncos-61703",
"name": "ZKsync OS chain 61703",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xa7980e38722dbe6238f221da65e1143d22161a71",
"sequencers": [
"0xa5ee2f9e0cd1862f245d13fa9428a707fb942cf6"
],
"sinceBlock": 25962259
}
]
},
{
"projectId": "zksyncos-5790",
"name": "ZKsync OS chain 5790",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0xa7980e38722dbe6238f221da65e1143d22161a71",
"sequencers": [
"0x16f3d92c45c2a663bc05e926322edd2281f9d7bf"
],
"sinceBlock": 26054185
}
]
},
{
"projectId": "zkstack-1345",
"name": "ZK Stack chain 1345",
"daTrackingConfig": [
{
"type": "ethereum",
"inbox": "0x8c0bfc04ada21fd496c55b8c50331f904306f564",
"sequencers": [
"0xf916d39fc2658665953428cb895353e69e27e8f8"
],
"sinceBlock": 24826121,
"untilBlock": 25462352
},
{
"type": "ethereum",
"inbox": "0x2e5110cf18678ec99818bfaa849b8c881744b776",
"sequencers": [
"0xf916d39fc2658665953428cb895353e69e27e8f8"
],
"sinceBlock": 25464904
}
]
}
],
"systemCategory": "public",
"technology": {
"description": "## Consensus\nEthereum's consensus protocol combines two separate consensus protocols, LMD GHOST and Casper FFG.\nLMD GHOST is a fork choice rule that ensures the liveness of the chain by selecting the Greedy Heaviest-Observed Sub-Tree (GHOST), and considering only the validators most recent vote (Latest Message Driven, LMD). \nThe weight of a branch is calculated by summing the votes for its root block and those for all child branches, acknowledging that a vote for a block inherently supports all its ancestors. \n\n\n\n\nThis mechanism ensures that the branch with the greatest validator support is favored when making fork choices.\n\nOn the other hand, Casper FFG provides finality to the chain by modifying the fork choice rule. It ensures that once certain blocks are finalized, they are protected from being reverted, effectively pruning branches from the block tree. \nThis finality mechanism prevents deep chain reorganizations.\n\nThe Ethereum consensus protocol is organized around two key time intervals: the slot and the epoch. \nA slot lasts 12 seconds, and an epoch comprises 32 slots, totaling 6.4 minutes. \n\nValidators provide attestations once per epoch. Attesters are divided into 32 committees, and each one of them votes on one slot during an epoch.\nEach attestation contains votes for the head of the chain, which LMD GHOST uses, and votes for checkpoints, which are utilized by Casper FFG. \nThe weight of a vote corresponds to the validator's effective balance which contributes to the overall weight of a branch in the chain.\nMoreover, in each slot one validator is chosen to propose a block which includes updates to the beacon state, attestations, and the execution payload containing Ethereum user transactions. \n\n### Finality\nTo ensure consistency among validators voting at different times within an epoch, they are required to vote for a common checkpoint, specifically the first slot of the epoch.\nCasper FFG achieves finality through a two-round process. In the first round, each validator proposes what they believe is the best checkpoint and collects attestation from the network about other validators' views. \nIf 2/3 of the validators agree on the same checkpoint, it becomes justified. In the second round, validators share the justified checkpoint from the first round. If again 2/3 of the validators agree, the checkpoint is finalized.\n\n\n\n\nFinalization is achieved when confirmation is received from over 2/3 of the validators, indicating that they have observed commitments from more than 2/3 of the validators agreeing not to revert the checkpoint. \nA finalized checkpoint becomes irreversible unless at least 1/3 of the validators change their stance, which would lead to their stake being slashed. \n\nEquivocating (expressing two conflicting views) over blocks or attestations by a validator results in their stake being slashed.\n\n## Blobs (EIP-4844)\n[EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) introduces \"blob-carrying transactions,\" a new transaction type under [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) that allows for the inclusion of large data payloads, or blobs, within transactions.\nThese blobs are not directly accessible during EVM execution but can be verified through commitments.\nOn the consensus layer, blobs are referenced in the beacon block and propagated separately as \"sidecars,\" enabling forward compatibility with future data scaling methods like data-availability sampling (DAS).\nEIP-4844 also creates a new blob gas market, which operates similarly to [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559)'s fee mechanism.\nThe blob base fee adjusts dynamically based on the number of blobs included in each block relative to the target.\nIf a block contains more blobs than the target, the blob base fee increases, discouraging additional blob usage in subsequent blocks. Conversely, if a block contains fewer blobs than the target, the blob base fee decreases, encouraging more blob usage. If the number of blobs in a block matches the target, the blob base fee remains unchanged.\n\nThe initial blob parameters (target 3, max 6 blobs) were increased via [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691) in the Pectra upgrade to target 6 and max 9 blobs.\nFollowing the Fusaka upgrade which enabled PeerDAS (Peer Data Availability Sampling), Blob Parameter Only (BPO) forks allow incremental blob capacity increases without hard forks.\nBPO1 raised the target to 10 and max to 15 blobs per block.\nBPO2 raised the target to 14 and max to 21 blobs per block.\n\n## L2s Data Availability\n\nL2s can post data a Ethereum by submitting a type-3 transaction, which includes the standard transaction fields along with commitments (versioned hashes) to one or more blobs. Any unused space within a blob still incurs full costs, as gas is charged per blob.\nTo retrieve blobs, users have a limited window of 4096 epochs (~18 days) during which they can access them directly from the consensus client using the getBlobSidecars() API call. This API retrieves blobs associated with a specific block rather than a specific transaction. If blobs older than the pruning window need to be accessed, they can be retrieved from an indexer or archiver via API. \nFor transaction-specific blob retrieval, users must fetch all sidecar blobs from a block and identify the one corresponding to the desired versioned hash.
\n\nOptimistic rollups use blob data primarily during the process of submitting fraud proofs. \nWhen a dispute arises, the rollup must provide the underlying data from a blob as part of the calldata. \nThe blob verification precompile is used to verify that the provided blob data corresponds to the versioned hash that was initially committed in the transaction. \nThis ensures that the data being used for fraud-proof verification is accurate and consistent with what was originally submitted.
\n\nZK rollups, on the other hand, use the point evaluation precompile to verify that specific points in the polynomial (represented by the blob) match the expected values. \nThis method allows ZK rollups to prove that the data used in their validity proof is consistent with the blob data committed to Ethereum.",
"description": "## Consensus\nEthereum's consensus protocol combines two separate consensus protocols, LMD GHOST and Casper FFG.\nLMD GHOST is a fork choice rule that ensures the liveness of the chain by selecting the Greedy Heaviest-Observed Sub-Tree (GHOST), and considering only the validators most recent vote (Latest Message Driven, LMD). \nThe weight of a branch is calculated by summing the votes for its root block and those for all child branches, acknowledging that a vote for a block inherently supports all its ancestors. \n\nThis mechanism ensures that the branch with the greatest validator support is favored when making fork choices.\n\nOn the other hand, Casper FFG provides finality to the chain by modifying the fork choice rule. It ensures that once certain blocks are finalized, they are protected from being reverted, effectively pruning branches from the block tree. \nThis finality mechanism prevents deep chain reorganizations.\n\nThe Ethereum consensus protocol is organized around two key time intervals: the slot and the epoch. \nA slot lasts 12 seconds, and an epoch comprises 32 slots, totaling 6.4 minutes. \n\nValidators provide attestations once per epoch. Attesters are divided into 32 committees, and each one of them votes on one slot during an epoch.\nEach attestation contains votes for the head of the chain, which LMD GHOST uses, and votes for checkpoints, which are utilized by Casper FFG. \nThe weight of a vote corresponds to the validator's effective balance which contributes to the overall weight of a branch in the chain.\nMoreover, in each slot one validator is chosen to propose a block which includes updates to the beacon state, attestations, and the execution payload containing Ethereum user transactions. \n\n### Finality\nTo ensure consistency among validators voting at different times within an epoch, they are required to vote for a common checkpoint, specifically the first slot of the epoch.\nCasper FFG achieves finality through a two-round process. In the first round, each validator proposes what they believe is the best checkpoint and collects attestation from the network about other validators' views. \nIf 2/3 of the validators agree on the same checkpoint, it becomes justified. In the second round, validators share the justified checkpoint from the first round. If again 2/3 of the validators agree, the checkpoint is finalized.\n\nFinalization is achieved when confirmation is received from over 2/3 of the validators, indicating that they have observed commitments from more than 2/3 of the validators agreeing not to revert the checkpoint. \nA finalized checkpoint becomes irreversible unless at least 1/3 of the validators change their stance, which would lead to their stake being slashed. \n\nEquivocating (expressing two conflicting views) over blocks or attestations by a validator results in their stake being slashed.\n\n## Blobs (EIP-4844)\n[EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) introduces \"blob-carrying transactions,\" a new transaction type under [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) that allows for the inclusion of large data payloads, or blobs, within transactions.\nThese blobs are not directly accessible during EVM execution but can be verified through commitments.\nOn the consensus layer, blobs are referenced in the beacon block and propagated separately as \"sidecars,\" enabling forward compatibility with future data scaling methods like data-availability sampling (DAS).\nEIP-4844 also creates a new blob gas market, which operates similarly to [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559)'s fee mechanism.\nThe blob base fee adjusts dynamically based on the number of blobs included in each block relative to the target.\nIf a block contains more blobs than the target, the blob base fee increases, discouraging additional blob usage in subsequent blocks. Conversely, if a block contains fewer blobs than the target, the blob base fee decreases, encouraging more blob usage. If the number of blobs in a block matches the target, the blob base fee remains unchanged.\n\nThe initial blob parameters (target 3, max 6 blobs) were increased via [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691) in the Pectra upgrade to target 6 and max 9 blobs.\nFollowing the Fusaka upgrade which enabled PeerDAS (Peer Data Availability Sampling), Blob Parameter Only (BPO) forks allow incremental blob capacity increases without hard forks.\nBPO1 raised the target to 10 and max to 15 blobs per block.\nBPO2 raised the target to 14 and max to 21 blobs per block.\n\n## L2s Data Availability\n\nL2s can post data a Ethereum by submitting a type-3 transaction, which includes the standard transaction fields along with commitments (versioned hashes) to one or more blobs. Any unused space within a blob still incurs full costs, as gas is charged per blob.\nTo retrieve blobs, users have a limited window of 4096 epochs (~18 days) during which they can access them directly from the consensus client using the getBlobSidecars() API call. This API retrieves blobs associated with a specific block rather than a specific transaction. If blobs older than the pruning window need to be accessed, they can be retrieved from an indexer or archiver via API. \nFor transaction-specific blob retrieval, users must fetch all sidecar blobs from a block and identify the one corresponding to the desired versioned hash.
\n\nOptimistic rollups use blob data primarily during the process of submitting fraud proofs. \nWhen a dispute arises, the rollup must provide the underlying data from a blob as part of the calldata. \nThe blob verification precompile is used to verify that the provided blob data corresponds to the versioned hash that was initially committed in the transaction. \nThis ensures that the data being used for fraud-proof verification is accurate and consistent with what was originally submitted.
\n\nZK rollups, on the other hand, use the point evaluation precompile to verify that specific points in the polynomial (represented by the blob) match the expected values. \nThis method allows ZK rollups to prove that the data used in their validity proof is consistent with the blob data committed to Ethereum.",
"references": [
{
"title": "EIP-4844",
"url": "https://eips.ethereum.org/EIPS/eip-4844"
},
{
"title": "Ethereum Technical Handbook",
"url": "https://eth2book.info/latest/"
}
]
},
"throughput": [
{
"size": 786432,
"target": 393216,
"frequency": 12,
"sinceTimestamp": 1710288000
},
{
"size": 1179648,
"target": 786432,
"frequency": 12,
"sinceTimestamp": 1746612300
},
{
"size": 1966080,
"target": 1310720,
"frequency": 12,
"sinceTimestamp": 1765290071
},
{
"size": 2752512,
"target": 1835008,
"frequency": 12,
"sinceTimestamp": 1767747671
}
],
"type": "Public Blockchain",
"usedWithoutBridgeIn": [],
"validators": {
"type": "dynamic"
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Gelato",
"type": "RaaS",
"name": "Gelato",
"description": "This project was deployed via the rollup-as-a-service provider Gelato",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Gelato"
}
}
],
"description": "Epic chain, previously Ethernity, is a low-cost Layer 2 solution on the Superchain, designed to bring global entertainment franchises onto the blockchain.",
"links": {
"websites": [
"https://epicchain.io/"
],
"bridges": [
"https://swap.epicchain.io/",
"https://bridge.gelato.network/bridge/ethernity-mainnet"
],
"explorers": [
"https://explorer.epicchain.io/"
],
"documentation": [],
"repositories": [
"https://github.com/epiconchain"
],
"socialMedia": [
"https://x.com/EpicOnChain",
"https://t.me/epiconchain",
"https://instagram.com/epiconchain/",
"https://facebook.com/EpicOnChain",
"https://youtube.com/@EpicOnChain",
"https://reddit.com/r/EpicOnChain/"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "FacetFork",
"type": "Fork",
"name": "Fork of Facet",
"description": "The project is a fork of Facet",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Facet"
}
},
{
"id": "BasedSequencing",
"type": "Other",
"name": "Based Sequencing",
"description": "This project is ordering its transactions through Ethereum block proposers",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Based Sequencing"
}
}
],
"description": "Ethscriptions is a based rollup that provides cryptographic state and EVM compatibility for ethscriptions. It uses a derivation pipeline to convert L1 ethscription activity into canonical L2 blocks.",
"links": {
"websites": [
"https://ethscriptions.com/"
],
"bridges": [],
"documentation": [
"https://docs.ethscriptions.com/"
],
"explorers": [
"https://explorer.ethscriptions.com/"
],
"repositories": [
"https://github.com/ethscriptions-protocol/ethscriptions-node",
"https://github.com/ethscriptions-protocol/ethscriptions-geth",
"https://github.com/0xFacet/ethscriptions-zk-fault-proofs"
],
"socialMedia": [
"https://x.com/ethscriptions"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "BasedSequencing",
"type": "Other",
"name": "Based Sequencing",
"description": "This project is ordering its transactions through Ethereum block proposers",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Based Sequencing"
}
}
],
"description": "Facet is a based rollup built on OP-Succinct. It uses FCT as its native gas token, which is mintable by burning ETH on L1.",
"links": {
"websites": [
"https://facet.org/"
],
"bridges": [
"https://bluebird-bridge.facet.org/",
"https://facetswap.com/bridge"
],
"documentation": [
"https://docs.facet.org/"
],
"explorers": [
"https://explorer.facet.org/"
],
"repositories": [
"https://github.com/0xFacet"
],
"socialMedia": [
"https://x.com/0xFacet",
"https://discord.com/invite/facet"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
}
],
"description": "An onchain order book DEX for spot and perpetuals, built on CDK OP Stack and natively integrated with Agglayer for unified liquidity.",
"links": {
"websites": [
"https://forknet.io/"
],
"bridges": [
"https://bridge.forknet.io/"
],
"explorers": [
"https://forkscan.org"
],
"socialMedia": [
"https://x.com/forknet_io"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Form is an Optimium utilizing the OP Stack. The Form L2 is focused on bringing mass adoption and interoperability to the SocialFi category.",
"links": {
"websites": [
"https://form.network"
],
"bridges": [
"https://bridge.form.network"
],
"documentation": [
"https://docs.form.network"
],
"explorers": [
"https://explorer.form.network"
],
"socialMedia": [
"https://x.com/0xform",
"https://discord.com/invite/formnetwork",
"https://t.me/formnetwork",
"https://mirror.xyz/formnetwork.eth"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 2943925,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4SpR3bjJQT0="
}
]
null
+2 -13
+1 -5
{
"badges": [
{
"id": "FuelVM",
"type": "VM",
"name": "FuelVM",
"description": "This project uses the Fuel Virtual Machine to run its smart contracts and supports the Sway programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "FuelVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
}
],
"description": "Fuel Ignition is a high-performance Ethereum L2 built on FuelVM and the Sway language.",
"links": {
"websites": [
"https://fuel.network/"
],
"bridges": [
"https://app.fuel.network/ecosystem",
"https://app.fuel.network/bridge"
],
"documentation": [
"https://docs.fuel.network/"
],
"explorers": [
"https://app.fuel.network/"
],
"repositories": [
"https://github.com/FuelLabs/"
],
"socialMedia": [
"https://twitter.com/fuel_network",
"https://discord.gg/fuel-network",
"https://forum.fuel.network/",
"https://t.me/fuelcommunity",
"https://youtube.com/channel/UCam2Sj3SvFSAIfDbP-4jWZQ"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+0 -6
[
{
"type": "ethereum",
"daLayer": "ethereum",
"sinceBlock": 20915271,
"inbox": "0xEA0337EFC12e98AB118948dA570C07691E8E4b37",
"sequencers": [
"0xEA0337EFC12e98AB118948dA570C07691E8E4b37"
],
"untilBlock": 22837254
},
{
"type": "eigen-da",
"customerId": "0xea0337efc12e98ab118948da570c07691e8e4b37",
"daLayer": "eigenda",
"sinceTimestamp": 1751526000
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
}
],
"description": "Fuel v1 is the first Optimistic Rollup live on Ethereum, supporting payments.",
"links": {
"websites": [
"https://github.com/FuelLabs/fuel-v1-contracts/tree/master"
],
"documentation": [
"https://github.com/FuelLabs/docs/tree/c0266db9cfdbf420cccf46eccaa937bab96a2bd0/src/v1.0.0"
],
"explorers": [
"https://mainnet.fuel.sh/network/"
],
"repositories": [
"https://github.com/FuelLabs/fuel-core",
"https://github.com/FuelLabs/fuels-rs",
"https://github.com/FuelLabs/fuels-ts",
"https://github.com/FuelLabs/fuel-v1-contracts"
],
"socialMedia": [
"https://discord.gg/xfpK4Pe",
"https://twitter.com/fuellabs_",
"https://linkedin.com/company/fuel-labs",
"https://youtube.com/@fuelnetwork",
"https://hey.xyz/u/fuelnetwork"
]
}
}
+1 -8
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 5169794,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAABH1QsY4w6WU="
}
]
null
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Base",
"type": "L3ParentChain",
"name": "Built on top of Base",
"description": "The project has Base as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Base"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Ham Chain is an OP stack Optimium L3 on Base enabling Tips and SocialFi on the Farcaster social network.",
"links": {
"websites": [
"https://ham.fun/"
],
"bridges": [
"https://ham.bridge.caldera.xyz/",
"https://ham.fun/bridge",
"https://relay.link/ham"
],
"documentation": [
"https://docs.ham.fun/",
"https://stack.optimism.io/",
"https://specs.optimism.io/",
"https://ham.fun/developers"
],
"explorers": [
"https://explorer.ham.fun/"
],
"socialMedia": [
"https://x.com/HamOnWarpcast",
"https://warpcast.com/~/channel/lp",
"https://t.me/+B93fbhulpb5iYWYx"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4SpeLVvrm6k="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "HashKey Chain is a regulatory-compliant, institutional-grade OP stack Layer 2 solution bridging traditional finance and Web3. It is powered by Hong Kong's premier virtual asset ecosystem.",
"links": {
"websites": [
"https://hsk.xyz/"
],
"bridges": [
"https://bridge.hsk.xyz/"
],
"documentation": [
"https://docs.hsk.xyz/"
],
"explorers": [
"https://explorer.hsk.xyz/",
"https://hashkey.blockscout.com"
],
"repositories": [
"https://github.com/HashKeyChain"
],
"socialMedia": [
"https://x.com/HashKeyHSK",
"https://t.me/hashkeyhsk",
"https://discord.com/invite/ujaF7aKAEk"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Hemi is an OP Stack based L2 on Ethereum focusing on interoperability with the Bitcoin blockchain. In addition to the EVM, Hemi uses Hemi Virtual Machine (hVM), an EVM upgraded to have awareness of the Bitcoin state.",
"links": {
"websites": [
"https://hemi.xyz"
],
"bridges": [
"https://app.hemi.xyz"
],
"documentation": [
"https://docs.hemi.xyz"
],
"explorers": [
"https://explorer.hemi.xyz"
],
"repositories": [
"https://github.com/hemilabs"
],
"socialMedia": [
"https://twitter.com/hemi_xyz",
"https://discord.gg/hemixyz",
"https://linkedin.com/company/hemi-labs",
"https://youtube.com/@HemiLabs",
"https://t.me/hemi_news"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "CartesiVM",
"type": "VM",
"name": "CartesiVM",
"description": "This project uses the Cartesi Machine to run its smart contracts and supports any programming language that can be ported to RISC-V architecture",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CartesiVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "Cartesi",
"type": "Stack",
"name": "Built on the Cartesi stack",
"description": "The project is built on the Cartesi stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Cartesi Rollups"
}
}
],
"description": "Honeypot is an application-specific rollup designed to challenge the security of Cartesi Rollups. It provides a gamified battlefield to incentivize bug hunters to hack the application to obtain the funds locked in the rollup contract.",
"links": {
"websites": [
"https://cartesi.io/"
],
"bridges": [
"https://explorer.cartesi.io/stake"
],
"documentation": [
"https://docs.cartesi.io/cartesi-rollups/"
],
"explorers": [
"https://cartesiscan.io/",
"https://explorer.cartesi.io/"
],
"repositories": [
"https://github.com/cartesi/honeypot"
],
"socialMedia": [
"https://twitter.com/cartesiproject",
"https://discord.gg/G2tCH5KkcM",
"https://cartesi.io/blog/",
"https://reddit.com/r/cartesi/",
"https://youtube.com/@cartesiproject",
"https://t.me/cartesiproject",
"https://linkedin.com/company/cartesiproject",
"https://instagram.com/cartesiproject/",
"https://medium.com/cartesi"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Hypr is a blockchain focused on scaling ZK gaming.",
"links": {
"websites": [
"https://hypr.network/"
],
"bridges": [
"https://bridge.hypr.network/"
],
"documentation": [
"https://docs.hypr.network"
],
"explorers": [
"https://explorer.hypr.network/"
],
"socialMedia": [
"https://twitter.com/hypr_network",
"https://t.me/hyprnetwork"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAABqVjuNvNnoE="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Gelato",
"type": "RaaS",
"name": "Gelato",
"description": "This project was deployed via the rollup-as-a-service provider Gelato",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Gelato"
}
}
],
"description": "Ink is an Optimistic Rollup built with the OP Stack by Kraken exchange.",
"links": {
"websites": [
"https://inkonchain.com"
],
"documentation": [
"https://docs.inkonchain.com"
],
"explorers": [
"https://explorer.inkonchain.com",
"https://okx.com/en-au/web3/explorer/inkchain"
],
"bridges": [
"https://inkonchain.com/bridge"
],
"repositories": [
"https://github.com/inkonchain"
],
"socialMedia": [
"https://x.com/inkonchain",
"https://warpcast.com/inkonchain",
"https://t.me/inkonchain"
],
"other": [
"https://rollup.codes/ink",
"https://growthepie.com/chains/ink"
]
}
}
+3 -16
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "K2 is a general-purpose L2, which rebranded to the OpenGDP Network to soon become an asset tokenization-focused L1.",
"links": {
"websites": [
"https://karak.network/"
],
"bridges": [
"https://k2bridge.karak.network/"
],
"documentation": [
"https://docs.opengdp.network/get-started/introduction/start-here"
],
"explorers": [
"https://explorer.karak.network/"
],
"socialMedia": [
"https://twitter.com/Karak_Network",
"https://t.me/Karak_Network",
"https://discord.com/invite/opengdp"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -9
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJBA=",
"untilBlock": 14058896
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Katana is a Layer 2 specializing on DeFi. Its unique architecture combines an OP stack base with Agglayer shared bridge interoperability and OP-Succinct SP1 validity proofs.",
"links": {
"websites": [
"https://katana.network/"
],
"bridges": [
"https://app.katana.network/",
"https://bridge.katana.network/"
],
"explorers": [
"https://katanascan.com"
],
"repositories": [
"https://github.com/agglayer"
],
"documentation": [
"https://docs.katana.network/",
"https://docs.agglayer.dev/"
],
"socialMedia": [
"https://x.com/katana",
"https://discord.com/invite/KatanaNetwork",
"https://reddit.com/r/katana/"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Kinto is an Orbit stack L2 with account abstraction and KYC enabled for all users, supporting both modern financial institutions and decentralized protocols.",
"links": {
"websites": [
"https://kinto.xyz"
],
"bridges": [
"https://engen.kinto.xyz"
],
"documentation": [
"https://docs.kinto.xyz"
],
"explorers": [
"https://explorer.kinto.xyz/",
"https://kintoscan.io/"
],
"repositories": [
"https://github.com/kintoxyz"
],
"socialMedia": [
"https://twitter.com/kintoxyz",
"https://discord.com/invite/kinto",
"https://mirror.xyz/kintoxyz.eth",
"https://medium.com/mamori-finance"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
}
],
"description": "Kroma aims to develop a universal ZK Rollup based on the Optimism Bedrock architecture. Currently, Kroma operates as an Optimistic Rollup with ZK fault proofs, utilizing a zkEVM based on Scroll and a zkVM based on SP1.",
"links": {
"websites": [
"https://kroma.network/"
],
"bridges": [
"https://kroma.network/bridge/"
],
"documentation": [
"https://docs.kroma.network/",
"https://specs.kroma.network/"
],
"explorers": [
"https://kromascan.com/",
"https://blockscout.kroma.network/"
],
"repositories": [
"https://github.com/kroma-network/"
],
"socialMedia": [
"https://discord.com/invite/kroma-network",
"https://twitter.com/kroma_network",
"https://medium.com/@kroma-network"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
}
],
"description": "LaChain by Ripio is a general purpose ZK rollup designed for the Latin American ecosystem. Scalable, secure, and part of the Elastic Chain by ZKsync.",
"links": {
"websites": [
"https://lachain.network"
],
"bridges": [
"https://bridge.zk.lachain.network/"
],
"documentation": [
"https://lachain.gitbook.io/lachain-docs"
],
"explorers": [
"https://explorer.zk.lachain.network"
],
"socialMedia": [
"https://x.com/LaChain_Network",
"https://discord.com/invite/pxGXnApgQ7"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Lambda Chain is an OP Stack Rollup on Ethereum, focusing on long-term data storage and availability.",
"links": {
"websites": [
"https://lambda.im/"
],
"bridges": [
"https://portal.lambda.im/bridge/"
],
"documentation": [
"https://docs.lambda.im/",
"https://docs.optimism.io/"
],
"explorers": [
"https://scan.lambda.im/"
],
"repositories": [
"https://github.com/LambdaIM"
],
"socialMedia": [
"https://twitter.com/Lambdaim",
"https://discord.gg/lambdastorage",
"https://t.me/HelloLambda"
]
}
}
+205 -206
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "AvailVector",
"type": "DA",
"name": "Avail with Vector",
"description": "This project utilizes Avail and has Vector enabled, facilitating the bridging of data availability commitments between Avail and Ethereum.",
"action": {
"type": "publicDaHighlight",
"slug": "avail"
}
"description": "This project utilizes Avail and has Vector enabled, facilitating the bridging of data availability commitments between Avail and Ethereum."
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
}
],
"description": "Lens Network is the main social networking hub for the user base of Lens Protocol, built on a Validium using ZKsync's ZK Stack technology.",
"links": {
"websites": [
"https://lens.xyz"
],
"bridges": [
"https://app.across.to/bridge?destinationChainId=232",
"https://onboarding.lens.xyz/explore"
],
"documentation": [
"https://lens.xyz/docs"
],
"explorers": [
"https://explorer.lens.xyz/",
"https://lenscan.io/"
],
"repositories": [
"https://github.com/lens-protocol"
],
"socialMedia": [
"https://hey.xyz/u/lens",
"https://x.com/LC",
"https://discord.com/invite/lensprotocol"
]
}
}
+2 -4
[
{
"layer": {
"value": "Avail",
"sentiment": "warning",
"description": "The data is posted to Avail.",
"projectId": "avail"
"description": "The data is posted to Avail."
},
"bridge": {
"value": "Vector",
"sentiment": "warning",
"description": "The Vector DA bridge is used to attest to the data availability on Avail.",
"projectId": "vector"
"description": "The Vector DA bridge is used to attest to the data availability on Avail."
},
"mode": {
"value": "State diffs",
"secondLine": "Compressed"
}
}
]
+1 -10
[
{
"type": "avail",
"daLayer": "avail",
"sinceBlock": 1180000,
"appIds": [
"26"
]
}
]
null
+54 -54
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * ValidatorTimelock [via: ProtocolUpgradeHandler → ProxyAdmin]\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1USDCBridge [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * set the pending admin of this contract and the ServerNotifier contract address (ZK cluster Admin role) [via: EraChainAdminProxy]",
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * set the pending admin of this contract and the ServerNotifier contract address (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"address": "eth:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "Lens Multisig",
"name": "Lens Multisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: LensZkEvmAdmin]",
"accounts": [
{
"address": "eth:0x4968A0E4b025eD7d095753E54058377969b41abC",
"type": "Contract",
"isVerified": true,
"name": "0x4968…1abC",
"url": "https://etherscan.io/address/0x4968A0E4b025eD7d095753E54058377969b41abC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5",
"type": "EOA",
"isVerified": true,
"name": "0x7CBb…acf5",
"url": "https://etherscan.io/address/0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5"
},
{
"address": "eth:0x8f356fEC1793c4AEbd817A344C77310081Fa6917",
"type": "EOA",
"isVerified": true,
"name": "0x8f35…6917",
"url": "https://etherscan.io/address/0x8f356fEC1793c4AEbd817A344C77310081Fa6917"
},
{
"address": "eth:0xc5342CD71f67DAc44Bcfbc37df35700b5e4691e6",
"type": "EOA",
"isVerified": true,
"name": "0xc534…91e6",
"url": "https://etherscan.io/address/0xc5342CD71f67DAc44Bcfbc37df35700b5e4691e6"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/6 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x64FEca7976955a512aB9159f91E7dD1D55425293",
"type": "EOA",
"isVerified": true,
"name": "0x64FE…5293",
"url": "https://etherscan.io/address/0x64FEca7976955a512aB9159f91E7dD1D55425293"
},
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x9971903268BAED330DA9DD533D97924c725AB593",
"type": "EOA",
"isVerified": true,
"name": "0x9971…B593",
"url": "https://etherscan.io/address/0x9971903268BAED330DA9DD533D97924c725AB593",
"displayName": "EOA 1"
},
{
"address": "eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc",
"type": "EOA",
"isVerified": true,
"name": "0xBf02…36Bc",
"url": "https://etherscan.io/address/0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades [via: ProtocolTimelockController]\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+133 -133
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xc29d04A93F893700015138E3E334eB828dAC3cef",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740009695,
"transactionHash": "0x303a3be5647b6474268d2c9bac62d2a4852abe503ad8eb2c71fc85c63881cfbd",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1740009695,
"transactionHash": "0x303a3be5647b6474268d2c9bac62d2a4852abe503ad8eb2c71fc85c63881cfbd",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1742293595,
"transactionHash": "0xc0985a7dad204c5f7efd6ac87d9877049570eee2fd4f9100f3258b6174cae43e",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1742928599,
"transactionHash": "0x4b3cb9b8f9a1aea99e804b16f63ec89011315bde09b37ea60f77b2d1d1e2b572",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747255211,
"transactionHash": "0x37a2cb789916112d5c2824569ee4f44d4078b9ab00b55017eebf83124309b54c",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751481779,
"transactionHash": "0x8d2c504c58a659511bef547888186da42708e16923743741cd11acf4c6d908b3",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755181427,
"transactionHash": "0xe1e89cb3eb4b704457d700ce847e9f682c50ef505c08b5ca0873a833e9d4ff2a",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1763413091,
"transactionHash": "0xd0833923639a4693c45fe165c6d30094dbfbc7c0b9e77b89981696519eb579a9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769715095,
"transactionHash": "0x54184d1aa0137620015290fe57ef7376cc15718acb77989eec3b7f4d0e0d14e5",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1780515515,
"transactionHash": "0x8f7d04ce7012bfb248543385dc44825a6d21c4752f98bff93eba04da47368d4e",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786263395,
"transactionHash": "0x49096e35ef0401c7d2d263edf1e9441da8f0805ff3c1fa2677b99b90363aed86",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786273499,
"transactionHash": "0xd00f75efe10c54a7f0df37b44b22205a3e3545b334856fe4bb3ba4f51687279c",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786910003,
"transactionHash": "0xd346a85316db66f6ed0cde76b5a129fb23a52351118a15822e158bf59f693f34",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: LensZkEvmAdmin; ultimately Lens Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc29d04A93F893700015138E3E334eB828dAC3cef#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "AvailL1DAValidator",
"isVerified": true,
"address": "eth:0x8f50d93B9955B285f787043B30B5F51D09bE0120",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies that the validiums data was made available on Avail by querying the AvailBridgeV1 on Ethereum for a merkle proof of inclusion.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8f50d93B9955B285f787043B30B5F51D09bE0120#code"
},
{
"name": "BridgeHub",
"isVerified": true,
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520639,
"transactionHash": "0xdbb03a14ea223de3db4ac0916e78123bd0a1dde68e98952326d8382d29ac4d61",
"implementations": [
"eth:0x12f893689f9603991a8c22C249FFd0509Be95661"
]
},
{
"timestamp": 1725887363,
"transactionHash": "0x21aec24a9df97ce4886d699314be627b0818da4d1987349421fb3df102c43f2b",
"implementations": [
"eth:0x509dA1BE24432F8804C4A9FF4a3c3f80284CDd13"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x0029e562c0b54C0b88cB22adF4346DbfEC87400c"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xb720523EC3c615b069453bF4B0584CEbF034706f"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcdd748d4A80CE6831080f1dA2CA9084CDa87Cc87"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x08A98B1048Fb61E9Fff7d7d98305aC6286Ae9F32"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
}
],
"description": "The main registry (hub) for all the contracts in the ZK stack cluster and central entrypoint for bridge transactions. Stores important mappings like from chainId to diamond address, from chainId to parent CTM, from chainId to base token etc. A clone of Bridgehub is also deployed on each L2 chain, but this clone is only used on settlement layers.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x303a465B659cBB0ab36eE643eA362c509EEb5213#code"
},
{
"name": "MessageRoot",
"isVerified": true,
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109035,
"transactionHash": "0xc47e24e8cc6c7a493bbb1a46b74f1ff113fad2e35d7596aa688df5bf0402fc65",
"implementations": [
"eth:0x19347Fb8eD3E8e35eb4a01c8B18Bd330194Cf0ad"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x382fb241396eA915108e7B7Ce1adE1322bA73aeE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
}
],
"description": "Aggregates remote bridge message roots from all ZK stack chains. To be used with the Gateway when deployed.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD#code"
},
{
"name": "CTMDeploymentTracker",
"isVerified": true,
"address": "eth:0x6078F6B379f103de1Aa912dc46bb8Df0c8809860",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109203,
"transactionHash": "0x8b5a21b3473a638022e84097a99c4668bb0a454686b737e87957729c4822741b",
"implementations": [
"eth:0x1E405E5cdF127Dc98Eb490AB0e97345f892Ff7E1"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
}
],
"description": "Asset deployment tracker where the 'asset' is a ChainTypeManager. The registering of asset IDs for ChainTypeManagers is necessary to be able to migrate them to a given settlement layer, for example the Gateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6078F6B379f103de1Aa912dc46bb8Df0c8809860#code"
},
{
"name": "RollupL1DAValidator",
"isVerified": true,
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies the data availability of ethereum calldata and blobs. Can be used by ZK stack rollups as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72213dfe8CA61B0A782970dCFebFb877778f9119#code"
},
{
"name": "L1AssetRouter",
"isVerified": true,
"address": "eth:0x8829AD80E425C646DAB305381ff105169FeEcE56",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109071,
"transactionHash": "0x2c945c00f7a9f08b1a0bc749a08d76ca4cd5ee6f8890011ab43898e9fa1fcdf2",
"implementations": [
"eth:0x20E17D0280DeaBb78f7c193E3Ef05F62adC0936E"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcaD49896F3d54d9A93eDdBFd370c8A4a1b239315"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x0cb7f11BA981E13598D70625dF8f4597d59f2F4F"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
}
],
"description": "Canonical central asset router for all ZK stack chains. Routes deposits and withdrawals to the respective asset handlers (like the L1NativeTokenVault); does not escrow funds itself.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8829AD80E425C646DAB305381ff105169FeEcE56#code"
},
{
"name": "ChainTypeManager",
"isVerified": true,
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520663,
"transactionHash": "0x514bbf46d227eee8567825bf5c8ee1855aa8a1916f7fee7b191e2e3d5ecba849",
"implementations": [
"eth:0x8279B7E48fA074f966385d87AEf29Bd031e54fD5"
]
},
{
"timestamp": 1722934619,
"transactionHash": "0xc1e73b06359759201b76ab7654e0bd49011f33c0230dfc24423985fbf36ea817",
"implementations": [
"eth:0xed1Dc7F0Be2B19cb02a2476150C8ea24A37c5274"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xb39B175a5E0945F2FB6A7F31764c0e31D9cF5b75"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xA3bCcAEe38cb0273A979118a0DE483E47D50F6Cb"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x6D598c77AF57Bfa17201483400615c61819dD45A"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x345314c7E4af84B763d98d23f772622E23AfB5CE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
}
],
"description": "Defines L2 diamond contract versions, creation and upgrade data and the proof system for all ZK stack chains connected to it. ZK chains are children of this central contract and can only upgrade to versions that were previously registered here. The current protocol version is 0,30,1.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C#code"
},
{
"name": "L1Nullifier",
"isVerified": true,
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717521479,
"transactionHash": "0xce3d72f23297a281cb58502dcc6a6c029489316a2faf9c4ef83141b1b254017c",
"implementations": [
"eth:0xCba1aF8f0bB223b2544F8eB8f69d1c7960f788dB"
]
},
{
"timestamp": 1724658671,
"transactionHash": "0xaec33529b74f8f9d56d7aa568c6358be299228a85e49ea85cb106eca5af7367c",
"implementations": [
"eth:0xb56A8225A745756DD215faf22E4796f373561AcD"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xF5A14DCdde1143443f06033200D345c2a2828A99"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xda2866AF0e170d0867a3F3bB52Db10D6E09Df78A"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x3B4FD84B27fE7B9247d5B8C6d1A29B2889C81518"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xC6f08EFb7BA78f40d00F41aFAC00211d59eb9431"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
}
],
"description": "Contract responsible for bookkeeping L1 bridging transactions. Used to finalize withdrawals and reclaim failed deposits. Does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB#code"
},
{
"name": "ProtocolUpgradeHandler",
"isVerified": true,
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e"
],
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1738855967,
"transactionHash": "0xa3d1fa107e6dc4ce67d92a5af74aa7dc34602c2a1d46727790819c1f974bed95",
"implementations": [
"eth:0xD5e9D3d483a93d03D8d604CC79dC9f2F4B78C604"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x0A67f0Fd2f7523057039F14969Fe23a5f620f19A"
]
},
{
"timestamp": 1760519471,
"transactionHash": "0x2309df20dd1cb3f3a3289e97517d10d399989292f966578240ec387246a13e61",
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
}
],
"description": "The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2 and emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **emergencyUpgradeBoard**: EmergencyUpgradeBoard\n * **guardians**: Guardians\n * **l2_protocol_governor**: ProtocolTimelockController; ultimately ZkProtocolGovernor\n * **securityCouncil**: SecurityCouncil",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3#code"
},
{
"name": "RollupDAManager",
"isVerified": true,
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple registry for allowed DA address pairs for the 'rollup' data availability mode (can be permanently enforced with isPermanentRollup=true). Rollup DA address pairs (especially the L1 part) usually point to contracts that validate if data was made available on Ethereum.\n* Roles:\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "LensZkEvmAdmin",
"isVerified": true,
"address": "eth:0x6bd8d33551077Ed281Cb047835a2aE4033eEc433",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Lens Multisig act through it.\n* Roles:\n * **owner**: Lens Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6bd8d33551077Ed281Cb047835a2aE4033eEc433#code"
},
{
"name": "EraChainAdminProxy",
"isVerified": true,
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Matter Labs Multisig act through it.\n* Roles:\n * **owner**: Matter Labs Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2cf3bD6a9056b39999F3883955E183F655345063#code"
},
{
"name": "L1USDCBridge",
"isVerified": true,
"address": "eth:0xf553E6D903AA43420ED7e3bc2313bE9286A8F987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1734114251,
"transactionHash": "0x5428361f75c29b1f0e9959bd21fef8fb179b22f009f314e6403a305770e8735f",
"implementations": [
"eth:0x86dF12f51E3531689e0615bb2F739ddf01337715"
]
},
{
"timestamp": 1737484199,
"transactionHash": "0x152dc623c52d7f2b058ec5b4dfb67f5e0fee14c04dc9c0db4ae02ed2dc4ab998",
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 3\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code"
},
{
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to EraVerifierFflonk or EraVerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EraChainAdminProxy",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B#code"
},
{
"name": "L1NativeTokenVault",
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Canonical central asset escrow for all ZK stack chains.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1#code"
},
{
"name": "ChainAssetHandler",
"isVerified": true,
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758286391,
"transactionHash": "0x960c2e5bb98f4b9a07087b3b50fdc4681bbea1467aab3748dbb0050311f54ede",
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
}
],
"description": "Specialized contract for managing chain assets, i.e. chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDd5CB8B9037357B4cD37391A073798f8aaB61076#code"
},
{
"name": "ServerNotifier",
"isVerified": true,
"address": "eth:0xfca808A744735D9919EEBe4660B8Fd897456Ce31",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B"
],
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747199375,
"transactionHash": "0xbeb7447fc88b154a4730b01cb1a75b7093095056e88818c3659253111d06e66f",
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
},
{
"timestamp": 1784714999,
"transactionHash": "0xdbd5285f559e4ae32457b8425f67e1dfe76575c40999499e0b55d5cf985b85d8",
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
}
],
"description": "A simple contract that can be called by the ChainAdmin to emit notifications about chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Matter Labs Multisig",
"upgradableBy": [
{
"name": "Matter Labs Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfca808A744735D9919EEBe4660B8Fd897456Ce31#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 3\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"zksync2": [
{
"name": "ProtocolTimelockController",
"isVerified": true,
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 0s.\n* Roles:\n * **canceller**: ZkProtocolGovernor\n * **executor**: ZkProtocolGovernor\n * **proposer**: ZkProtocolGovernor\n * **timelockAdmin**: ProtocolTimelockController; ultimately ZkProtocolGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714#code"
},
{
"name": "ZkToken",
"isVerified": true,
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC"
],
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
},
"chain": "zksync2",
"pastUpgrades": [
{
"timestamp": 1716317326,
"transactionHash": "0x5bfce59c2ad18019ef20d58a3f1ec496cdc85537fc9564c932f7dcbbb2a15b56",
"implementations": [
"zksync:0x3931e73ebA79a7C898D3b0e02c7C62bA4F11cB14"
]
},
{
"timestamp": 1718011538,
"transactionHash": "0xa6bc022ba0f60ac6f10a6efb84b261e9ca1b327a611bdd7a1f4d37cc9b027a3c",
"implementations": [
"zksync:0x01a6715d3560241E09E865a46122bf347A576c09"
]
},
{
"timestamp": 1765195612,
"transactionHash": "0x749b9e6eed328052d679eb86639be807b4acf811ac8786f730b45258ba41ce6f",
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
}
],
"description": "The ZK token contract on ZKsync Era. Mintable through access control roles. Used for voting in the ZK stack governance system.\n* Roles:\n * **admin**: ZkTokenProxyAdmin; ultimately ProtocolUpgradeHandler_l2Alias\n * **defaultAdmin**: ProtocolUpgradeHandler_l2Alias\n * **minterAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"upgradableBy": [
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E#code"
},
{
"name": "ZkTokenProxyAdmin",
"isVerified": true,
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler_l2Alias",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xdB1E46B448e68a5E35CB693a99D59f784aD115CC#code"
},
{
"name": "ZkTokenTimelockController",
"isVerified": true,
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkTokenGovernor\n * **executor**: ZkTokenGovernor\n * **proposer**: ZkTokenGovernor\n * **timelockAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d#code"
}
]
},
"escrows": [
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": [
"LGHO",
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Shared bridge for depositing tokens to Lens and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x8116A750e2091B2bA0D94223e7b20a6A65A279f4",
"l2EtherAddress": "0xE5ecd226b3032910CEaa43ba92EE8232f8237553",
"tokensToAssignFromL1": [
"LGHO"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.29.2",
"description": "EraVM program that proves the correct execution of a batch of ZK Stack L2 blocks.",
"proverSystemProject": "boojum",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.29.2/system-contracts/bootloader/bootloader.yul",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.29.2`. Commit hash should be `dbfc9b5a40d68007dc405a9b669230104c1646e4`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 4d 3h - 8d 3h delay on code upgrades unless upgrade is initiated by the EmergencyUpgradeBoard in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+14 -0
[
{
"id": "c57de3e2",
"date": "Mon, 05 Oct 2026 10:54:18 GMT",
"timestamp": 1790944827,
"description": "Vector contracts are now discovered here instead of referenced from the vector project, which was removed with the rest of the alt-DA projects.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Avail Multisig 2 (eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (eth:0x45828180bbE489350D621d002968A0585406d487) [global/TimelockController]\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 1 (eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "9c72ded5",
"date": "Fri, 02 Oct 2026 12:42:24 GMT",
"timestamp": 1790944827,
"description": "Executed this proposal: https://www.tally.xyz/gov/zksync/proposal/49883493212277767948924829453899549013679463473253620701602979414799679547598?govId=eip155%3A324%3A0x76705327e682F2d96943280D99464Ab61219e34f. Now each chain admin can increase the execution delay of its chain (`increaseChainExecutionDelay`), the owner can set it freely (`setChainExecutionDelay`). The effective delay for Lens is tracked in `executionDelayLens` (still 3h).\n\nAlso adds a new `UPGRADER_ROLE` that can call `upgradeChainFromVersion()` through the VTL (forwarded to the diamond). Currently nobody holds the role for Lens yet (tracked in `upgraderVTL`).",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776) [shared-zk-stack/ValidatorTimelock_v31] {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\n template:\n- \"shared-zk-stack/ValidatorTimelock_post29\"\n+ \"shared-zk-stack/ValidatorTimelock_v31\"\n sourceHashes.1:\n- \"0x5afea1019ac418e639ce9df65b9653bf0ca88ed81fb0abe0447e87328e39f10c\"\n+ \"0x51d6000b0e4437a2b99d13d332658fffb3da867cd56b05cbcb4bf4f954ff12ff\"\n description:\n- \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\"\n+ \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\"\n values.$implementation:\n- \"eth:0x6086051f93412F550C0820e76f0fbE85F64C7ef8\"\n+ \"eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35\"\n values.$pastUpgrades.1:\n+ [\"2026-10-01T12:28:47.000Z\",\"0xdc4278c8b23d99f974a206dcaa1c1e20272c49095fa31eac842210ae97b435a8\",[\"eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ severity: HIGH\n values.executionDelayLens:\n+ 10800\n+++ severity: HIGH\n values.executionDelayLens_fmt:\n+ \"3h\"\n values.MAX_EXECUTION_DELAY:\n+ 2592000\n values.OPTIONAL_UPGRADER_ADMIN_ROLE:\n+ \"0xa1426e789273bde4307f3302768d8e4eb615f0f4dea304f29cccd58ff644d640\"\n values.UPGRADER_ROLE:\n+ \"0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3\"\n errors:\n- {\"executionDelayLens\":\"Processing error occurred.\",\"executionDelayLens_fmt\":\"Processing error occurred.\"}\n fieldMeta.executionDelay.description:\n+ \"Ecosystem-wide minimum execution delay (in seconds), set by the owner. The delay enforced for a chain is the maximum of this value and the chain-specific delay.\"\n fieldMeta.executionDelay_fmt.description:\n+ \"Ecosystem-wide minimum execution delay, set by the owner. The delay enforced for a chain is the maximum of this value and the chain-specific delay.\"\n implementationNames.eth:0x6086051f93412F550C0820e76f0fbE85F64C7ef8:\n- \"ValidatorTimelock\"\n implementationNames.eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35:\n+ \"ValidatorTimelock\"\n }\n```"
}
]
},
{
"id": "3be3a85b",
"date": "Mon, 17 Aug 2026 11:30:47 GMT",
"timestamp": 1786966184,
"description": "Lens Multisig upgraded the boojum verifiers to version v0.30.1 (registered on the ChainTypeManager before). The new verifiers are not yet reproduced.",
"isHighSeverity": true,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x35CD3865199F2D9c574f34DD72520B19842d440c) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n contract Diamond (eth:0xc29d04A93F893700015138E3E334eB828dAC3cef) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.12:\n+ [\"2026-08-16T19:53:23.000Z\",\"0xd346a85316db66f6ed0cde76b5a129fb23a52351118a15822e158bf59f693f34\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 12\n+ 13\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 128849018880\n+ 128849018881\n values.getSemverProtocolVersion.2:\n- 0\n+ 1\n values.getVerifier:\n- \"eth:0xC47D355402E78b886B628914B3b129F236fEe3cc\"\n+ \"eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xC47D355402E78b886B628914B3b129F236fEe3cc) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66 or eth:0x35CD3865199F2D9c574f34DD72520B19842d440c depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract EraVerifierPlonk (eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract EraVerifierFflonk (eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract EraDualVerifier (eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9 or eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF depending on the supplied proof type.\n```"
}
]
},
{
"id": "63cc6f13",
"date": "Tue, 11 Aug 2026 07:46:55 GMT",
"timestamp": 1786434353,
"description": "Lens zkevm admin upgraded boojum verifier to v29.5 (same as zksync era, was registered on chain type manager before). Verifier is not yet reproduced.\n\nRemoved 7 members of Lens ms (2/10 -> 2/3).",
"isHighSeverity": true,
"changeCount": 21,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Lens Multisig (eth:0x4968A0E4b025eD7d095753E54058377969b41abC) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x71910321A1d3b3f743ca52569f5Aa82f09538A2e\"\n values.$members.3:\n- \"eth:0xfbDF62F0a73DED0BF5A264867cFD022E192B5526\"\n values.$members.4:\n- \"eth:0x5dc301EcD8Bd7694BB1074B3E58Aa0916EE7887d\"\n values.$members.5:\n- \"eth:0x62Ae8d9B6d0D9817bd9D41b9AfEAc301dBa713B8\"\n values.$members.6:\n- \"eth:0x2eD1df8F475b1f9c7493fC0eb0BFD4D1FD17f27b\"\n values.$members.7:\n- \"eth:0x2a80091816D7872850D500F6Ade835354238Af17\"\n values.$members.8:\n- \"eth:0x5063b3D23C3640d51c9E2aef41063B1d482C70ff\"\n values.multisigThreshold:\n- \"2 of 10 (20%)\"\n+ \"2 of 3 (67%)\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x7f33D100f482093182111d69a4a457289e99f4ec) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n contract Diamond (eth:0xc29d04A93F893700015138E3E334eB828dAC3cef) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.10:\n+ [\"2026-08-09T08:16:35.000Z\",\"0x49096e35ef0401c7d2d263edf1e9441da8f0805ff3c1fa2677b99b90363aed86\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$pastUpgrades.11:\n+ [\"2026-08-09T11:04:59.000Z\",\"0xd00f75efe10c54a7f0df37b44b22205a3e3545b334856fe4bb3ba4f51687279c\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 10\n+ 12\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051588\n+ 128849018880\n values.getSemverProtocolVersion.1:\n- 29\n+ 30\n values.getSemverProtocolVersion.2:\n- 4\n+ 0\n values.getVerifier:\n- \"eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45\"\n+ \"eth:0xC47D355402E78b886B628914B3b129F236fEe3cc\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442 or eth:0x7f33D100f482093182111d69a4a457289e99f4ec depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0x35CD3865199F2D9c574f34DD72520B19842d440c) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0xC47D355402E78b886B628914B3b129F236fEe3cc) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66 or eth:0x35CD3865199F2D9c574f34DD72520B19842d440c depending on the supplied proof type.\n```"
}
]
},
{
"id": "c8a41837",
"date": "Tue, 16 Jun 2026 09:43:54 GMT",
"timestamp": 1781602943,
"description": "Switch validator EOAs.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776) [shared-zk-stack/ValidatorTimelock_post29] {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTL.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n values.validatorsVTLFullAC.PRECOMMITTER_ROLE.members.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTLFullAC.PRECOMMITTER_ROLE.members.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n values.validatorsVTLFullAC.COMMITTER_ROLE.members.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTLFullAC.COMMITTER_ROLE.members.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n values.validatorsVTLFullAC.REVERTER_ROLE.members.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTLFullAC.REVERTER_ROLE.members.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n values.validatorsVTLFullAC.PROVER_ROLE.members.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTLFullAC.PROVER_ROLE.members.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n values.validatorsVTLFullAC.EXECUTOR_ROLE.members.0:\n- \"eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n+ \"eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc\"\n values.validatorsVTLFullAC.EXECUTOR_ROLE.members.1:\n- \"eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n+ \"eth:0x9971903268BAED330DA9DD533D97924c725AB593\"\n }\n```"
}
]
},
{
"id": "a4ac0d0c",
"date": "Tue, 09 Jun 2026 10:11:44 GMT",
"timestamp": 1780999809,
"description": "Changed 7702 delegation.",
"isHighSeverity": true,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5) {\n +++ description: None\n sourceHashes.0:\n- \"0x7c13d2cfb57c882bc260e74dcb008156f303789097df3876ce6c099f1957c71b\"\n+ \"0x39d3c680bc45b2c9a848f9ffcd0355b99f65f6a6cd626699fdb311dec621e134\"\n values.$implementation:\n- \"eth:0x80296FF8D1ED46f8e3C7992664D13B833504c2Bb\"\n+ \"eth:0x612373D7003d694220f7800EeaF8E3924c0951D3\"\n values.ADDRESS_THIS:\n- \"eth:0x80296FF8D1ED46f8e3C7992664D13B833504c2Bb\"\n values.eip712Domain.fields:\n- \"0x0f\"\n+ \"0x1f\"\n values.eip712Domain.name:\n- \"wallet-core\"\n+ \"Calibur\"\n values.eip712Domain.salt:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x000000000000000000000000612373d7003d694220f7800eeaf8e3924c0951d3\"\n values.getMainStorage:\n- \"eth:0x08Bd365bb4908a93F778564B956d710e6858B063\"\n values.MAIN_STORAGE_IMPL:\n- \"eth:0x7DAF91DFe55FcAb363416A6E3bceb3Da34ff1d30\"\n values.SESSION_TYPEHASH:\n- \"0x162b80b4d2b49568d8cbb7ac5385094c9e5e14680ef0333beeddbfae562f0472\"\n values.CUSTOM_STORAGE_ROOT:\n+ \"0x3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600\"\n values.domainBytes:\n+ \"0xc7e4f5b2d381bdfacf8506a24542052ab4e951573cab4ce34bb1c9509c84cbbf06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007cbba07e31dc7b12bb69a1209c5b11a8ac50acf5000000000000000000000000612373d7003d694220f7800eeaf8e3924c0951d3\"\n values.domainSeparator:\n+ \"0xb2c9668300ebd842c31e9ecddb570b09936392cb518ce4287a8a5668258738f3\"\n values.ENTRY_POINT:\n+ \"eth:0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108\"\n values.keyAt:\n+ []\n values.keyCount:\n+ 0\n values.keyHashes:\n+ 0\n values.namespaceAndVersion:\n+ \"Uniswap.Calibur.1.0.0\"\n }\n```"
}
]
},
{
"id": "a2f0f50a",
"date": "Thu, 04 Jun 2026 15:20:53 GMT",
"timestamp": 1780586386,
"description": "Lens migrated its verifiers (Plonk, Fflonk) to core-v29.11.1. Also, added two addresses to Lens Multisig.",
"isHighSeverity": true,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Lens Multisig (eth:0x4968A0E4b025eD7d095753E54058377969b41abC) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5\"\n values.$members.1:\n+ \"eth:0x8f356fEC1793c4AEbd817A344C77310081Fa6917\"\n values.$members.7:\n- \"eth:0xE0b3Ef5A61324acceE3798B6D9Da5B47b0312b7c\"\n+ \"eth:0xc5342CD71f67DAc44Bcfbc37df35700b5e4691e6\"\n values.multisigThreshold:\n- \"2 of 8 (25%)\"\n+ \"2 of 10 (20%)\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d or eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026 depending on the supplied proof type.\n```\n\n```diff\n contract LensZkEvmAdmin (eth:0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) [shared-zk-stack/ChainAdmin] {\n +++ description: A governance proxy that lets eth:0x4968A0E4b025eD7d095753E54058377969b41abC act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.6:\n+ {\"_protocolVersion\":124554051588,\"_upgradeTimestamp\":0}\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n contract Diamond (eth:0xc29d04A93F893700015138E3E334eB828dAC3cef) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.9:\n+ [\"2026-06-03T19:38:35.000Z\",\"0x8f7d04ce7012bfb248543385dc44825a6d21c4752f98bff93eba04da47368d4e\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 9\n+ 10\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051587\n+ 124554051588\n values.getSemverProtocolVersion.2:\n- 3\n+ 4\n values.getVerifier:\n- \"eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B\"\n+ \"eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0x7f33D100f482093182111d69a4a457289e99f4ec) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442 or eth:0x7f33D100f482093182111d69a4a457289e99f4ec depending on the supplied proof type.\n```"
}
]
},
{
"id": "b912dfae",
"date": "Fri, 30 Jan 2026 10:15:51 GMT",
"timestamp": 1769768087,
"description": "Upgraded boojum verifier to the latest version.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract DualVerifier (eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c or eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7 depending on the supplied proof type.\n```\n\n```diff\n contract LensZkEvmAdmin (eth:0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: A governance proxy that lets eth:0x4968A0E4b025eD7d095753E54058377969b41abC act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.5:\n+ {\"_protocolVersion\":124554051587,\"_upgradeTimestamp\":0}\n }\n```\n\n```diff\n contract Diamond (eth:0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.8:\n+ [\"2026-01-29T19:31:35.000Z\",\"0x54184d1aa0137620015290fe57ef7376cc15718acb77989eec3b7f4d0e0d14e5\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 8\n+ 9\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051586\n+ 124554051587\n values.getSemverProtocolVersion.2:\n- 2\n+ 3\n values.getVerifier:\n- \"eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3\"\n+ \"eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d or eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```"
}
]
},
{
"id": "4015652c",
"date": "Wed, 19 Nov 2025 10:28:33 GMT",
"timestamp": 1763546230,
"description": "standard v29.2 upgrade.",
"isHighSeverity": true,
"changeCount": 48,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract ValidatorTimelock (eth:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n contract LensZkEvmAdmin (eth:0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: A governance proxy that lets eth:0x4968A0E4b025eD7d095753E54058377969b41abC act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.4:\n+ {\"_protocolVersion\":124554051586,\"_upgradeTimestamp\":1762434000}\n }\n```\n\n```diff\n- Status: DELETED\n contract ValidatorTimelock (eth:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n contract LensZkEvm (eth:0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n sourceHashes.1:\n- \"0xbc2380479529743c27e6ab96cdf08210319fadcbca0856cf50c6b1b54bf8437f\"\n+ \"0xc7513302e4e09efc907df5e645d9f8037b1d02409f9a9089f61061c8951ef1ff\"\n values.$implementation.0:\n- \"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n+ \"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\"\n values.$implementation.1:\n- \"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n+ \"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\"\n values.$implementation.2:\n- \"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n+ \"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\"\n values.$implementation.3:\n- \"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n+ \"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"\n values.$pastUpgrades.7:\n+ [\"2025-11-17T20:58:11.000Z\",\"0xd0833923639a4693c45fe165c6d30094dbfbc7c0b9e77b89981696519eb579a9\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 7\n+ 8\n values.facetAddresses.0:\n- \"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n+ \"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\"\n values.facetAddresses.1:\n- \"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n+ \"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\"\n values.facetAddresses.2:\n- \"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n+ \"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\"\n values.facetAddresses.3:\n- \"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n+ \"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"\n values.facets.eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"getRollupDAManager()\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.eth:0x1666124221622eb6154306Ea9BA87043e8be88B2:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2MessageInclusionShared(uint256,uint256,uint256,(uint16,address,bytes),bytes32[])\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\",\"proveL2LogInclusionShared(uint256,uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\"]\n values.facets.eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691:\n+ [\"precommitSharedBridge(address,uint256,bytes)\",\"commitBatchesSharedBridge(address,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(address,uint256,uint256,bytes)\",\"revertBatchesSharedBridge(address,uint256)\",\"proveBatchesSharedBridge(address,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35\"\n+ \"0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e\"\n+ \"0x010005f73e7c299ed73db937843643bdc276cbc2cc8596287e1e0cf3afc60252\"\n values.getL2EvmEmulatorBytecodeHash:\n- \"0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da\"\n+ \"0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 120259084289\n+ 124554051586\n values.getSemverProtocolVersion.1:\n- 28\n+ 29\n values.getSemverProtocolVersion.2:\n- 1\n+ 2\n values.getVerifier:\n- \"eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A\"\n+ \"eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3\"\n values.validators.1:\n- \"eth:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n values.validators.2:\n- \"eth:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"\n+ \"eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776\"\n values.getRollupDAManager:\n+ \"eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45\"\n implementationNames.eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n- \"AdminFacet\"\n implementationNames.eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n- \"GettersFacet\"\n implementationNames.eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n- \"MailboxFacet\"\n implementationNames.eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n- \"ExecutorFacet\"\n implementationNames.eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253:\n+ \"AdminFacet\"\n implementationNames.eth:0x1666124221622eb6154306Ea9BA87043e8be88B2:\n+ \"GettersFacet\"\n implementationNames.eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45:\n+ \"MailboxFacet\"\n implementationNames.eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911 or eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c or eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n reference RollupDAManager (eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45)\n +++ description: None\n```"
}
]
},
{
"id": "360b3311",
"date": "Fri, 15 Aug 2025 08:16:14 GMT",
"timestamp": 1755245760,
"description": "Standard zkstack v28.1 upgrade.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.3:\n+ {\"_protocolVersion\":120259084289,\"_upgradeTimestamp\":1754911800}\n }\n```\n\n```diff\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.6:\n+ [\"2025-08-14T14:23:47.000Z\",\"0xe1e89cb3eb4b704457d700ce847e9f682c50ef505c08b5ca0873a833e9d4ff2a\",[\"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\",\"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\",\"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\",\"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"]]\n values.$upgradeCount:\n- 6\n+ 7\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 120259084288\n+ 120259084289\n values.getSemverProtocolVersion.2:\n- 0\n+ 1\n values.getVerifier:\n- \"eth:0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579\"\n+ \"eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911 or eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6 depending on the supplied proof type.\n```"
}
]
},
{
"id": "b0951e94",
"date": "Mon, 14 Jul 2025 12:47:16 GMT",
"timestamp": 1752497236,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Lens Multisig (0x4968A0E4b025eD7d095753E54058377969b41abC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock3 (0x5C03468829A26981c410a7930bD4853622F0B2E5)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 0s.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock2 (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract AvailL1DAValidator (0x8f50d93B9955B285f787043B30B5F51D09bE0120)\n +++ description: Contract that verifies that the validiums data was made available on Avail by querying the eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a on Ethereum for a merkle proof of inclusion.\n```\n\n```diff\n+ Status: CREATED\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef)\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987)\n +++ description: None\n```"
}
]
},
{
"id": "eda58c27",
"date": "Mon, 07 Jul 2025 06:48:55 GMT",
"timestamp": 1751870935,
"description": "standard zk stack v28 upgrade.",
"isHighSeverity": true,
"changeCount": 39,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract DualVerifier (0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0)\n +++ description: A router contract for verifiers. Routes verification requests to 0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF or 0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.2:\n+ {\"_protocolVersion\":120259084288,\"_upgradeTimestamp\":1750942800}\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$implementation.0:\n- \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n+ \"0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n values.$implementation.1:\n- \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n+ \"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n values.$implementation.2:\n- \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n+ \"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n values.$implementation.3:\n- \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n+ \"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n values.$pastUpgrades.5:\n+ [\"2025-07-02T18:42:59.000Z\",\"0x8d2c504c58a659511bef547888186da42708e16923743741cd11acf4c6d908b3\",[\"0x431449e2a28A69122860A4956A3f7191eE15aFBC\",\"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\",\"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\",\"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.facetAddresses.0:\n- \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n+ \"0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n values.facetAddresses.1:\n- \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n+ \"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n values.facetAddresses.2:\n- \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n+ \"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n values.facetAddresses.3:\n- \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n+ \"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n values.facets.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n+ [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100087fe7df1cf5616646f85bd5eebc8efe5d8deac4d85bea9b9aefd88803dd\"\n+ \"0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x0100050bf9baf9d08e5d3c037f8d8b486076de7e6dceb3f3fc0989ea2c99cd67\"\n+ \"0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e\"\n values.getL2EvmEmulatorBytecodeHash:\n- \"0x01000bbb8116fe7bdf690c19740ea350375426cec23f4f1f69a12fdc58adc9ba\"\n+ \"0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 115964116992\n+ 120259084288\n values.getSemverProtocolVersion.1:\n- 27\n+ 28\n values.getVerifier:\n- \"0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0\"\n+ \"0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579\"\n implementationNames.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n- \"AdminFacet\"\n implementationNames.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n- \"GettersFacet\"\n implementationNames.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n- \"MailboxFacet\"\n implementationNames.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n- \"ExecutorFacet\"\n implementationNames.0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n+ \"AdminFacet\"\n implementationNames.0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n+ \"GettersFacet\"\n implementationNames.0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n+ \"MailboxFacet\"\n implementationNames.0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to 0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or 0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```"
}
]
},
{
"id": "b6ebaeca",
"date": "Thu, 19 Jun 2025 11:17:14 GMT",
"timestamp": 1750331834,
"description": "Upgrade to Vector DA bridge from Avail.",
"isHighSeverity": true,
"changeCount": 13,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Lens Multisig (0x4968A0E4b025eD7d095753E54058377969b41abC) {\n +++ description: None\n values.$members.7:\n+ \"0x2a80091816D7872850D500F6Ade835354238Af17\"\n values.$members.6:\n+ \"0x5063b3D23C3640d51c9E2aef41063B1d482C70ff\"\n values.$members.5:\n+ \"0x62Ae8d9B6d0D9817bd9D41b9AfEAc301dBa713B8\"\n values.$members.4:\n+ \"0x5dc301EcD8Bd7694BB1074B3E58Aa0916EE7887d\"\n values.$members.3:\n- \"0x2a80091816D7872850D500F6Ade835354238Af17\"\n+ \"0xfbDF62F0a73DED0BF5A264867cFD022E192B5526\"\n values.$members.2:\n- \"0x5063b3D23C3640d51c9E2aef41063B1d482C70ff\"\n+ \"0xE0b3Ef5A61324acceE3798B6D9Da5B47b0312b7c\"\n values.$members.1:\n- \"0xE0b3Ef5A61324acceE3798B6D9Da5B47b0312b7c\"\n+ \"0x2eD1df8F475b1f9c7493fC0eb0BFD4D1FD17f27b\"\n values.$members.0:\n- \"0x2eD1df8F475b1f9c7493fC0eb0BFD4D1FD17f27b\"\n+ \"0x71910321A1d3b3f743ca52569f5Aa82f09538A2e\"\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"2 of 8 (25%)\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ValidiumL1DAValidator (0x907b30407249949521Bf0c89A43558dae200146A)\n +++ description: Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n```\n\n```diff\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n+++ severity: HIGH\n values.getDAValidatorPair.1:\n- \"0xFa30EAe30351A83809657299F6Cad9557c232e8C\"\n+ \"0xdA6661Df15E79cFe1e679ccD138D813b955ba492\"\n+++ severity: HIGH\n values.getDAValidatorPair.0:\n- \"0x907b30407249949521Bf0c89A43558dae200146A\"\n+ \"0x8f50d93B9955B285f787043B30B5F51D09bE0120\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract AvailL1DAValidator (0x8f50d93B9955B285f787043B30B5F51D09bE0120)\n +++ description: Contract that verifies that the validiums data was made available on Avail by querying the 0x054fd961708D8E2B9c10a63F6157c74458889F0a on Ethereum for a merkle proof of inclusion.\n```"
}
]
},
{
"id": "d2aafb43",
"date": "Wed, 18 Jun 2025 12:24:52 GMT",
"timestamp": 1750249492,
"description": "2 valis removed.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.3:\n- \"0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n values.validatorsVTL.2:\n- \"0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n values.validatorsVTL.1:\n- \"0xAaF7b278baC078AA4f9bdc8E0a93CDe604aA67d9\"\n+ \"0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n values.validatorsVTL.0:\n- \"0xb1a0c1F1B50436AC94B8Ce9Ae919B0e820aCb374\"\n+ \"0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n }\n```\n\n```diff\n EOA (0xAaF7b278baC078AA4f9bdc8E0a93CDe604aA67d9) {\n +++ description: None\n receivedPermissions.2:\n- {\"permission\":\"validateZkStack\",\"from\":\"ethereum:0x5C03468829A26981c410a7930bD4853622F0B2E5\",\"role\":\".validatorsVTL\"}\n receivedPermissions.1.from:\n- \"ethereum:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n+ \"ethereum:0x5C03468829A26981c410a7930bD4853622F0B2E5\"\n receivedPermissions.0.from:\n- \"ethereum:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"\n+ \"ethereum:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n }\n```\n\n```diff\n EOA (0xb1a0c1F1B50436AC94B8Ce9Ae919B0e820aCb374) {\n +++ description: None\n receivedPermissions.2:\n- {\"permission\":\"validateZkStack\",\"from\":\"ethereum:0x5C03468829A26981c410a7930bD4853622F0B2E5\",\"role\":\".validatorsVTL\"}\n receivedPermissions.1.from:\n- \"ethereum:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n+ \"ethereum:0x5C03468829A26981c410a7930bD4853622F0B2E5\"\n receivedPermissions.0.from:\n- \"ethereum:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"\n+ \"ethereum:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n }\n```"
}
]
},
{
"id": "c2b3659d",
"date": "Mon, 26 May 2025 15:03:44 GMT",
"timestamp": 1748271824,
"description": "validators added (via validatorTimelock).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.3:\n+ \"0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484\"\n values.validatorsVTL.2:\n+ \"0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67\"\n }\n```"
}
]
},
{
"id": "127c8e53",
"date": "Fri, 16 May 2025 10:10:13 GMT",
"timestamp": 1747390213,
"description": "v27 upgrade to standard contracts.",
"isHighSeverity": true,
"changeCount": 41,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.1:\n+ {\"_protocolVersion\":115964116992,\"_upgradeTimestamp\":1747029600}\n }\n```\n\n```diff\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n sourceHashes.3:\n- \"0xf3a1cb3dd9315b2dfa9e9aca6d6b09e987a1eb463588f115e2eb142eaa2a4ac6\"\n+ \"0xb3038139dce45f6c1aaedbfb1b321c230301b2d004da109b39a17d827c6b0e4f\"\n sourceHashes.2:\n- \"0x28719e86c8042765405cbb88205d1fb130f39f3bb0923afe7fef6dd5ef798c31\"\n+ \"0x1f9f7cd43747f5bcf879d544be0baca967245540e70592112cdc90c360f30486\"\n sourceHashes.1:\n- \"0x396f0e8e4bc223f186f87b7eabf2f4b537ce84f8515aa16c86400c4f10af79b1\"\n+ \"0xab7812fa82c483b781aee4c2339b860fcdee4033de1e243370a77a20fc353ddc\"\n sourceHashes.0:\n- \"0x8337740067b4f9278182a83ca83d62ca2611966b8beca6e0a49394204c8f74da\"\n+ \"0xca793d2e01bb37722ba48f56662e8602e693d6808ed9587867c2bac43c3dec25\"\n values.$implementation.3:\n- \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n+ \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n values.$implementation.2:\n- \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n+ \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n values.$implementation.1:\n- \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n+ \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n values.$implementation.0:\n- \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n+ \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n values.$pastUpgrades.4:\n+ [\"2025-05-14T20:40:11.000Z\",\"0x37a2cb789916112d5c2824569ee4f44d4078b9ab00b55017eebf83124309b54c\",[\"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\",\"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\",\"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\",\"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.facetAddresses.3:\n- \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n+ \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n values.facetAddresses.2:\n- \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n+ \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n values.facetAddresses.1:\n- \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n+ \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n values.facetAddresses.0:\n- \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n+ \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n values.facets.0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x36b026c39125964D99596CE302866B5A59E4dE27:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n+ [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100088580465d88420e6369230ee94a32ff356dbcdd407a4be49fc8009b2a81\"\n+ \"0x0100087fe7df1cf5616646f85bd5eebc8efe5d8deac4d85bea9b9aefd88803dd\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x010004dbf8be36c421254d005352f8245146906919be0099e8a50d0e78df85e0\"\n+ \"0x0100050bf9baf9d08e5d3c037f8d8b486076de7e6dceb3f3fc0989ea2c99cd67\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 111669149696\n+ 115964116992\n values.getSemverProtocolVersion.0:\n- 26\n+ 27\n values.getVerifier:\n- \"0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5\"\n+ \"0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0\"\n values.getL2EvmEmulatorBytecodeHash:\n+ \"0x01000bbb8116fe7bdf690c19740ea350375426cec23f4f1f69a12fdc58adc9ba\"\n implementationNames.0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb:\n- \"AdminFacet\"\n implementationNames.0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1:\n- \"GettersFacet\"\n implementationNames.0x36b026c39125964D99596CE302866B5A59E4dE27:\n- \"MailboxFacet\"\n implementationNames.0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800:\n- \"ExecutorFacet\"\n implementationNames.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n+ \"AdminFacet\"\n implementationNames.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n+ \"GettersFacet\"\n implementationNames.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n+ \"MailboxFacet\"\n implementationNames.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Verifier (0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5)\n +++ description: Implements the ZK proof verification logic.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0)\n +++ description: A router contract for verifiers. Routes verification requests to 0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF or 0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```"
}
]
},
{
"id": "37978bfa",
"date": "Fri, 09 May 2025 11:15:27 GMT",
"timestamp": 1746789327,
"description": "New Lens owner MS.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433) {\n +++ description: None\n values.owner:\n- \"0xca2938BdD6Bcf5860f7176fA092b0ac9510f09A3\"\n+ \"0x4968A0E4b025eD7d095753E54058377969b41abC\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Lens Multisig (0x4968A0E4b025eD7d095753E54058377969b41abC)\n +++ description: None\n```"
}
]
},
{
"id": "dcef561d",
"date": "Tue, 08 Apr 2025 09:32:43 GMT",
"timestamp": 1744104763,
"description": "Initial discovery of a standard ZK stack validium.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract ValidatorTimelock3 (0x5C03468829A26981c410a7930bD4853622F0B2E5)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 0s.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock2 (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract LensZkEvmAdmin (0x6bd8d33551077Ed281Cb047835a2aE4033eEc433)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract ValidiumL1DAValidator (0x907b30407249949521Bf0c89A43558dae200146A)\n +++ description: Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n```\n\n```diff\n+ Status: CREATED\n contract LensZkEvm (0xc29d04A93F893700015138E3E334eB828dAC3cef)\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n```\n\n```diff\n+ Status: CREATED\n contract Verifier (0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5)\n +++ description: Implements the ZK proof verification logic.\n```\n\n```diff\n+ Status: CREATED\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987)\n +++ description: None\n```"
}
]
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
}
],
"description": "Lighter is an application-specific zk rollup on a mission to revolutionize trading by building provably fair, secure, and scalable infrastructure for finance.",
"links": {
"websites": [
"https://lighter.xyz",
"https://app.lighter.xyz/"
],
"explorers": [
"https://app.lighter.xyz/explorer"
],
"documentation": [
"https://docs.lighter.xyz",
"https://assets.lighter.xyz/whitepaper.pdf"
],
"repositories": [
"https://github.com/elliottech"
],
"socialMedia": [
"https://x.com/Lighter_xyz",
"https://discord.gg/lighterxyz",
"https://linkedin.com/company/lighter-xyz",
"https://t.me/lighterxyz_official"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
}
],
"description": "Lighter on Robinhood is an application-specific ZK rollup deployed on Robinhood Chain. It is a fork of Lighter adapted to use Global Dollar (USDG) as its quote and margin asset.",
"links": {
"websites": [
"https://lighter.xyz",
"https://robinhood.com/chain/"
],
"explorers": [
"https://robin.etherscan.io",
"https://robinhoodchain.blockscout.com/"
],
"documentation": [
"https://robinhood.com/us/en/support/articles/robinhood-wallet-perpetual-futures/",
"https://docs.robinhood.com/chain/",
"https://docs.lighter.xyz"
],
"repositories": [
"https://github.com/elliottech/lighter-contracts",
"https://github.com/elliottech/lighter-prover"
],
"socialMedia": [
"https://x.com/Lighter_xyz",
"https://x.com/RobinhoodApp",
"https://discord.gg/lighterxyz"
]
}
}
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
}
],
"description": "LightLink is a project that lets dApps and enterprises offer users instant, gasless transactions.",
"links": {
"websites": [
"https://lightlink.io"
],
"bridges": [
"https://phoenix.lightlink.io/apps"
],
"documentation": [
"https://docs.lightlink.io"
],
"explorers": [
"https://phoenix.lightlink.io"
],
"repositories": [
"https://github.com/lightlink-network"
],
"socialMedia": [
"https://twitter.com/lightlinkchain",
"https://discord.com/invite/lightlinkchain",
"https://t.me/lightlinkll",
"https://linkedin.com/company/lightlinkchain"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data"
}
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "L3HostChain",
"type": "Other",
"name": "L3 Host Chain",
"description": "This project serves as a host chain for L3s",
"action": {
"type": "selfScalingFilter",
"id": "hostChain"
}
}
],
"description": "Linea is a ZK Rollup powered by a zkEVM developed at Consensys, designed to scale the Ethereum network.",
"links": {
"websites": [
"https://linea.build/"
],
"bridges": [
"https://bridge.linea.build/"
],
"documentation": [
"https://docs.linea.build/"
],
"explorers": [
"https://lineascan.build/",
"https://lineaplorer.build/",
"https://explorer.linea.build/"
],
"repositories": [
"https://github.com/Consensys?q=linea&type=all&language=&sort=stargazers"
],
"socialMedia": [
"https://twitter.com/LineaBuild",
"https://discord.gg/linea",
"https://linea.mirror.xyz/",
"https://linkedin.com/company/lineabuild/",
"https://community.linea.build/"
],
"other": [
"https://rollup.codes/linea",
"https://growthepie.com/chains/linea"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "MigratedFromL1",
"type": "Other",
"name": "Migrated from L1 to Ethereum L2",
"description": "This project has migrated from being a standalone L1 blockchain to an Ethereum L2",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Migrated from L1 to Ethereum L2"
}
},
{
"id": "Gelato",
"type": "RaaS",
"name": "Gelato",
"description": "This project was deployed via the rollup-as-a-service provider Gelato",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Gelato"
}
}
],
"description": "Lisk is an OP stack rollup on Ethereum that migrated from the L1 blockchain of the same name.",
"links": {
"websites": [
"https://lisk.com/"
],
"bridges": [
"https://bridge.lisk.com/",
"https://portal.lisk.com/"
],
"documentation": [
"https://docs.lisk.com/"
],
"explorers": [
"https://blockscout.lisk.com/"
],
"repositories": [
"https://github.com/LiskHQ/lisk-node"
],
"socialMedia": [
"https://x.com/LiskHQ",
"https://discord.com/invite/lisk",
"https://lisk.chat/",
"https://reddit.com/r/lisk/",
"https://facebook.com/LiskHQ",
"https://linkedin.com/company/lisk",
"https://instagram.com/lisk_blockchain",
"https://t.me/Lisk_HQ",
"https://youtube.com/channel/UCuqpGfg_bOQ8Ja4pj811PWg"
],
"other": [
"https://growthepie.com/chains/lisk"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
}
],
"description": "Loopring is a ZK Rollup exchange protocol for trading and payments.",
"links": {
"websites": [
"https://loopring.org"
],
"bridges": [
"https://loopring.io/#/trade"
],
"documentation": [
"https://github.com/Loopring/protocols/blob/master/packages/loopring_v3/DESIGN.md",
"https://docs.loopring.io/"
],
"explorers": [
"https://explorer.loopring.io/"
],
"repositories": [
"https://github.com/Loopring/protocols"
],
"socialMedia": [
"https://loopring.org/#/blog",
"https://medium.com/loopring-protocol",
"https://twitter.com/loopringorg",
"https://discord.com/invite/KkYccYp",
"https://youtube.com/c/loopring",
"https://weibo.com/loopringfoundation",
"https://reddit.com/r/loopringorg/",
"https://loopring.substack.com/"
],
"other": [
"https://growthepie.com/chains/loopring"
]
}
}
+2 -13
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Derive Chain was an L2 scaling solution built using OP Stack specially for the Derive protocol - a settlement protocol for spot, perpetuals, and options trading - before Derive migrated to Derive V3.",
"links": {
"websites": [
"https://derive.xyz/"
],
"bridges": [
"https://derive.xyz/options/eth"
],
"documentation": [
"https://docs.lyra.finance/"
],
"explorers": [
"https://explorer.derive.xyz/"
],
"repositories": [
"https://github.com/lyra-finance/v2-core"
],
"socialMedia": [
"https://x.com/derivexyz",
"https://warpcast.com/lyra.eth",
"https://discord.gg/Derive",
"https://youtube.com/@derivexyz",
"https://linkedin.com/company/derivelabs",
"https://t.me/Derive_Announcements"
],
"other": [
"https://growthepie.com/chains/derive"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+0 -6
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAACLkdk+ILapw="
},
{
"type": "ethereum",
"daLayer": "ethereum",
"inbox": "0x5f7f7f6DB967F0ef10BdA0678964DBA185d16c50",
"sequencers": [
"0x14e4E97bDc195d399Ad8E7FC14451C279FE04c8e"
],
"sinceBlock": 25974565
}
]
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Manta Pacific is an Optimium empowering EVM-native zero-knowledge (ZK) applications and general dapps.",
"links": {
"websites": [
"https://manta.network/"
],
"bridges": [
"https://pacific-bridge.manta.network/"
],
"documentation": [
"https://docs.manta.network/"
],
"explorers": [
"https://pacific-explorer.manta.network/",
"https://manta.socialscan.io/"
],
"repositories": [
"https://github.com/Manta-Network"
],
"socialMedia": [
"https://discord.com/invite/ktZWgwSu93",
"https://twitter.com/MantaNetwork",
"https://mantanetwork.medium.com/",
"https://t.me/mantanetworkofficial"
],
"other": [
"https://growthepie.com/chains/manta"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAIZiad33fbxA7Z0="
}
]
null
+1 -12
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
}
],
"description": "Mantle is a modular general-purpose Ethereum rollup. Transaction data is posted to Ethereum blobs and state transitions are validated onchain via OP Succinct ZK validity proofs (SP1). Its design philosophy aims to offer users a less costly and more user-friendly experience, provide developers with a simpler and more flexible development environment, and deliver a comprehensive set of infrastructure for the next wave of mass-adopted dApps.",
"links": {
"websites": [
"https://mantle.xyz/"
],
"bridges": [
"https://bridge.mantle.xyz"
],
"documentation": [
"https://docs-v2.mantle.xyz/"
],
"explorers": [
"https://explorer.mantle.xyz/"
],
"repositories": [
"https://github.com/mantlenetworkio"
],
"socialMedia": [
"https://discord.gg/0xMantle",
"https://x.com/Mantle_Official",
"https://medium.com/0xmantle",
"https://t.me/mantlenetwork"
],
"other": [
"https://growthepie.com/chains/mantle"
]
}
}
+0 -7
[
{
"type": "eigen-da",
"customerId": "0x24f0a3716805e8973bf48eb908d6d4a2f34af785",
"daLayer": "eigenda",
"sinceTimestamp": 1738821600,
"untilTimestamp": 1776322715
},
{
"type": "ethereum",
"daLayer": "ethereum",
"inbox": "0xFFEEDDCcBbAA0000000000000000000000000000",
"sequencers": [
"0x2f40D796917ffB642bD2e2bdD2C762A5e40fd749"
],
"sinceBlock": 19434945
}
]
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
},
{
"id": "OPKailua",
"type": "Stack",
"name": "Built on the OP Kailua stack",
"description": "The project is built on the OP Kailua stack"
}
],
"description": "MegaETH is a real-time blockchain based on the OP Stack architecture and the hybrid Kailua proof system, targeting sub-millisecond latency and over 100,000 transactions per second.",
"links": {
"websites": [
"https://megaeth.com/"
],
"bridges": [
"https://bridge.megaeth.com/",
"https://rabbithole.megaeth.com/bridge"
],
"documentation": [
"https://docs.megaeth.com/"
],
"explorers": [
"https://mega.etherscan.io/",
"https://megaeth.blockscout.com/"
],
"repositories": [
"https://github.com/megaeth-labs"
],
"socialMedia": [
"https://x.com/megaeth",
"https://discord.com/invite/megaeth",
"https://t.me/megaeth_labs",
"https://megaeth.com/blog-news"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "eigen-da",
"daLayer": "eigenda",
"sinceTimestamp": 1762995600,
"customerId": "0x42b5ea5238752cc6f70d93fa4249feae480a0b39"
}
]
null
[REMOVED]
memo
+0 -133
+0 -1
"memo"
+0 -1
"memo"
+0 -1
"Meeda"
+0 -1
null
+0 -1
null
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -22
{
"badges": [],
"description": "Meeda (MemoDA) is a blockchain-based cloud storage protocol developed by MEMO Labs.",
"links": {
"websites": [
"https://www.memolabs.org/"
],
"documentation": [
"https://memolabs.gitbook.io/meeda"
],
"repositories": [
"https://github.com/memoio"
],
"explorers": [
"https://scan.metamemo.one/"
],
"socialMedia": [
"https://x.com/MemoLabsOrg",
"https://discord.com/invite/YG4Ydv2E7X"
]
}
}
+0 -1
null
+0 -1
null
+0 -9
[
{
"title": "MEMO Megrez Network launch",
"url": "https://memolabs.medium.com/memo-megrez-network-went-live-on-october-15-b99c187e041c",
"date": "2022-10-15T00:00:00Z",
"description": "MemoMegrez Network is the underlying storage network of the MEMO storage system.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -55
{
"consensusAlgorithm": {
"name": "",
"description": "",
"blockTime": 0,
"consensusFinality": 0,
"unbondingPeriod": 0
},
"pruningWindow": 0,
"risks": {
"economicSecurity": {
"value": {
"value": "No slashing",
"sentiment": "bad",
"description": "Although node operators are required to stake MEMO tokens to become members of the DA network, there is no slashing mechanism in place for misbehaving nodes."
},
"adjustSecurityRisk": false
},
"fraudDetection": {
"value": "None",
"sentiment": "bad",
"description": "There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer."
}
},
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n\nMeeda's architecture consists of several components. \nStorage Nodes store blob data and generate data availability commitments, with node deployment available to all users. \nLight Nodes are responsible for challenging storage nodes through onchain verification, and their deployment is also open to all users. \nThe Operator, currently deployed by the project itself, handles the erasure coding of data and data chunks distribution, as well as the aggregation of KZG commitment proofs from Storage Nodes. \n\nStorage Nodes, based on seed information generated periodically on the Memo chain, submit KZG data commitments to the Operator. \nThe Verification Contract is responsible for onchain verification on Memo chain, and it will generate seed information through the VRF-Sampling (Verifiable Random Function) cycle to determine which files to select for verification.\nNot all data commitments are verified onchain, but only a subset of data is verified, with the sampling determined by the random seed produced by the Verification Contract.\nThe operator will then collect and aggregate the KZG commitments for the selected files from storage nodes, and submit the aggregate proof to the Verification Contract.\n\nOptimistic verification assumes that the aggregation commitment submitted by the operator node is correct and only requires checking the accuracy of the associated proof.\nIf no light node challenges the commitment within the specified validity period, the proof of availability is considered successful.
\n\nSubmitting a fraud proof is expected to require multiple rounds of interaction, with pledges and rewards for both the challenger and the challenged.\nThe proving smart contracts (FileProof, ControlFileProof, ProxyFileProof) are deployed to the Memo chain and their code is not public, so the logic and security of the proving contracts is not verifiable.\n\n## L2s Data Availability\nL2s can upload transaction data to Meeda through the MemoDA RPC, and the Meeda operator will generate an aggregated KZG polynomial commitment based on the transaction data. \nNodes can request transaction data on Meeda based on the commitment value of the transaction data.",
"references": [
{
"title": "Meeda Documentation - Architecture",
"url": "https://memolabs.gitbook.io/meeda/readme/overview-of-meeda/whats-meeda"
},
{
"title": "Meeda FileProof contract - Metamemo Scan",
"url": "https://scan.metamemo.one:8080/address/0x58C3Ab98546879a859EDBa3252A9d38E43C9cbee/"
},
{
"title": "Meeda ControlFileProof contract - Metamemo Scan",
"url": "https://scan.metamemo.one:8080/address/0x6eEc7578dBAD9dcc1CA159A9Df0A73233548b89a/"
},
{
"title": "Meeda ProxyFileProof contract - Metamemo Scan",
"url": "https://scan.metamemo.one:8080/address/0x0c7B5A9Ce5e33B4fa1BcFaF9e8722B1c1c23243B/"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "Memo storage nodes do not make the data available."
}
]
},
"type": "Public Blockchain",
"usedWithoutBridgeIn": []
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
1748908800
+0 -1
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Metal L2 is a general-purpose OP stack rollup by Metallicus focused on banking and compliance.",
"links": {
"websites": [
"https://metall2.com/"
],
"bridges": [
"https://bridge.metall2.com/",
"https://dollar.metalx.com/",
"https://metalpay.com/"
],
"documentation": [
"https://docs.metall2.com"
],
"explorers": [
"https://explorer.metall2.com"
],
"repositories": [
"https://github.com/MetalPay"
],
"socialMedia": [
"https://twitter.com/metalpaysme",
"https://reddit.com/r/metalpay/",
"https://facebook.com/metalpaysme",
"https://t.me/metalpaysme",
"https://linkedin.com/company/metallicus"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OVM",
"type": "Fork",
"name": "Fork of OVM",
"description": "The project is a fork of the Optimistic Virtual Machine",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OVM"
}
}
],
"description": "Metis Andromeda is an EVM-equivalent solution originally forked from Optimism OVM. It uses a decentralized Sequencer pool running Tendermint consensus and MPC module to sign transaction batches.",
"links": {
"websites": [
"https://metis.io"
],
"bridges": [
"https://bridge.metis.io"
],
"documentation": [
"https://docs.metis.io"
],
"explorers": [
"https://andromeda-explorer.metis.io",
"https://explorer.metis.io"
],
"repositories": [
"https://github.com/MetisProtocol"
],
"socialMedia": [
"https://metisl2.medium.com/",
"https://twitter.com/MetisL2",
"https://discord.com/invite/metis",
"https://youtube.com/@Metis_L2",
"https://t.me/MetisL2",
"https://instagram.com/metisl2/"
],
"other": [
"https://growthepie.com/chains/metis"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
}
],
"description": "Mint Blockchain is a Layer 2 network for NFTs.",
"links": {
"websites": [
"https://mintchain.io/"
],
"bridges": [
"https://bridge.mintchain.io/",
"https://mintchain.io/faucet"
],
"documentation": [
"https://docs.mintchain.io/"
],
"explorers": [
"https://explorer.mintchain.io"
],
"repositories": [
"https://github.com/Mint-Blockchain"
],
"socialMedia": [
"https://twitter.com/Mint_Blockchain",
"https://discord.com/invite/jmANcWNp8r",
"https://t.me/MintBlockchain",
"https://mirror.xyz/mintchain.eth",
"https://community.mintchain.io"
],
"other": [
"https://growthepie.com/chains/mint"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Mode is an OP stack Optimistic Rollup building the AIFi economy. Their mission is to scale DeFi to billions of users through onchain agents and AI powered financial applications to build a more open, efficient, and inclusive financial future.",
"links": {
"websites": [
"https://mode.network/"
],
"bridges": [
"https://app.mode.network/"
],
"documentation": [
"https://docs.mode.network/"
],
"explorers": [
"https://modescan.io"
],
"repositories": [
"https://github.com/mode-network"
],
"socialMedia": [
"https://twitter.com/modenetwork",
"https://discord.gg/modenetworkofficial",
"https://mode.mirror.xyz/",
"https://t.me/ModeNetworkOfficial"
],
"other": [
"https://growthepie.com/chains/mode"
]
}
}
+91 -88
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Arbitrum",
"type": "L3ParentChain",
"name": "Built on top of Arbitrum",
"description": "The project has Arbitrum as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Arbitrum"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Molten is an Orbit stack L3 on Arbitrum with Celestia DA, created by the UniDex team.",
"links": {
"websites": [
"https://moltennetwork.com/"
],
"bridges": [
"https://molten.calderabridge.xyz/",
"https://leverage.unidex.exchange/"
],
"documentation": [
"https://docs.unidex.exchange/appchain/markdown"
],
"explorers": [
"https://molten.calderaexplorer.xyz"
],
"socialMedia": [
"https://x.com/moltenl3",
"https://discord.com/invite/YACsZnuqC9",
"https://mirror.xyz/unidexexchange.eth",
"https://t.me/unidexfinance"
]
}
}
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 5305699,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4SpNR57blEA="
}
]
null
+20 -20
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "Caldera Multisig 1",
"name": "Caldera Multisig 1",
"description": "A Multisig with 3/7 threshold. \n* Can upgrade **with no delay**\n * RollupProxy [via: UpgradeExecutor]\n * SequencerInbox [via: UpgradeExecutor → ProxyAdmin]\n * Inbox [via: UpgradeExecutor → ProxyAdmin]\n * ERC20Gateway [via: UpgradeExecutor → ProxyAdmin]\n * ChallengeManager [via: UpgradeExecutor → ProxyAdmin]\n * UpgradeExecutor [via: UpgradeExecutor → ProxyAdmin]\n * RollupEventInbox [via: UpgradeExecutor → ProxyAdmin]\n * GatewayRouter [via: UpgradeExecutor → ProxyAdmin]\n * Outbox [via: UpgradeExecutor → ProxyAdmin]\n * Bridge [via: UpgradeExecutor → ProxyAdmin]\n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes [via: UpgradeExecutor]",
"accounts": [
{
"address": "arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF",
"type": "Contract",
"isVerified": true,
"name": "0x6FD1…68BF",
"url": "https://arbiscan.io/address/0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xe5219fe14E2FD520Ff80be036790913053d1575d",
"type": "EOA",
"isVerified": true,
"name": "0xe521…575d",
"url": "https://arbiscan.io/address/0xe5219fe14E2FD520Ff80be036790913053d1575d"
},
{
"address": "arb1:0x62ea938a30826c8794C8B8BbA775B91cAE3B849A",
"type": "EOA",
"isVerified": true,
"name": "0x62ea…849A",
"url": "https://arbiscan.io/address/0x62ea938a30826c8794C8B8BbA775B91cAE3B849A"
},
{
"address": "arb1:0x9e14B1baFCEB80B67934aBE4fB00a7291aCfBcD0",
"type": "EOA",
"isVerified": true,
"name": "0x9e14…BcD0",
"url": "https://arbiscan.io/address/0x9e14B1baFCEB80B67934aBE4fB00a7291aCfBcD0"
},
{
"address": "arb1:0xe62a4A1e6D237d6fc40d88F819D5cE580a996A6b",
"type": "EOA",
"isVerified": true,
"name": "0xe62a…6A6b",
"url": "https://arbiscan.io/address/0xe62a4A1e6D237d6fc40d88F819D5cE580a996A6b"
},
{
"address": "arb1:0xFcB26a1DbFafF84b91f1b7D9026DA63007b88D3c",
"type": "EOA",
"isVerified": true,
"name": "0xFcB2…8D3c",
"url": "https://arbiscan.io/address/0xFcB26a1DbFafF84b91f1b7D9026DA63007b88D3c"
},
{
"address": "arb1:0xbf853295743511e8DC5F03809d209C33fC136d24",
"type": "EOA",
"isVerified": true,
"name": "0xbf85…6d24",
"url": "https://arbiscan.io/address/0xbf853295743511e8DC5F03809d209C33fC136d24"
},
{
"address": "arb1:0x356000Cec4fC967f8FC372381D983426760A0391",
"type": "EOA",
"isVerified": true,
"name": "Caldera",
"url": "https://arbiscan.io/address/0x356000Cec4fC967f8FC372381D983426760A0391"
}
],
"discoveryDrivenData": true
},
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 2/3 threshold. \n* Can interact with EspressoTEEVerifier\n * change the modular TEE verifier contracts \n* Can interact with EspressoSGXTEEVerifier\n * set the enclaveHash (hash of enclave's code and initial data) and delete all registered signers \n* Can interact with EspressoNitroTEEVerifier\n * set the enclaveHash (hash of enclave's code and initial data) and delete all registered signers ",
"accounts": [
{
"address": "arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5",
"type": "Contract",
"isVerified": true,
"name": "0x6Dc6…1dA5",
"url": "https://arbiscan.io/address/0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xb9e40b6E60CcD5361774cf4D36d1fCe66B649b63",
"type": "EOA",
"isVerified": true,
"name": "0xb9e4…9b63",
"url": "https://arbiscan.io/address/0xb9e40b6E60CcD5361774cf4D36d1fCe66B649b63"
},
{
"address": "arb1:0x5E768dd03BD821703ef825e057434De85913EEAC",
"type": "EOA",
"isVerified": true,
"name": "0x5E76…EEAC",
"url": "https://arbiscan.io/address/0x5E768dd03BD821703ef825e057434De85913EEAC"
},
{
"address": "arb1:0x00B96a8454dc757240e475B5e6e7DcAAf401930f",
"type": "EOA",
"isVerified": true,
"name": "0x00B9…930f",
"url": "https://arbiscan.io/address/0x00B96a8454dc757240e475B5e6e7DcAAf401930f"
}
],
"discoveryDrivenData": true
},
{
"id": "BlobstreamMultisig",
"name": "BlobstreamMultisig",
"description": "A Multisig with 4/6 threshold. \n* Can upgrade **with no delay**\n * ArbitrumBlobstream \n* Can interact with ArbitrumBlobstream\n * can freeze the bridge contract and update the list of authorized relayers ",
"accounts": [
{
"address": "arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997",
"type": "Contract",
"isVerified": true,
"name": "0x738a…7997",
"url": "https://arbiscan.io/address/0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0x0449689f2ce80fE45B32092e0d878ad87F0156a9",
"type": "EOA",
"isVerified": true,
"name": "0x0449…56a9",
"url": "https://arbiscan.io/address/0x0449689f2ce80fE45B32092e0d878ad87F0156a9"
},
{
"address": "arb1:0x91D456f83f4a117B07866fdEdC29306f7E974e15",
"type": "EOA",
"isVerified": true,
"name": "0x91D4…4e15",
"url": "https://arbiscan.io/address/0x91D456f83f4a117B07866fdEdC29306f7E974e15"
},
{
"address": "arb1:0x793979789Ec179183E396e76c1e241bE0c9eE899",
"type": "EOA",
"isVerified": true,
"name": "0x7939…E899",
"url": "https://arbiscan.io/address/0x793979789Ec179183E396e76c1e241bE0c9eE899"
},
{
"address": "arb1:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://arbiscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
},
{
"address": "arb1:0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0",
"type": "EOA",
"isVerified": true,
"name": "0x4587…D1b0",
"url": "https://arbiscan.io/address/0x45878fdF56B372D944c6Fc1865B7a65462f6D1b0"
},
{
"address": "arb1:0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf",
"type": "EOA",
"isVerified": true,
"name": "0x1358…7caf",
"url": "https://arbiscan.io/address/0x1358eaCFE3a7F4FEB06c0Ae722072F134bcE7caf"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayArb\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "arb1:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://arbiscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://arbiscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "arb1:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://arbiscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "arb1:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://arbiscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "arb1:0x2E5d207a4C0F7e7C52F6622DCC6EB44bC0fE1A13",
"type": "EOA",
"isVerified": true,
"name": "0x2E5d…1A13",
"url": "https://arbiscan.io/address/0x2E5d207a4C0F7e7C52F6622DCC6EB44bC0fE1A13",
"displayName": "EOA 1"
}
],
"chain": "arbitrum",
"description": "* Can upgrade **with no delay**\n * RollupProxy [via: UpgradeExecutor]\n * SequencerInbox [via: UpgradeExecutor → ProxyAdmin]\n * Inbox [via: UpgradeExecutor → ProxyAdmin]\n * ERC20Gateway [via: UpgradeExecutor → ProxyAdmin]\n * ChallengeManager [via: UpgradeExecutor → ProxyAdmin]\n * UpgradeExecutor [via: UpgradeExecutor → ProxyAdmin]\n * RollupEventInbox [via: UpgradeExecutor → ProxyAdmin]\n * GatewayRouter [via: UpgradeExecutor → ProxyAdmin]\n * Outbox [via: UpgradeExecutor → ProxyAdmin]\n * Bridge [via: UpgradeExecutor → ProxyAdmin]\n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes [via: UpgradeExecutor]",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "arb1:0x30ea093b14364f21Dd74D7Bd43e2FAB1279D3738",
"type": "EOA",
"isVerified": true,
"name": "0x30ea…3738",
"url": "https://arbiscan.io/address/0x30ea093b14364f21Dd74D7Bd43e2FAB1279D3738",
"displayName": "EOA 2"
}
],
"chain": "arbitrum",
"description": "* Can interact with SequencerInbox\n * Add/remove batchPosters (Sequencers) \n * Can submit transaction batches or commitments to the SequencerInbox contract on the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "arb1:0x152FFeF04881BD1390D2A52009f42d56EaC7AA03",
"type": "EOA",
"isVerified": true,
"name": "0x152F…AA03",
"url": "https://arbiscan.io/address/0x152FFeF04881BD1390D2A52009f42d56EaC7AA03",
"displayName": "EOA 3"
}
],
"chain": "arbitrum",
"description": "* Can interact with RollupProxy\n * Can propose new state roots (called nodes) and challenge state roots on the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "arb1:0xf37831515e1ddf6bB30eE612545bf87047946602",
"address": "arb1:0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"type": "EOA",
"isVerified": true,
"name": "0xf378…6602",
"url": "https://arbiscan.io/address/0xf37831515e1ddf6bB30eE612545bf87047946602",
"name": "0x3243…392D",
"url": "https://arbiscan.io/address/0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"displayName": "EOA 4"
},
{
"address": "arb1:0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"type": "EOA",
"isVerified": true,
"name": "0x9c0B…afDC",
"url": "https://arbiscan.io/address/0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"displayName": "EOA 5"
}
],
"chain": "arbitrum",
"description": "* Can interact with NitroEnclaveVerifier\n * set the root certificate, add/remove ZK verifier routes, update verifier and aggregator program IDs, and change the ZK coprocessor configuration ",
"description": "* Can interact with ArbitrumBlobstream\n * it is a 'Relayer' and can call commitHeaderRange() to commit block ranges. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
},
{
"id": "EOA-5-and-EOA-6",
"name": "EOA 5 and EOA 6",
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "arb1:0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"address": "arb1:0xf37831515e1ddf6bB30eE612545bf87047946602",
"type": "EOA",
"isVerified": true,
"name": "0x3243…392D",
"url": "https://arbiscan.io/address/0x3243552F3BcbcE720Db6f5ad0C1B7cd15458392D",
"displayName": "EOA 5"
},
{
"address": "arb1:0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"type": "EOA",
"isVerified": true,
"name": "0x9c0B…afDC",
"url": "https://arbiscan.io/address/0x9c0B0dBBAe8a976CEeA8C2A96F6D00c53839afDC",
"name": "0xf378…6602",
"url": "https://arbiscan.io/address/0xf37831515e1ddf6bB30eE612545bf87047946602",
"displayName": "EOA 6"
}
],
"chain": "arbitrum",
"description": "* Can interact with ArbitrumBlobstream\n * it is a 'Relayer' and can call commitHeaderRange() to commit block ranges. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"description": "* Can interact with NitroEnclaveVerifier\n * set the root certificate, add/remove ZK verifier routes, update verifier and aggregator program IDs, and change the ZK coprocessor configuration ",
"discoveryDrivenData": true
}
]
}
}
+55 -55
{
"addresses": {
"arbitrum": [
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d"
],
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xc326D023758d7D212d529D1E58D7f271CAe49fcf",
"arb1:0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **validators**: EOA 3",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x1d182075d07744D71E37f77f1654165f6DAFad08"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x79177caeDf321963EFed06E562017181B2e8aDC7"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0x645341A2C76cD94324cBA658c19Acca2297b619C"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607"
]
},
{
"timestamp": 1751386630,
"transactionHash": "0x6e4d22b6b61eeffdbd42e8fe52446bb966dd46592ba723bc43edaf1a7cc4f678",
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **batchPosterManager**: EOA 2\n * **batchPosters**: EOA 2",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x935239e066F4F449D87D600e6d7c1a4F24c50f97"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x3bD530a9a48F17052D5d3c30e7582Fcb42BdFD23"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x84c179B5651A762a81A490BA03D27997A5922EC1"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **executors**: Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x92ff91308F5f1036435f23c2F4F136Bb7475425d#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x235000876bd58336C802B3546Fc0250f285fCc79",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x2675b9DEb473ECaC13ddd71dF8A0Ef13FeF6a75D"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0xdec03E497222017550Fb83273d8FB4546eaDA625"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x235000876bd58336C802B3546Fc0250f285fCc79#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF#code"
},
{
"name": "NitroEnclaveVerifier",
"isVerified": true,
"address": "arb1:0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n* Roles:\n * **owner**: EOA 4",
"description": "ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n* Roles:\n * **owner**: EOA 6",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x59CDE86f1a538a7a2329269d3704CA302DF23736",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x59CDE86f1a538a7a2329269d3704CA302DF23736#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "arb1:0x69523d25E25e5c78d828Df90459b75F189D40Cf7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x69523d25E25e5c78d828Df90459b75F189D40Cf7#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0x7E67B50d510929610f840fb09707feA01b8E457B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7E67B50d510929610f840fb09707feA01b8E457B#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0x9676D55Ccd46ce72235b16bA645008D1D3350B14",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9676D55Ccd46ce72235b16bA645008D1D3350B14#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x9e83136d4B3AD04C766591EA51712F9aEa3194C0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9e83136d4B3AD04C766591EA51712F9aEa3194C0#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 4, EOA 5",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xD9d5C8456a168Dd25561064F47bF116111131B1D#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0xe3b13e7b160aE4b799A7B3F9877316e717706291",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe3b13e7b160aE4b799A7B3F9877316e717706291#code"
},
{
"name": "EspressoSGXTEEVerifier",
"isVerified": true,
"address": "arb1:0xEA25045bC30ceE23A280c51020F0bBb78781A297",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an Intel SGX TEE.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEA25045bC30ceE23A280c51020F0bBb78781A297#code"
},
{
"name": "EspressoNitroTEEVerifier",
"isVerified": true,
"address": "arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xF99De72165cB3A56766e118B3a20874d4A0aCa89#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 5, EOA 6",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xE1d32C985825562edAa906fAC39295370Db72195",
"sinceTimestamp": 1712019082,
"tokens": [
"MOLTEN"
],
"contract": {
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows MOLTEN sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"sinceTimestamp": 1712019098,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "Celestia Blobstream DA bridge program",
"description": "ZK-friendly implementation of Celestia Blobstream DA bridge that proves that enough Celestia validators have confirmed a given data root.",
"programUrl": "https://github.com/succinctlabs/sp1-blobstream/tree/78a9d3419339a8c60bf51e1e3241f242bc44d434/program",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct commit hash in [sp1-blobstream](https://github.com/succinctlabs/sp1-blobstream/tree/main) repo: `git checkout 78a9d3419339a8c60bf51e1e3241f242bc44d434`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-blobstream/program` dir run: `cargo prove build --docker --tag v6.1.0 --elf-name blobstream-elf --output-directory ../elf` to build the blobstream program elf within a docker container and place it in `sp1-blobstream/elf`.\n4. From `sp1-blobstream` run: `cargo run --bin vkey --release` to print the vkey of the `blobstream-elf` program.",
"hash": "0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745"
},
{
"title": "Nitro TEE Verifer",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/8607619cc620a93d029a9569bccf752f341aad99/crates/sp1-methods/sp1-verifier",
"description": "Verifies correctness of a single TEE attestation for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`\n2. Make sure SP1 v6.1.0 is active: `sp1up -v 6.1.0` (must match the workspace `sp1-sdk = \"^6.1.0\"` dependency)\n3. Install docker [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [automata-network/aws-nitro-enclave-attestation](https://github.com/automata-network/aws-nitro-enclave-attestation/tree/feat/reproducible_build) repo: `git checkout feat/reproducible_build`. Commit hash should be `8607619cc620a93d029a9569bccf752f341aad99`.\n2. Make sure docker is running by running `docker ps`.\n3. From the repo root: `cargo clean -p sp1-methods` to clear any stale build artifacts.\n4. From the repo root run: `REPRODUCIBLE_BUILD=docker cargo run --release -p nitro-attest-cli --no-default-features --features sp1 -- program-id --sp1`. The `REPRODUCIBLE_BUILD=docker` env var triggers the SP1 docker reproducible rebuild of `sp1-verifier` and `sp1-aggregator` ELFs (replacing `USE_DOCKER=1` used on older branches). The CLI then prints `Verifier ID`, `Verifier Proof ID`, and `Aggregator ID`.",
"hash": "0x00643c7149cf335e7ec9d3f3301e69658a7f0ef2bc7546509c257ed8809f28e1"
},
{
"title": "Nitro TEE Aggregated Verifer",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/8607619cc620a93d029a9569bccf752f341aad99/crates/sp1-methods/sp1-aggregator",
"description": "Verifies correctness of several aggregated TEE attestations for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`\n2. Make sure SP1 v6.1.0 is active: `sp1up -v 6.1.0` (must match the workspace `sp1-sdk = \"^6.1.0\"` dependency)\n3. Install docker [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [automata-network/aws-nitro-enclave-attestation](https://github.com/automata-network/aws-nitro-enclave-attestation/tree/feat/reproducible_build) repo: `git checkout feat/reproducible_build`. Commit hash should be `8607619cc620a93d029a9569bccf752f341aad99`.\n2. Make sure docker is running by running `docker ps`.\n3. From the repo root: `cargo clean -p sp1-methods` to clear any stale build artifacts.\n4. From the repo root run: `REPRODUCIBLE_BUILD=docker cargo run --release -p nitro-attest-cli --no-default-features --features sp1 -- program-id --sp1`. The `REPRODUCIBLE_BUILD=docker` env var triggers the SP1 docker reproducible rebuild of `sp1-verifier` and `sp1-aggregator` ELFs (replacing `USE_DOCKER=1` used on older branches). The CLI then prints `Verifier ID`, `Verifier Proof ID`, and `Aggregator ID`.",
"hash": "0x00294928e44f0cdc9c74848c4cafcdb29f733a3bc07408c240be3d5afe750b3e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
]
}
+14 -0
[
{
"id": "9409cf5f",
"date": "Tue, 13 Oct 2026 07:13:27 GMT",
"timestamp": 1782746641,
"description": "Blobstream contracts are now discovered here instead of referenced from the blobstream project, which was removed with the rest of the alt-DA projects.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract BlobstreamMultisig (arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "11029dcd",
"date": "Mon, 29 Jun 2026 15:29:07 GMT",
"timestamp": 1782746641,
"description": "Caldera Multisig 1 (shared with blessnet, inevm, rari): member rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"arb1:0xEC114946E7213d113c9B9481028271B5E9e09371\"\n+ \"arb1:0xFcB26a1DbFafF84b91f1b7D9026DA63007b88D3c\"\n }\n```"
}
]
},
{
"id": "3eeceb75",
"date": "Fri, 05 Jun 2026 10:11:37 GMT",
"timestamp": 1780654176,
"description": "Molten changed to reproducible TEE verification SP1 programs, also upgraded to SP1 v6.1.0.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract NitroEnclaveVerifier (arb1:0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22) [espresso/Sequencing/NitroEnclaveVerifier] {\n +++ description: ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n values.succintZkConfig.verifierId:\n- \"0x00e874289e8c7f42381b6220f438801d2d1478dc8230f866a31e5ceec6e93322\"\n+ \"0x00643c7149cf335e7ec9d3f3301e69658a7f0ef2bc7546509c257ed8809f28e1\"\n values.succintZkConfig.aggregatorId:\n- \"0x002bb66c60302a81a621d7899e3f6ee1d0db9fb1eae5d1e80e94a33cb1e24922\"\n+ \"0x00294928e44f0cdc9c74848c4cafcdb29f733a3bc07408c240be3d5afe750b3e\"\n values.succintZkConfig.zkVerifier:\n- \"arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D\"\n+ \"arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D) [succinct/SP1Verifier]\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D) [succinct/SP1Verifier]\n +++ description: Verifier contract for SP1 proofs (v6.1.0).\n```"
}
]
},
{
"id": "32bba9fc",
"date": "Tue, 19 May 2026 13:56:37 GMT",
"timestamp": 1779198858,
"description": "Caldera Multisig 1 signer removed. Included even though the project is archived (#11869) because it still appears on the discovery status dashboard.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"arb1:0xbCDb12b7a5bDe037e342a6BE7fd5582b9D93C232\"\n values.multisigThreshold:\n- \"3 of 8 (38%)\"\n+ \"3 of 7 (43%)\"\n }\n```"
}
]
},
{
"id": "aa8dcc5c",
"date": "Fri, 08 May 2026 09:37:24 GMT",
"timestamp": 1778232916,
"description": "Shared SafeL2 (`arb1:0x6Dc61D9E...`) — signer `0x5582a8A4` removed. Threshold unchanged at 2; total signers 4 → 3 (50% → 67%). Same shared multisig change observed on `apechain`, `appchain`, `rari`.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"arb1:0x5582a8A4f2B04341697cEA4Cf4289a01814C26e6\"\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"2 of 3 (67%)\"\n }\n```"
}
]
},
{
"id": "849d35c8",
"date": "Tue, 14 Apr 2026 10:18:02 GMT",
"timestamp": 1776085185,
"description": "Espresso TEE verification architecture changed: AWS Nitro enclave attestations are now verified via ZK proofs (RiscZero or Succinct SP1) instead of on-chain X.509 certificate chain validation.\n\n- Old EspressoNitroTEEVerifier (0xf55BeB) + CertManager (0x1A484E) deleted. CertManager previously validated AWS Nitro cert chains in Solidity - expensive gas cost.\n- New EspressoNitroTEEVerifier (0xF99De7) delegates attestation verification to a new NitroEnclaveVerifier (0x0d4cD6) that accepts ZK proofs of off-chain attestation validation. Currently EspressoNitroTEEVerifier only works with Succinct SP1 Turbo proofs, however RiscZero and Pico proofs could easily be supported as well.\n- New NitroEnclaveVerifier (0x0d4cD6) manages zk verifier contracts and allowed program ids, currently only for SP1.\n- EspressoTEEVerifier (0x7A7E3B, unchanged) now points to the new NitroTEEVerifier.\n- SafeL2 lost the interact permission on the old verifier (no longer exists).\n\nSecurity implications: same TEE trust model (AWS Nitro), but adds trust in the ZK verifier (RiscZero/Succinct/Pico) and configured program IDs. Owner of EspressoNitroTEEVerifier can still register signers and set valid enclave hashes.\n\nEspressoNitroTEEVerifier: [diff](https://disco.l2beat.com/diff/arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5/arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89)",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.sequencerVersion:\n- \"0x88\"\n+ \"0x00\"\n }\n```\n\n```diff\n- Status: DELETED\n contract CertManager (arb1:0x1A484E3f74984d29EBC39909535D45896502a3E7)\n +++ description: None\n```\n\n```diff\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5) {\n +++ description: None\n receivedPermissions.2.from:\n- \"arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5\"\n+ \"arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89\"\n }\n```\n\n```diff\n contract EspressoTEEVerifier (arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3) {\n +++ description: TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n+++ severity: HIGH\n values.espressoNitroTEEVerifier:\n- \"arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5\"\n+ \"arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89\"\n }\n```\n\n```diff\n- Status: DELETED\n contract EspressoNitroTEEVerifier (arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5)\n +++ description: Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n```\n\n```diff\n+ Status: CREATED\n contract NitroEnclaveVerifier (arb1:0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22)\n +++ description: ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract EspressoNitroTEEVerifier (arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89)\n +++ description: Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n```"
}
]
},
{
"id": "acc9e597",
"date": "Mon, 23 Feb 2026 14:42:18 GMT",
"timestamp": 1771857555,
"description": "Caldera signer rotation on Caldera Multisig 1: signer 0xc454... removed, signer 0xbCDb... added. Total signers unchanged at 8, threshold unchanged at \"3 of 8 (38%)\".",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xbCDb12b7a5bDe037e342a6BE7fd5582b9D93C232\"\n values.$members.3:\n- \"arb1:0xc4548687682246e5B6ee8f914635c9f47836eDFe\"\n }\n```"
}
]
},
{
"id": "0e0ac2c9",
"date": "Tue, 10 Feb 2026 15:13:07 GMT",
"timestamp": 1770736057,
"description": "New member added to the SafeL2 multisig, threshold changed from 2 of 3 to 2 of 4.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xb9e40b6E60CcD5361774cf4D36d1fCe66B649b63\"\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"2 of 4 (50%)\"\n }\n```"
}
]
},
{
"id": "6849dc50",
"date": "Thu, 05 Feb 2026 22:19:51 GMT",
"timestamp": 1770329874,
"description": "Espresso TEE verifier ownership transfer: all three Espresso TEE verifier contracts (EspressoTEEVerifier, EspressoSGXTEEVerifier, EspressoNitroTEEVerifier) transferred ownership from an EOA (`0x8Cde...4e55`) to a new 2-of-3 Gnosis Safe multisig (`0x6Dc6...2f11`). This improves the security of TEE attestation management.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EspressoTEEVerifier (arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3) {\n +++ description: TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n+++ severity: HIGH\n values.owner:\n- \"arb1:0x8Cde072E84932857262648C100d0A2227c495a55\"\n+ \"arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5\"\n }\n```\n\n```diff\n contract EspressoSGXTEEVerifier (arb1:0xEA25045bC30ceE23A280c51020F0bBb78781A297) {\n +++ description: Verifies attestations of an Intel SGX TEE.\n+++ severity: HIGH\n values.owner:\n- \"arb1:0x8Cde072E84932857262648C100d0A2227c495a55\"\n+ \"arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5\"\n }\n```\n\n```diff\n contract EspressoNitroTEEVerifier (arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5) {\n +++ description: Verifies attestations of an AWS Nitro TEE.\n+++ severity: HIGH\n values.owner:\n- \"arb1:0x8Cde072E84932857262648C100d0A2227c495a55\"\n+ \"arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5)\n +++ description: None\n```"
}
]
},
{
"id": "5926a1e0",
"date": "Wed, 10 Dec 2025 12:17:17 GMT",
"timestamp": 1765368962,
"description": "Added EOA to manage permissions (in addition to Caldera multisig).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UpgradeExecutor (arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d) {\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"arb1:0x2E5d207a4C0F7e7C52F6622DCC6EB44bC0fE1A13\"\n values.executors.1:\n+ \"arb1:0x2E5d207a4C0F7e7C52F6622DCC6EB44bC0fE1A13\"\n }\n```"
}
]
},
{
"id": "904c7410",
"date": "Wed, 19 Nov 2025 12:21:38 GMT",
"timestamp": 1763554833,
"description": "Posting to DAC for a long time.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.sequencerVersion:\n- \"0x63\"\n+ \"0x88\"\n }\n```"
}
]
},
{
"id": "c5bdaa85",
"date": "Wed, 12 Nov 2025 13:26:45 GMT",
"timestamp": 1762953905,
"description": "Discovery to fix sequencerVersion.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.sequencerVersion:\n- \"0x88\"\n+ \"0x63\"\n }\n```"
}
]
},
{
"id": "e0919706",
"date": "Tue, 11 Nov 2025 17:07:40 GMT",
"timestamp": 1762880768,
"description": "Caldera multisig decreased threshold.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.sequencerVersion:\n- \"0x63\"\n+ \"0x88\"\n }\n```\n\n```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.7:\n- \"arb1:0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.multisigThreshold:\n- \"3 of 9 (33%)\"\n+ \"3 of 8 (38%)\"\n }\n```"
}
]
},
{
"id": "5f3ea02e",
"date": "Fri, 10 Oct 2025 09:26:23 GMT",
"timestamp": 1760088316,
"description": "Member added to multisig.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xe5219fe14E2FD520Ff80be036790913053d1575d\"\n values.$members.1:\n+ \"arb1:0x62ea938a30826c8794C8B8BbA775B91cAE3B849A\"\n values.$members.1:\n- \"arb1:0x2F2d46D3dD36c8d1ae2Cb81c0cD2c05C68DBA675\"\n values.multisigThreshold:\n- \"3 of 8 (38%)\"\n+ \"3 of 9 (33%)\"\n }\n```"
}
]
},
{
"id": "5dfa2f3e",
"date": "Fri, 03 Oct 2025 08:53:19 GMT",
"timestamp": 1759481488,
"description": "Member added to multisig.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x9e14B1baFCEB80B67934aBE4fB00a7291aCfBcD0\"\n values.multisigThreshold:\n- \"3 of 7 (43%)\"\n+ \"3 of 8 (38%)\"\n }\n```"
}
]
},
{
"id": "98d4aaa4",
"date": "Fri, 12 Sep 2025 13:19:30 GMT",
"timestamp": 1757683093,
"description": "Updated mr_enclave value of TEE (hash of code, data, config).",
"isHighSeverity": true,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EspressoNitroTEEVerifier (arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5) {\n +++ description: Verifies attestations of an AWS Nitro TEE.\n+++ severity: HIGH\n values.validEnclaveHashes.0:\n+ \"0x1c3ae8f1497acbbf16ed7a4ef443e1b07661a61ddb0eba88fa0bc99d11a2087d\"\n+++ severity: HIGH\n values.validEnclaveHashes.1:\n+ \"0x9eb3d53ae19ac862d456ee169c8de9f310a97e29079c38daf4c676ba4608cbd0\"\n }\n```"
}
]
},
{
"id": "0158bea0",
"date": "Tue, 22 Jul 2025 16:17:11 GMT",
"timestamp": 1753201031,
"description": "Caldera MS signers added.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x2F2d46D3dD36c8d1ae2Cb81c0cD2c05C68DBA675\"\n values.$members.1:\n+ \"arb1:0xc4548687682246e5B6ee8f914635c9f47836eDFe\"\n values.$members.2:\n+ \"arb1:0xe62a4A1e6D237d6fc40d88F819D5cE580a996A6b\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 7 (43%)\"\n }\n```"
}
]
},
{
"id": "f5910576",
"date": "Mon, 14 Jul 2025 12:44:18 GMT",
"timestamp": 1752497058,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 23,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract RollupProxy (0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0)\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2)\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n```\n\n```diff\n+ Status: CREATED\n contract CertManager (0x1A484E3f74984d29EBC39909535D45896502a3E7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x235000876bd58336C802B3546Fc0250f285fCc79)\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x59CDE86f1a538a7a2329269d3704CA302DF23736)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Gateway (0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80)\n +++ description: Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n```\n\n```diff\n+ Status: CREATED\n contract QuoteVerifier (0x69523d25E25e5c78d828Df90459b75F189D40Cf7)\n +++ description: The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (arb1:0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n```\n\n```diff\n+ Status: CREATED\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EspressoTEEVerifier (0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3)\n +++ description: TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n```\n\n```diff\n+ Status: CREATED\n contract ChallengeManager (0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1)\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x7E67B50d510929610f840fb09707feA01b8E457B)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0x92ff91308F5f1036435f23c2F4F136Bb7475425d)\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n```\n\n```diff\n+ Status: CREATED\n contract RollupEventInbox (0x9676D55Ccd46ce72235b16bA645008D1D3350B14)\n +++ description: Helper contract sending configuration data over the bridge during the systems initialization.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x9e83136d4B3AD04C766591EA51712F9aEa3194C0)\n +++ description: This contract implements view only utilities for validators.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayRouter (0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF)\n +++ description: This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B)\n +++ description: Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0xE1d32C985825562edAa906fAC39295370Db72195)\n +++ description: Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0xe3b13e7b160aE4b799A7B3F9877316e717706291)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoSGXTEEVerifier (0xEA25045bC30ceE23A280c51020F0bBb78781A297)\n +++ description: Verifies attestations of an Intel SGX TEE.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoNitroTEEVerifier (0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5)\n +++ description: Verifies attestations of an AWS Nitro TEE.\n```"
}
]
},
{
"id": "325e4fb3",
"date": "Wed, 09 Jul 2025 15:59:47 GMT",
"timestamp": 1752076787,
"description": "There were many discovered updates of validEnclaveHashes and registeredSigners, ignored in watch mode for now although they should be able to update them less often imo.\n\nquoteVerifier is now source-available and matches an existing template.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract QuoteVerifier (0x69523d25E25e5c78d828Df90459b75F189D40Cf7) {\n +++ description: The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n unverified:\n- true\n values.P256_VERIFIER:\n+ \"0x0000000000000000000000000000000000000100\"\n values.pccsRouter:\n+ \"0x0d089B3fA00CBAD0a5098025519e9e4620622acF\"\n values.quoteVersion:\n+ 3\n implementationNames.0x69523d25E25e5c78d828Df90459b75F189D40Cf7:\n- \"\"\n+ \"V3QuoteVerifier\"\n template:\n+ \"espresso/Sequencing/QuoteVerifier\"\n sourceHashes:\n+ [\"0x2ce21f391e19a4d7b963b79fced06804cb79a44416a35e9e11b229a9a6957b2e\"]\n description:\n+ \"The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\"\n }\n```"
}
]
},
{
"id": "c394551d",
"date": "Tue, 08 Jul 2025 14:25:15 GMT",
"timestamp": 1751984715,
"description": "upgrade which adds a celestia + blobstream integration (celestia nitro 3.2.1) with standard contracts and an espresso integration with new contracts.\n\n[SequencerInbox](https://disco.l2beat.com/diff/arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC/arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d): \n- replace the 'quote' (tee signature) with espressoMetadata consisting of (hotshotHeight, signature, teeType)\n- add TEE verification support for blobs `addSequencerL2BatchFromBlobs()` (not supported on arb obv)\n\nEspressoTEEVerifier([new](https://flat.l2beat.com/address/arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3)):\n- gateway contract in front of the 2 different TEE verifiers\n- instead of attestations for every sig verification, registerSigner() allows to register an ephemeral signer with an attestation from the TEE. subsequent signatures can then be trivially verified to have come from that ephemeral signer inside the TEE without a formal TEE attestation.\n\n[EspressoSGXTEEVerifier](https://disco.l2beat.com/diff/arb1:0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb/arb1:0xEA25045bC30ceE23A280c51020F0bBb78781A297):\n- was prev named EspressoTEEVerifier (cp Rari deployment)\n- rename mrEnclave -> enclaveHash, mrSigner -> signature\n- support for new `registerSigner()`\n- UNVERIFIED [quoteVerifier contract](https://arbiscan.io/address/0x69523d25E25e5c78d828Df90459b75F189D40Cf7)\n\nEspressoNitroTEEVerifier([new](https://flat.l2beat.com/address/arb1:0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5)):\n- new contract with a similar usecase but vastly different source code to the SGX verifier, supposed to allow verifying AWS Nitro attestations (Amazon TEE) apparently based on https://github.com/base/nitro-validator\n- currently not used by molten",
"isHighSeverity": true,
"changeCount": 18,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n template:\n- \"orbitstack/SequencerInbox\"\n+ \"orbitstack/SequencerInbox_Celestia_Espresso\"\n sourceHashes.1:\n- \"0x4030f12794a5a07697b98400d423a426b39fd6f2320b39ee377d700d4fafdc58\"\n+ \"0xcdaa3b1ff5e1273f61b232e8a628be7cb2d01589513ea173153802912905243c\"\n description:\n- \"A sequencer (registered in this contract) can submit transaction batches or commitments here.\"\n+ \"The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\"\n values.$implementation:\n- \"0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607\"\n+ \"0x481863c96f949F5E13932ec2F65470C0CF83808d\"\n values.$pastUpgrades.4:\n+ [\"2025-07-01T16:17:10.000Z\",\"0x6e4d22b6b61eeffdbd42e8fe52446bb966dd46592ba723bc43edaf1a7cc4f678\",[\"0x481863c96f949F5E13932ec2F65470C0CF83808d\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.batchPosterManager:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x30ea093b14364f21Dd74D7Bd43e2FAB1279D3738\"\n values.batchPosters.0:\n- \"0x451f05C41BC5CC10d7D63ed88bA0A522FE183074\"\n+ \"0x30ea093b14364f21Dd74D7Bd43e2FAB1279D3738\"\n values.setIsBatchPosterCount:\n- 1\n+ 3\n values.BLOBSTREAM:\n+ \"0xa8973BDEf20fe4112C920582938EF2F022C911f5\"\n values.espressoTEEVerifier:\n+ \"0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3\"\n implementationNames.0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607:\n- \"SequencerInbox\"\n implementationNames.0x481863c96f949F5E13932ec2F65470C0CF83808d:\n+ \"SequencerInbox\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract CertManager (0x1A484E3f74984d29EBC39909535D45896502a3E7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract QuoteVerifier (0x69523d25E25e5c78d828Df90459b75F189D40Cf7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EspressoTEEVerifier (0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3)\n +++ description: TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoSGXTEEVerifier (0xEA25045bC30ceE23A280c51020F0bBb78781A297)\n +++ description: Verifies attestations of an Intel SGX TEE.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoNitroTEEVerifier (0xf55BeB891B11084B923F3Fc8e6221Db1Ca61B7f5)\n +++ description: Verifies attestations of an AWS Nitro TEE.\n```"
}
]
},
{
"id": "21c8bba7",
"date": "Tue, 01 Jul 2025 12:12:41 GMT",
"timestamp": 1751371961,
"description": "caldera MS signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n- \"0xD61640d06dC7A61C46d9515680b4DDd2AC51E9A9\"\n+ \"0xEC114946E7213d113c9B9481028271B5E9e09371\"\n }\n```"
}
]
},
{
"id": "07896751",
"date": "Fri, 09 May 2025 12:18:34 GMT",
"timestamp": 1746793114,
"description": "blobstream hostIO now verified!",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract OneStepProverHostIo (0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8) {\n +++ description: None\n unverified:\n- true\n description:\n- \"One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\"\n values.BLOBSTREAM:\n+ \"0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794\"\n values.CELESTIA_MESSAGE_HEADER_FLAG:\n+ \"0x63\"\n implementationNames.0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8:\n- \"\"\n+ \"OneStepProverHostIo\"\n sourceHashes:\n+ [\"0xd8aa733150471ae7c5f80c9da64d49d363b060d6a993934483a9c749033b3678\"]\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n```"
}
]
},
{
"id": "5fb8e39c",
"date": "Thu, 08 May 2025 08:45:56 GMT",
"timestamp": 1746693956,
"description": "Upgrade to Celestia Nitro 3.2.1 with blobstream integration and unverified HostIo.",
"isHighSeverity": true,
"changeCount": 34,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract OneStepProver0 (0x0a64A865D06bcbB7840037bE481144101d266580)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract RollupProxy (0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v32 wasmModuleRoot\"\n+ \"Celestia Nitro 3.2.1 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n+ \"0xe81f986823a85105c5fd91bb53b4493d38c0c26652d23f76a7405ac889908287\"\n }\n```\n\n```diff\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.0:\n- \"0x6bb86ac4bd0d31e049f543fcf0a8f94c952252222f115246ef9d5b8104d803cc\"\n+ \"0x4030f12794a5a07697b98400d423a426b39fd6f2320b39ee377d700d4fafdc58\"\n values.$implementation:\n- \"0x645341A2C76cD94324cBA658c19Acca2297b619C\"\n+ \"0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607\"\n values.$pastUpgrades.3:\n+ [\"2024-11-13T04:34:48.000Z\",\"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\",[\"0x79177caeDf321963EFed06E562017181B2e8aDC7\"]]\n values.$pastUpgrades.2.2:\n- [\"0x79177caeDf321963EFed06E562017181B2e8aDC7\"]\n+ \"0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8\"\n values.$pastUpgrades.2.1:\n- \"2024-11-13T04:34:48.000Z\"\n+ \"2025-05-07T20:20:59.000Z\"\n values.$pastUpgrades.2.0:\n- \"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\"\n+ [\"0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607\"]\n values.$upgradeCount:\n- 3\n+ 4\n values.sequencerVersion:\n- \"0x88\"\n+ \"0x63\"\n values.CELESTIA_MESSAGE_HEADER_FLAG:\n+ \"0x63\"\n implementationNames.0x645341A2C76cD94324cBA658c19Acca2297b619C:\n- \"SequencerInbox\"\n implementationNames.0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607:\n+ \"SequencerInbox\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0x123AC1bECf24be86Fe2426F32b8e65e39eE73071)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0x16a287aAeA20b936103dd3C1Af970556A1a2B3F0)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract Inbox (0x235000876bd58336C802B3546Fc0250f285fCc79) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n values.$implementation:\n- \"0xdec03E497222017550Fb83273d8FB4546eaDA625\"\n+ \"0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76\"\n values.$pastUpgrades.2:\n+ [\"2025-05-07T20:20:59.000Z\",\"0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8\",[\"0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76\"]]\n values.$upgradeCount:\n- 2\n+ 3\n implementationNames.0xdec03E497222017550Fb83273d8FB4546eaDA625:\n- \"ERC20Inbox\"\n implementationNames.0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76:\n+ \"ERC20Inbox\"\n }\n```\n\n```diff\n contract ChallengeManager (0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n values.$implementation:\n- \"0x84c179B5651A762a81A490BA03D27997A5922EC1\"\n+ \"0x0686dc9F334F8C0f0a9646f48775aa002757AFFE\"\n values.$pastUpgrades.3:\n+ [\"2025-05-07T20:20:59.000Z\",\"0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8\",[\"0x0686dc9F334F8C0f0a9646f48775aa002757AFFE\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.osp:\n- \"0x82f0eB3D277d4f67c3624b76ebD857e9dccE2b29\"\n+ \"0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f\"\n implementationNames.0x84c179B5651A762a81A490BA03D27997A5922EC1:\n- \"ChallengeManager\"\n implementationNames.0x0686dc9F334F8C0f0a9646f48775aa002757AFFE:\n+ \"ChallengeManager\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0x82f0eB3D277d4f67c3624b76ebD857e9dccE2b29)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xC180876F40Bd889f1AC598B0DBD9c3eA87040a03)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x59CDE86f1a538a7a2329269d3704CA302DF23736)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x7E67B50d510929610f840fb09707feA01b8E457B)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0xe3b13e7b160aE4b799A7B3F9877316e717706291)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "a37619e8",
"date": "Tue, 06 May 2025 12:56:28 GMT",
"timestamp": 1746536188,
"description": "Upgrade to standard orbit stack contracts.",
"isHighSeverity": true,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.0:\n- \"0x50cf57b01499408fa99da27cf0fee96ec30f0d40667d1aa090c442bc80f0636b\"\n+ \"0x6bb86ac4bd0d31e049f543fcf0a8f94c952252222f115246ef9d5b8104d803cc\"\n values.$implementation:\n- \"0x79177caeDf321963EFed06E562017181B2e8aDC7\"\n+ \"0x645341A2C76cD94324cBA658c19Acca2297b619C\"\n values.$pastUpgrades.2:\n+ [\"2024-11-13T04:34:48.000Z\",\"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\",[\"0x79177caeDf321963EFed06E562017181B2e8aDC7\"]]\n values.$pastUpgrades.1.2:\n- [\"0x79177caeDf321963EFed06E562017181B2e8aDC7\"]\n+ \"0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377\"\n values.$pastUpgrades.1.1:\n- \"2024-11-13T04:34:48.000Z\"\n+ \"2025-05-05T16:52:06.000Z\"\n values.$pastUpgrades.1.0:\n- \"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\"\n+ [\"0x645341A2C76cD94324cBA658c19Acca2297b619C\"]\n values.$upgradeCount:\n- 2\n+ 3\n }\n```\n\n```diff\n contract Inbox (0x235000876bd58336C802B3546Fc0250f285fCc79) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n sourceHashes.0:\n- \"0xcb390b491549387c8fcc09fb22fbea7adf54cc74b7247a0c738369ddd7049b92\"\n+ \"0x25984fdfffb8141859c99299fb29e7a7460732d77111e5fe23792baa99f336a3\"\n values.$implementation:\n- \"0x2675b9DEb473ECaC13ddd71dF8A0Ef13FeF6a75D\"\n+ \"0xdec03E497222017550Fb83273d8FB4546eaDA625\"\n values.$pastUpgrades.1:\n+ [\"2025-05-05T16:52:06.000Z\",\"0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377\",[\"0xdec03E497222017550Fb83273d8FB4546eaDA625\"]]\n values.$upgradeCount:\n- 1\n+ 2\n }\n```"
}
]
},
{
"id": "1dcb9c58",
"date": "Fri, 25 Apr 2025 13:59:33 GMT",
"timestamp": 1745589573,
"description": "Upgrade to known bridge implementation with minimal changes.",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Bridge (0xE1d32C985825562edAa906fAC39295370Db72195) {\n +++ description: Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n sourceHashes.0:\n- \"0xc138999c828d091534e4fea5f3730160aa2a6366cea16b82a55b9c8de07670df\"\n+ \"0x32c73666d391a33c17183e4ab20bcb0f2b925d8a99da436d2ff99c13f403e289\"\n values.$implementation:\n- \"0xC5Db571093C4600559e239497d147476F7543b15\"\n+ \"0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1\"\n values.$pastUpgrades.1:\n+ [\"2024-04-02T00:51:22.000Z\",\"0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da\",[\"0xC5Db571093C4600559e239497d147476F7543b15\"]]\n values.$pastUpgrades.0.2:\n- [\"0xC5Db571093C4600559e239497d147476F7543b15\"]\n+ \"0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726\"\n values.$pastUpgrades.0.1:\n- \"2024-04-02T00:51:22.000Z\"\n+ [\"0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1\"]\n values.$pastUpgrades.0.0:\n- \"0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da\"\n+ \"2025-04-24T21:43:55.000Z\"\n values.$upgradeCount:\n- 1\n+ 2\n values.nativeTokenDecimals:\n+ 18\n }\n```"
}
]
},
{
"id": "e1c523be",
"date": "Mon, 18 Nov 2024 16:55:49 GMT",
"timestamp": 1731948949,
"description": "Caldera MS member removed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.4:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.3:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "499a767b",
"date": "Thu, 14 Nov 2024 07:08:55 GMT",
"timestamp": 1731568135,
"description": "Standard ArbOS 32 upgrade (fastconfirmer not set) and discodriven data.",
"isHighSeverity": true,
"changeCount": 58,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract OneStepProverMemory (0x0aE035b3aAFFd8419d043920635Fe9CAdf179615)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract RollupProxy (0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n template:\n- \"orbitstack/RollupProxy\"\n+ \"orbitstack/RollupProxy_fastConfirm\"\n sourceHashes.2:\n- \"0xef94a66bd5339efd18fb9ca1f8031482e7ef7bbe6c5a0a10fae254ab83712406\"\n+ \"0x7ee21b18b2e18c636bfafc08ff72692cc43302b2599ba75f0abad67282866dd5\"\n sourceHashes.1:\n- \"0x8b48118fe606012c0dcac2ccc1821785935aec89fab8f219f47b32c482b0017e\"\n+ \"0x9349e73cbc2d2b818c1d79711574ba210b56249d8d3845bc78c776caf8f8ff42\"\n issuedPermissions.1.target:\n- \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n+ \"0x0000000000000000000000000000000000000000\"\n issuedPermissions.1.via.0:\n- {\"address\":\"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\",\"delay\":0,\"description\":\"can pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"}\n values.$implementation.1:\n- \"0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07\"\n+ \"0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd\"\n values.$implementation.0:\n- \"0xc326D023758d7D212d529D1E58D7f271CAe49fcf\"\n+ \"0x4f82B5de97Ad3690ee319878083503178Fd8E0B9\"\n values.$pastUpgrades.1:\n+ [\"2024-11-13T06:54:44.000Z\",\"0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af\",[\"0x4f82B5de97Ad3690ee319878083503178Fd8E0B9\",\"0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v11.1 wasmModuleRoot\"\n+ \"ArbOS v32 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x68e4fe5023f792d4ef584796c84d710303a5e12ea02d6e37e2b5e9c4332507c4\"\n+ \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n values.anyTrustFastConfirmer:\n+ \"0x0000000000000000000000000000000000000000\"\n fieldMeta.minimumAssertionPeriod:\n+ {\"description\":\"Minimum time delta between newly created nodes (stateUpdates). This is checked on `stakeOnNewNode()`. Format is number of ETHEREUM blocks, even for L3s. \"}\n }\n```\n\n```diff\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.1:\n- \"0x08792f333db7e8a060c38033f92e3fc10c30e2648c56fc49c7460ee1c94343a0\"\n+ \"0x50cf57b01499408fa99da27cf0fee96ec30f0d40667d1aa090c442bc80f0636b\"\n values.$implementation:\n- \"0x1d182075d07744D71E37f77f1654165f6DAFad08\"\n+ \"0x79177caeDf321963EFed06E562017181B2e8aDC7\"\n values.$pastUpgrades.1:\n+ [\"2024-11-13T04:34:48.000Z\",\"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\",[\"0x79177caeDf321963EFed06E562017181B2e8aDC7\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.batchPosterManager:\n+ \"0x0000000000000000000000000000000000000000\"\n values.BROTLI_MESSAGE_HEADER_FLAG:\n+ \"0x00\"\n values.DAS_MESSAGE_HEADER_FLAG:\n+ \"0x80\"\n values.DATA_BLOB_HEADER_FLAG:\n+ \"0x50\"\n values.isUsingFeeToken:\n+ true\n values.reader4844:\n+ \"0x0000000000000000000000000000000000000000\"\n values.TREE_DAS_MESSAGE_HEADER_FLAG:\n+ \"0x08\"\n values.ZERO_HEAVY_MESSAGE_HEADER_FLAG:\n+ \"0x20\"\n }\n```\n\n```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"target\":\"0xE1d32C985825562edAa906fAC39295370Db72195\",\"via\":[{\"address\":\"0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238\"},{\"address\":\"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\"}]}\n receivedPermissions.9.target:\n- \"0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B\"\n+ \"0xE1d32C985825562edAa906fAC39295370Db72195\"\n receivedPermissions.8.target:\n- \"0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF\"\n+ \"0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B\"\n receivedPermissions.7.target:\n- \"0x9676D55Ccd46ce72235b16bA645008D1D3350B14\"\n+ \"0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF\"\n receivedPermissions.6.target:\n- \"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\"\n+ \"0x9676D55Ccd46ce72235b16bA645008D1D3350B14\"\n receivedPermissions.5.target:\n- \"0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1\"\n+ \"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\"\n receivedPermissions.4.target:\n- \"0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80\"\n+ \"0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1\"\n receivedPermissions.3.target:\n- \"0x235000876bd58336C802B3546Fc0250f285fCc79\"\n+ \"0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80\"\n receivedPermissions.2.target:\n- \"0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2\"\n+ \"0x235000876bd58336C802B3546Fc0250f285fCc79\"\n receivedPermissions.1.target:\n- \"0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0\"\n+ \"0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2\"\n receivedPermissions.1.via.1:\n+ {\"address\":\"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\"}\n receivedPermissions.1.via.0.address:\n- \"0x92ff91308F5f1036435f23c2F4F136Bb7475425d\"\n+ \"0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238\"\n receivedPermissions.0.permission:\n- \"configure\"\n+ \"upgrade\"\n receivedPermissions.0.description:\n- \"can pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n }\n```\n\n```diff\n contract ChallengeManager (0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n sourceHashes.1:\n- \"0x7e1cd1e10119e118ffaa576ddbe1c0f9810a0859a4bf2f65a4ff596c0ed4183d\"\n+ \"0x1a095768302d7d1c3d02375eaa3341833b4f1aaac707e1c608bce478c87cbf27\"\n values.$implementation:\n- \"0x935239e066F4F449D87D600e6d7c1a4F24c50f97\"\n+ \"0x84c179B5651A762a81A490BA03D27997A5922EC1\"\n values.$pastUpgrades.2:\n+ [\"2024-11-13T06:54:44.000Z\",\"0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af\",[\"0x84c179B5651A762a81A490BA03D27997A5922EC1\"]]\n values.$pastUpgrades.1:\n+ [\"2024-11-13T04:34:48.000Z\",\"0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab\",[\"0x3bD530a9a48F17052D5d3c30e7582Fcb42BdFD23\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.osp:\n- \"0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4\"\n+ \"0x82f0eB3D277d4f67c3624b76ebD857e9dccE2b29\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0x8D90460169D34d34a441F765A246a3C7f54C77C1)\n +++ description: None\n```\n\n```diff\n contract UpgradeExecutor (0x92ff91308F5f1036435f23c2F4F136Bb7475425d) {\n +++ description: Central contract defining the access control for upgrading the system contract implementations.\n directlyReceivedPermissions.2:\n- {\"permission\":\"upgrade\",\"target\":\"0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0\"}\n directlyReceivedPermissions.1.permission:\n- \"configure\"\n+ \"upgrade\"\n directlyReceivedPermissions.1.description:\n- \"can pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0xd49141eB2c63D210b70542D6CE8453b049aab03A)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xF07A4a947E1ca7B9e46D99Dbe625C30f5b60C706)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x0a64A865D06bcbB7840037bE481144101d266580)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x123AC1bECf24be86Fe2426F32b8e65e39eE73071)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x16a287aAeA20b936103dd3C1Af970556A1a2B3F0)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x82f0eB3D277d4f67c3624b76ebD857e9dccE2b29)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xC180876F40Bd889f1AC598B0DBD9c3eA87040a03)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "54115c6b",
"date": "Thu, 10 Oct 2024 09:43:54 GMT",
"timestamp": 1728553434,
"description": "Signer changes in Caldera MS.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.4:\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.3:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n+ \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n values.$members.2:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.$members.1:\n- \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n+ \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n values.$members.0:\n- \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n+ \"0xD61640d06dC7A61C46d9515680b4DDd2AC51E9A9\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "e48e4684",
"date": "Tue, 24 Sep 2024 08:12:58 GMT",
"timestamp": 1727165578,
"description": "Caldera MS on Arbi: 1 signer changed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.3:\n- \"0xB2a5970fB30dc34AD65c914db855766ea62f1f41\"\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.2:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n+ \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n values.$members.1:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.$members.0:\n- \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n+ \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n }\n```"
}
]
},
{
"id": "1c65bbdf",
"date": "Thu, 30 May 2024 07:15:16 GMT",
"timestamp": 1717053316,
"description": "EOA removed from executor, Caldera Multisig is now the only upgrade executor.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UpgradeExecutor (0x92ff91308F5f1036435f23c2F4F136Bb7475425d) {\n +++ description: None\n values.accessControl.EXECUTOR_ROLE.members.1:\n- \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n values.accessControl.EXECUTOR_ROLE.members.0:\n- \"0x37918579d1Ef6E5e7D8aF19375dF53c60d790ef6\"\n+ \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n }\n```"
}
]
},
{
"id": "7a3b2a4d",
"date": "Wed, 22 May 2024 11:01:31 GMT",
"timestamp": 1716375691,
"description": "Initial discovery: Orbit stack L3 on Arbitrum with AnyTrust DA, custom native token, upgradable by admin EOA and Caldera Multisig.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x0aE035b3aAFFd8419d043920635Fe9CAdf179615)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorWalletCreator (0x0cB25fa1Bb1b12Ef908c09FD2d3C34f16F455DB3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RollupProxy (0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0)\n +++ description: Manages rollup components, list of Stakers and Validators. Entry point for Validators creating new Rollup Nodes (state commits) and Challengers submitting fraud proofs.\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x235000876bd58336C802B3546Fc0250f285fCc79)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0x492c6278fea6b249F3A03672Ea1242fd6295fedA)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1OrbitERC20Gateway (0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Molten Token (0x66E535e8D2ebf13F49F3D49e5c50395a97C137b1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ChallengeManager (0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x8D90460169D34d34a441F765A246a3C7f54C77C1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0x92ff91308F5f1036435f23c2F4F136Bb7475425d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20RollupEventInbox (0x9676D55Ccd46ce72235b16bA645008D1D3350B14)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x9e83136d4B3AD04C766591EA51712F9aEa3194C0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1OrbitGatewayRouter (0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0xd49141eB2c63D210b70542D6CE8453b049aab03A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0xE1d32C985825562edAa906fAC39295370Db72195)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xF07A4a947E1ca7B9e46D99Dbe625C30f5b60C706)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (0xFF93c3662B447Ec4577B51b08C6689A5518417D9)\n +++ description: None\n```"
}
]
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
}
],
"description": "Morph is an EVM compatible rollup. It operates as an optimistic rollup with ZK fault proofs and has plans for decentralizing the Sequencer. Their mission is to build the first blockchain for consumers, where user-friendly applications integrate seamlessly into everyday life, becoming indispensable utilities.",
"links": {
"websites": [
"https://morphl2.io"
],
"bridges": [
"https://bridge.morphl2.io/"
],
"documentation": [
"https://docs.morphl2.io"
],
"explorers": [
"https://explorer.morphl2.io"
],
"repositories": [
"https://github.com/morph-l2"
],
"socialMedia": [
"https://x.com/MorphLayer",
"https://t.me/MorphL2official",
"https://blog.morphl2.io/",
"https://medium.com/@morphlayer2",
"https://discord.com/invite/morphnetwork",
"https://youtube.com/@morphofficiall2"
]
}
}
[REMOVED]
near-da
+0 -199
+0 -1
"near-da"
+0 -1
"near"
+0 -1
"NEAR DA"
+0 -1
null
+0 -1
null
+0 -1
1725321600
+0 -3
{
"unverifiedContracts": []
}
+0 -24
{
"badges": [],
"description": "NEAR's Data Availability Layer (NEAR DA) leverages the sharded architecture of the NEAR Protocol to provide a modular data availability layer for layer 2 solutions.",
"links": {
"websites": [
"https://near.org/",
"https://nuff.tech/"
],
"documentation": [
"https://docs.near.org/build/chain-abstraction/data-availability"
],
"repositories": [
"https://github.com/near",
"https://github.com/Nuffle-Labs/data-availability"
],
"explorers": [
"https://nearblocks.io/"
],
"socialMedia": [
"https://x.com/NEARProtocol",
"https://discord.com/invite/zfhfRpaM4m"
]
}
}
+0 -1
null
+0 -1
null
+0 -37
[
{
"title": "NEAR reduces block time to 600ms",
"url": "https://pages.near.org/blog/blink-and-its-final-near-launches-600ms-blocks-and-1-2s-finality/",
"date": "2025-05-13T00:00:00Z",
"description": "NEAR reduces block time to 600ms, achieving finality in 1.2 seconds.",
"type": "general"
},
{
"title": "NEAR upgrades to 9 shards",
"url": "https://learnnear.club/near-protocol-scales-up-9-shards-now-live-with-12-5-performance-boost/",
"date": "2025-08-19T00:00:00Z",
"description": "NEAR upgrades from 8 to 9 shards.",
"type": "general"
},
{
"title": "NEAR upgrades to 8 shards",
"url": "https://x.com/NEARProtocol/status/1903780872760988037",
"date": "2025-03-19T00:00:00Z",
"description": "NEAR upgrades from 6 to 8 shards.",
"type": "general"
},
{
"title": "Mainnet Launch",
"url": "https://near.org/blog/near-mainnet-genesis",
"date": "2020-04-22T00:00:00Z",
"description": "Near mainnet launches.",
"type": "general"
},
{
"title": "Near Foundation launches Near DA",
"url": "https://medium.com/nearprotocol/near-foundation-launches-near-da-to-offer-secure-cost-effective-data-availability-for-eth-rollups-2d26beeb4cd8",
"date": "2023-11-08T00:00:00Z",
"description": "Near Foundation proposes Near DA as a data availability layer for Ethereum L2s.",
"type": "general"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -91
{
"consensusAlgorithm": {
"name": "Nightshade",
"description": "Nightshade is a sharding-based, Proof-of-Stake (PoS) consensus protocol enabling parallel transaction processing.\nNear Nightshade has one single main chain producing blocks. Main chain blocks do not contain actual transactions, but they include one chunk header for each shard, where\na chunk is the equivalent of a block in a standard, non-shared blockchain. At the beginning of the epoch, both the block and chunk production schedule\nare randomly generated. For each block on the main chain, and for every shard, one of the assigned chunk producers is responsible to produce the part of the main chain block\nrelated to the shard, and share the chunk header with the network. Finality is determined by the NFG (Nightshade finality gadget), and after 2 consecutive blocks are built on the same fork the t-2 block is considered final.\nReverting a finalized block will require at least 1/3 of the total stake to be slashed.",
"blockTime": 0.6,
"consensusFinality": 1.2,
"unbondingPeriod": 172800
},
"economicSecurity": {
"token": {
"symbol": "NEAR",
"decimals": 24,
"coingeckoId": "near"
}
},
"pruningWindow": 129600,
"risks": {
"economicSecurity": {
"value": {
"value": "Staked assets",
"sentiment": "good",
"description": "There are staked assets on the DA layer that can be slashed in case of a data withholding attack. A dishonest supermajority of validators must collude to finalize a block with missing or invalid data. The invalid block would be added to the chain but rejected by honest full nodes.\n "
},
"adjustSecurityRisk": true
},
"fraudDetection": {
"value": "None",
"sentiment": "bad",
"description": "There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer."
}
},
"systemCategory": "public",
"technology": {
"description": "## Architecture\n\n\n\n## Near Nightshade\n\n### Consensus\nNEAR's Nightshade consensus operates a Proof-of-Stake (PoS) system that enables parallel processing of transactions through a sharded architecture. As with any PoS system, validators are required to lock a stake to be eligible for block production and attestations.\nThe main differentiator of the NEAR blockchain is that its blocks do not contain actual transactions but rather block headers of separate blockchains, known as shards.\nThe ***main chain*** can contain many shards, and the current NEAR implementation supports 9 shards.\n\n\n\n\n\n\nEach shard is composed of chunks, which are equivalent to standard blockchain blocks.\nEssentially, the state of the main chain is split into n shards, and only the shards block headers end up being part of the main chain.\n\n\n\n\n\n\nBecoming a block producer requires locking (staking) a certain amount of tokens, currently around 11,000 NEAR. Staking operates through a threshold PoS mechanism, where a user’s stake must exceed the protocol's seat price—determined by the total NEAR tokens staked by other validators—in order to become a validator. The largest stakers at the beginning of a particular epoch are selected as block producers for that epoch. Each block producer is randomly assigned a certain number of shards to manage. \nBefore the epoch starts, the block producer downloads the state of the shard(s) they are assigned to (they have 1 epoch to complete this download). Throughout the epoch, they collect transactions that affect their assigned shard(s) and apply them to the state. NEAR nodes have an automatic 'garbage collection' routine that deletes the state of previous shards after five epochs, freeing up unused storage.\nWithin an epoch (12 hours), the main chain block and shard block production schedule is determined by a randomness seed generated at the beginning of the epoch. For each block height, a main chain block producer is assigned. \nValidators participate in several validation rounds within the epoch. For each round, one validator in each shard is chosen to be the chunk producer, and one validator from the entire set is chosen to be the block producer. Validators can serve as both block and chunk producers, but they maintain separate stakes for these roles.\nThe shard block producer is responsible for producing the part of the block related to their shard, known as a chunk. The chunk contains the list of transactions for the shard to be included in the block, as well as the Merkle root of the resulting state. Each main chain block contains either one or zero chunks per shard, depending on whether the shard can keep up with the main chain block production speed.\n\n\n\n\n\n\nA block on the main chain will only contain a small header of the chunk, composed of the Merkle root of all applied transactions and the Merkle root of the final state. When a block producer generates a chunk, they also produce an associated state witness, which is necessary for executing the chunk.\n\nChunk producers maintain the full state of their shard. Validators, on the other hand, do not maintain the state of any shard locally; instead, they download and verify all the block headers. They validate chunks using the state witness created by the chunk producers.\n\n### Data Availability\nSince only shard chunk producers maintain the shard state (while main chain validators do not), and main chain block producers need to attest to the chunk headers, data availability of the shard data must be ensured.\n\nAfter a block producer creates a chunk, they generate an erasure-coded version of it using Reed-Solomon encoding. The extended chunk is then split into multiple parts, which are distributed to all main chain validators.\n\n\n\n\nA block producer will not process a main chain block if they do not have the corresponding chunk sample for at least one chunk included in the block, or if they are unable to reconstruct the entire chunk for any shard for which they maintain the state.\n\nFor a particular chunk to be considered available, it is sufficient that [mainChainBlockProducer/nOfShards] + 1 of the block producers possess their respective parts and are able to serve them. As long as the number of malicious actors does not exceed one-third of the validators (block producers), any chain built by more than half of the block producers will have all its chunks available.\n\n\n\n\n\n### Finality\nFinality is determined by a modified Doomslug finality gadget. A block is considered final after two consecutive blocks are built on the same fork, making the block that is two blocks behind (t-2) final. Reverting a finalized block would require slashing at least one-third of the total stake.\n\n## L2s Data Availability\nA rollup can utilize a dedicated Data Availability (DA) smart contract on a NEAR shard, known as a Blob Store contract, where it posts data as standard NEAR transactions. All transactions are converted into Receipts, and depending on their actions, some receipts may be processed over two blocks.\nRegarding data retrieval, full nodes prune Receipts after 3 epochs (approximately 36 hours). Once the pruning window expires, the data remains accessible only through archive nodes.",
"references": [
{
"title": "Near Nightshade Consensus",
"url": "https://pages.near.org/downloads/Nightshade.pdf"
},
{
"title": "Near Doomslug Finality Gadget",
"url": "https://discovery-domain.org/papers/doomslug.pdf"
},
{
"title": "Near documentation",
"url": "https://docs.near.org/"
},
{
"title": "Near Core - Architecture",
"url": "https://near.github.io/nearcore/"
},
{
"title": "Blob Store contract - Nuffle Labs",
"url": "https://github.com/Nuffle-Labs/data-availability/blob/5026b81aa5d941aaf4dd1b23bc219b9150e84405/contracts/blob-store/src/lib.rs"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "a dishonest majority of Near validators finalizes an unavailable block."
}
]
},
"throughput": [
{
"size": 16777216,
"frequency": 1,
"sinceTimestamp": 1587513600
},
{
"size": 33554432,
"frequency": 1,
"sinceTimestamp": 1742342400
},
{
"size": 33554432,
"frequency": 0.6,
"sinceTimestamp": 1747141200
},
{
"size": 37748736,
"frequency": 0.6,
"sinceTimestamp": 1755561600
}
],
"type": "Public Blockchain",
"usedWithoutBridgeIn": [],
"validators": {
"type": "dynamic"
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
1777334400
+0 -1
null
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "MigratedFromL1",
"type": "Other",
"name": "Migrated from L1 to Ethereum L2",
"description": "This project has migrated from being a standalone L1 blockchain to an Ethereum L2",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Migrated from L1 to Ethereum L2"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Nillion is an OP Stack Optimium on Ethereum. It serves as the token bridge for the Nillion Network, a computation network focused on privacy-preserving data processing.",
"links": {
"websites": [
"https://nillion.com/"
],
"bridges": [
"https://bridge.nillion.network/"
],
"documentation": [
"https://docs.nillion.com/"
],
"explorers": [
"https://explorer.nillion.network/"
],
"repositories": [
"https://github.com/NillionNetwork"
],
"socialMedia": [
"https://x.com/nillion",
"https://discord.gg/nillionnetwork",
"https://t.me/nillionnetwork"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 8976650,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgBOFuc8Ges="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "WasmVM",
"type": "VM",
"name": "WasmVM",
"description": "This project uses a WebAssembly Virtual Machine to run its smart contracts",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "WasmVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Nitro",
"type": "Stack",
"name": "Built on Arbitrum Nitro",
"description": "The project is built on Arbitrum Nitro",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
},
{
"id": "L3HostChain",
"type": "Other",
"name": "L3 Host Chain",
"description": "This project serves as a host chain for L3s",
"action": {
"type": "selfScalingFilter",
"id": "hostChain"
}
}
],
"description": "Arbitrum Nova is an Optimistic Rollup that posts transaction data to Ethereum in blobs. It previously operated as an AnyTrust Optimium relying on a Data Availability Committee.",
"links": {
"websites": [
"https://nova.arbitrum.io/",
"https://arbitrum.io/",
"https://arbitrum.foundation/"
],
"bridges": [
"https://bridge.arbitrum.io/?destinationChain=arbitrum-nova&sourceChain=ethereum"
],
"documentation": [
"https://developer.arbitrum.io/",
"https://developer.arbitrum.io/inside-arbitrum-nitro/#inside-anytrust"
],
"explorers": [
"https://nova.arbiscan.io/"
],
"repositories": [
"https://github.com/ArbitrumFoundation/docs",
"https://github.com/ArbitrumFoundation/governance",
"https://github.com/OffchainLabs/nitro"
],
"socialMedia": [
"https://twitter.com/arbitrum",
"https://arbitrumfoundation.medium.com/",
"https://discord.gg/Arbitrum"
],
"other": [
"https://growthepie.com/chains/arbitrum-nova"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
}
],
"description": "OP Mainnet is an EVM-equivalent Optimistic Rollup. It aims to be fast, simple, and secure.",
"links": {
"websites": [
"https://optimism.io/"
],
"bridges": [
"https://app.optimism.io"
],
"documentation": [
"https://docs.optimism.io/",
"https://specs.optimism.io/",
"https://community.optimism.io"
],
"explorers": [
"https://optimistic.etherscan.io",
"https://optimism.blockscout.com/",
"https://mainnet.superscan.network"
],
"repositories": [
"https://github.com/ethereum-optimism/optimism"
],
"socialMedia": [
"https://x.com/Optimism",
"https://optimism.mirror.xyz/",
"https://twitter.com/OPLabsPBC",
"https://youtube.com/playlist?list=PLX_rXoLYCf5HqTWygUfoMfzRirGz5lekH",
"https://linkedin.com/company/optimism-foundation",
"https://twitch.tv/optimismpbc",
"https://discord.gg/optimism"
],
"other": [
"https://rollup.codes/optimism",
"https://growthepie.com/chains/optimism"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Optopia is an OP stack Rollup on Ethereum focusing on the intersection of AI, Intents and DeFi.",
"links": {
"websites": [
"https://optopia.ai/"
],
"bridges": [
"https://bridge.optopia.ai/"
],
"documentation": [
"https://docs.optopia.ai/",
"https://stack.optimism.io/"
],
"explorers": [
"https://scan.optopia.ai/"
],
"repositories": [
"https://github.com/OptopiaLabs"
],
"socialMedia": [
"https://x.com/Optopia_AI",
"https://discord.com/invite/BFr9hXPDY6",
"https://mirror.xyz/0x384F32e132501C9C3361C0495841715585164d33"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Orderly is an OP stack Optimium on Ethereum using Celestia for data availability. It has a unified ledger for assets from multiple chains and an orderbook that can be used by apps that build on top of it.",
"links": {
"websites": [
"https://orderly.network/"
],
"bridges": [
"https://app.orderly.network/"
],
"documentation": [
"https://orderly.network/docs/build-on-evm/building-on-evm"
],
"repositories": [
"https://github.com/OrderlyNetwork"
],
"explorers": [
"https://explorer.orderly.network/"
],
"socialMedia": [
"https://twitter.com/OrderlyNetwork",
"https://discord.gg/orderlynetwork",
"https://medium.com/@orderlynetwork",
"https://t.me/OrderlyNetworkAnnouncements"
],
"other": [
"https://growthepie.com/chains/orderly"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAABYTLU4hLOUU="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
}
],
"description": "Parallel is an Ethereum L2 solution utilizing Arbitrum Nitro technology.",
"links": {
"websites": [
"https://parallel.fi"
],
"bridges": [
"https://parallel.fi/airdrop"
],
"documentation": [
"https://docs.parallel.fi/parallel-chain/overview"
],
"explorers": [
"https://explorerl2new-surprised-harlequin-bonobo-fvcy2k9oqh.t.conduit.xyz/"
],
"socialMedia": [
"https://twitter.com/ParallelFi",
"https://discord.com/invite/parallelfi",
"https://t.me/parallelfi_community"
]
}
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Pepe Unchained was an Optimium utilizing the OP Stack before the project migrated to an Orbit chain. It focused on memes and provided a home for meme creators, traders, and communities to thrive.",
"links": {
"websites": [
"https://pepeunchained.com/"
],
"bridges": [
"https://pepubridge.com/"
],
"documentation": [
"https://guide.pepeunchained.com/"
],
"explorers": [
"https://pepuscan.com"
],
"socialMedia": [
"https://x.com/pepe_unchained"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 21314461,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAADzZzvipmzP4="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Phala is a cloud computing protocol which aims at offering developers a secure and efficient platform for deploying and managing AI-ready applications in a trusted environment (TEE).\n Phala rollup on Ethereum leverages the Op-Succinct stack, a combination of OP stack contracts and Zero-Knowledge Proofs (ZK) using the SP1 zkVM.",
"links": {
"websites": [
"https://phala.network/"
],
"bridges": [
"https://subbridge.io"
],
"documentation": [
"https://docs.phala.network/"
],
"explorers": [
"https://explorer.phala.network"
],
"repositories": [
"https://github.com/Phala-Network/"
],
"socialMedia": [
"https://x.com/PhalaNetwork",
"https://discord.com/invite/phala-network",
"https://t.me/phalanetwork",
"https://phala.network/blog",
"https://linkedin.com/company/phala-network"
]
}
}
+1 -8
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 5757261,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAADQSAB6M6v+s="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Polynomial Chain is a derivatives chain that addresses liquidity fragmentation with a unified liquidity layer, enabling innovative derivatives.",
"links": {
"websites": [
"https://polynomial.fi/"
],
"documentation": [
"https://docs.polynomial.fi/"
],
"explorers": [
"https://polynomialscan.io/"
],
"bridges": [
"https://polynomial.fi/en/mainnet/earn/bridge"
],
"repositories": [
"https://github.com/Polynomial-Protocol"
],
"socialMedia": [
"https://x.com/PolynomialFi",
"https://discord.com/invite/8WYEPDqyCR",
"https://t.me/polynomialtrade"
]
}
}
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Public Goods Network is an OP stack chain focused on funding public goods.",
"links": {
"websites": [
"https://publicgoods.network/"
],
"bridges": [
"https://bridge.publicgoods.network/"
],
"documentation": [
"https://docs.publicgoods.network/"
],
"explorers": [
"https://explorer.publicgoods.network",
"https://pgn.superscan.network"
],
"repositories": [
"https://github.com/supermodularxyz/pgn-monorepo",
"https://github.com/supermodularxyz/pgn-docs"
],
"socialMedia": [
"https://twitter.com/pgn_eth"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Zeeve",
"type": "RaaS",
"name": "Zeeve",
"description": "This project was deployed via the rollup-as-a-service provider Zeeve",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Zeeve"
}
}
],
"description": "R0ar is an Optimistic Rollup utilizing the OP Stack focusing on DeFi.",
"links": {
"websites": [
"https://r0ar.io/"
],
"bridges": [
"https://r0arbridge.io/"
],
"documentation": [],
"explorers": [
"https://r0arscan.io/"
],
"repositories": [
"https://github.com/R0AR-Foundation"
],
"socialMedia": [
"https://x.com/th3r0ar",
"https://t.me/r0ar_community",
"https://discord.gg/K7bVMsbEJN",
"https://instagram.com/r0ars0ciety",
"https://facebook.com/groups/th3r0ar",
"https://youtube.com/@th3r0ar",
"https://tiktok.com/@r0arsociety"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
}
],
"description": "Race Network is a Layer-2 designed for the tokenization and distribution of real-world assets (RWA).",
"links": {
"websites": [
"https://raceecosystem.com/"
],
"bridges": [
"https://bridge.race.foundation/",
"https://raceecosystem.com/onboarding"
],
"documentation": [
"https://raceecosystem.gitbook.io/docs"
],
"explorers": [
"https://racescan.io/"
],
"repositories": [
"https://github.com/RACE-Ecosystem/RACE-Chain"
],
"socialMedia": [
"https://x.com/RACEecosystem",
"https://facebook.com/RACEecosystem/",
"https://linkedin.com/company/raceecosystem"
]
}
}
+49 -52
+2 -10
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "DAC",
"type": "DA",
"name": "Data Availability Committee",
"description": "There is a Data Availability Committee that provides/attests to data availability",
"action": {
"type": "selfDaHighlight"
}
},
{
"id": "Espresso",
"type": "DA",
"name": "Espresso",
"description": "This project is posting its data to Espresso",
"action": {
"type": "publicDaHighlight",
"slug": "espresso"
}
"description": "This project is posting its data to Espresso"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Arbitrum",
"type": "L3ParentChain",
"name": "Built on top of Arbitrum",
"description": "The project has Arbitrum as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Arbitrum"
}
},
{
"id": "EspressoPreconfs",
"type": "Other",
"name": "Espresso Preconfs",
"description": "The project integrates with Espresso preconfirmations. The chain batch poster publishes blocks to Espresso Network and runs in a Trusted Execution Environment (TEE) programmed to verify that only Espresso-validated batches reach the host chain.",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Espresso Preconfs"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "RARI Chain embeds royalties on the node level to guarantee royalty payments. A secure, low-cost, decentralized Ethereum L3 blockchain powered by Arbitrum.",
"links": {
"websites": [
"https://rarichain.org/"
],
"bridges": [
"https://bridge.arbitrum.io/?destinationChain=rari-mainnet&sourceChain=arbitrum-one"
],
"documentation": [
"https://rari.docs.caldera.dev/"
],
"explorers": [
"https://mainnet.explorer.rarichain.org/"
],
"repositories": [
"https://github.com/OffchainLabs/nitro"
],
"socialMedia": [
"https://twitter.com/RariChain",
"https://discord.com/invite/rarifoundation"
]
}
}
+2 -4
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
},
{
"layer": {
"value": "Espresso",
"sentiment": "warning",
"description": "The data is posted to Espresso.",
"projectId": "espresso"
"description": "The data is posted to Espresso."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
},
{
"layer": {
"value": "DAC",
"sentiment": "warning",
"description": "The data is posted off chain and a Data Availability Committee (DAC) is responsible for protecting and supplying it."
},
"bridge": {
"value": "1/1 DAC Members",
"sentiment": "bad",
"description": "There is a threshold of 1/1 members that must sign and attest that the data is correct and available.",
"orderHint": -0.01
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4SqHjry4i0U="
}
]
null
+30 -30
{
"addresses": {
"arbitrum": [
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x2e988Ea0873C9d712628F0bf38DAFdE754927C89",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0x139C5A235632EDdad741ff380112B3161d31a21C"
],
"implementations": [
"arb1:0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42",
"arb1:0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0xc326D023758d7D212d529D1E58D7f271CAe49fcf",
"arb1:0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07"
]
},
{
"timestamp": 1730751274,
"transactionHash": "0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357",
"implementations": [
"arb1:0x8470c94a718f062156a4663ea797359E908b5836",
"arb1:0x5bc2d4D25446Fa7C51Eefe10e2FdF846bD355A5d"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42",
"arb1:0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 1, SafeL2\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 1, SafeL2\n * **validators**: EOA 2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2e988Ea0873C9d712628F0bf38DAFdE754927C89#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0xA436f1867adD490BF1530c636f2FB090758bB6B3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x1d182075d07744D71E37f77f1654165f6DAFad08"
]
},
{
"timestamp": 1730748413,
"transactionHash": "0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6",
"implementations": [
"arb1:0x305eD6932AbF2e997832C570E467320BbA1491F4"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0xa8968d1dbA3F93FB7412d15F4139C0f63537e9E2"
]
},
{
"timestamp": 1738182192,
"transactionHash": "0xb59494487d444c465d61f19a4fe9830806da172e2883ae0861c155f3066592a7",
"implementations": [
"arb1:0xE2DdF957261A6d8a96A7eff29C51460707FfbBE5"
]
},
{
"timestamp": 1738289135,
"transactionHash": "0x206804ee59ae4cd1cd13fc2c92c59958f3ecfcf3f210b2d583a6816e3a4a0b10",
"implementations": [
"arb1:0x805dc3546d99AfB35EfB261b907679b67A08256e"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2\n * **batchPosterManager**: EOA 1\n * **batchPosters**: EOA 1",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA436f1867adD490BF1530c636f2FB090758bB6B3#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x935239e066F4F449D87D600e6d7c1a4F24c50f97"
]
},
{
"timestamp": 1730748413,
"transactionHash": "0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6",
"implementations": [
"arb1:0xa24eF25c521d7927c11d7Da940b4B63e0E9575C6"
]
},
{
"timestamp": 1730751274,
"transactionHash": "0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357",
"implementations": [
"arb1:0x7Eac96FDa155F0cE911d93D540e405e4020B082D"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0xFd7A2567C6b56153f1b0D4FDbCc671d178a971fc"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0x5DD914a56853Da4C6Cee07827483F532e65B6FeD"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0x139C5A235632EDdad741ff380112B3161d31a21C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2\n * **executors**: Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x139C5A235632EDdad741ff380112B3161d31a21C#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x37e60F80d921dc5E7f501a7130F31f6548dBa564",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x4cA89361F5F79092822F95F34334227528ed63A8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x198792E7e60688FEeB0b89f0ABD3b85953Dd05Cd"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0x6B292d1d4D38653b4F1D6De41c6be198371C5af1"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0x4cA89361F5F79092822F95F34334227528ed63A8"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x37e60F80d921dc5E7f501a7130F31f6548dBa564#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0x91591BB66075BCfF94AA128B003134165C3Ab83a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x84Cf78b9573daDb2FBa3028e49e0B5F785134360"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x84Cf78b9573daDb2FBa3028e49e0B5F785134360"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x91591BB66075BCfF94AA128B003134165C3Ab83a#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0x2623C144B4d167f70893f6A8968B98c89a6C5F97",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x532Ba80626DF9042353fa9509A66a25eE90fc51B"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x532Ba80626DF9042353fa9509A66a25eE90fc51B"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2623C144B4d167f70893f6A8968B98c89a6C5F97#code"
},
{
"name": "CustomGateway",
"isVerified": true,
"address": "arb1:0x8bE956aB42274056ef4471BEb211b33e258b7324",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
}
],
"description": "Escrows deposited assets for the canonical bridge that are externally governed or need custom token contracts with e.g. minting rights or upgradeability.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8bE956aB42274056ef4471BEb211b33e258b7324#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x003e70B041abb993006C03E56c8515622a02928C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x003e70B041abb993006C03E56c8515622a02928C#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x2BA5cB2D332E266c43D0Ef18F879650d00630B61",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2BA5cB2D332E266c43D0Ef18F879650d00630B61#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x73D3a5E535cBF98B9b5Ff7fEb8EC26e61FCEC4b7"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x73D3a5E535cBF98B9b5Ff7fEb8EC26e61FCEC4b7"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "arb1:0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x729E3e7542E8A6630818E9a14A67e0Cb7008a5E5), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x9e83136d4B3AD04C766591EA51712F9aEa3194C0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9e83136d4B3AD04C766591EA51712F9aEa3194C0#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0xb47a57a218911653d964fE8aAa1cED55A71D8043",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb47a57a218911653d964fE8aAa1cED55A71D8043#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The Espresso TEE verifier is used by the SequencerInbox contract to verify the batch attestations signed by the TEE.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 3, EOA 4",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0xb47a57a218911653d964fE8aAa1cED55A71D8043",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb47a57a218911653d964fE8aAa1cED55A71D8043#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The Espresso TEE verifier is used by the SequencerInbox contract to verify the batch attestations signed by the TEE.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"sinceTimestamp": 1705716145,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "arb1:0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"sinceTimestamp": 1705716148,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8bE956aB42274056ef4471BEb211b33e258b7324",
"sinceTimestamp": 1705716148,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x8bE956aB42274056ef4471BEb211b33e258b7324",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens that require minting custom token on L2.",
"url": "https://arbiscan.io/address/0x8bE956aB42274056ef4471BEb211b33e258b7324#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "Celestia Nitro 3.3.2 wasmModuleRoot",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games, which uses Celestia DA.",
"programUrl": "https://github.com/celestiaorg/nitro/tree/7c9d688a256cc60f2b8db9dbe9ac40511d0d1f2e/arbos",
"verificationStatus": "successful",
"verificationSteps": "Even though the program is compiled in docker for reproducibility reasons, it gives the correct results only on linux OS. Steps below were done on Ubuntu 22.04 OS. The steps below consume ~35 GiB disk space.\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/).\n2. Checkout the correct branch in [celestiaorg/nitro](https://github.com/celestiaorg/nitro/tree/celestia-v3.3.2) repo: `git checkout celestia-v3.3.2` . Commit hash should be `7c9d688a256cc60f2b8db9dbe9ac40511d0d1f2e`.\n3. Update git submodules `git submodule update --init --recursive --force`.\n4. To fix build errors, add this to `contracts/foundry.toml`: \n```\n[profile.yul.lint]\nlint_on_build = false\n```\nAlso replace line 98 of Dockerfile with `cargo install --force --locked cbindgen --version \"=0.26.0\"` and line 46 with `RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.75.0 --target x86_64-unknown-linux-gnu --target wasm32-unknown-unknown --target wasm32-wasi`.\n\n5. Generate wasm module root in docker: `docker buildx build --target nitro-node-dev -t nitro-node-dev .`.\n6. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xaf1dbdfceb871c00bfbb1675983133df04f0ed04e89647812513c091e3a982b3"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": []
}
+14 -0
[
{
"id": "4b3b29a4",
"date": "Tue, 13 Oct 2026 07:13:59 GMT",
"timestamp": 1782746888,
"description": "Blobstream contracts are now discovered here instead of referenced from the blobstream project, which was removed with the rest of the alt-DA projects.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract BlobstreamMultisig (arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "97b390c0",
"date": "Mon, 29 Jun 2026 15:30:13 GMT",
"timestamp": 1782746888,
"description": "Caldera Multisig 1 (shared with blessnet, inevm, molten): member rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"arb1:0xEC114946E7213d113c9B9481028271B5E9e09371\"\n+ \"arb1:0xFcB26a1DbFafF84b91f1b7D9026DA63007b88D3c\"\n }\n```"
}
]
},
{
"id": "b188267d",
"date": "Mon, 18 May 2026 18:24:20 GMT",
"timestamp": 1779128593,
"description": "Caldera Multisig 1 signer removed.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"arb1:0xbCDb12b7a5bDe037e342a6BE7fd5582b9D93C232\"\n values.multisigThreshold:\n- \"3 of 8 (38%)\"\n+ \"3 of 7 (43%)\"\n }\n```"
}
]
},
{
"id": "f89c0d5d",
"date": "Fri, 08 May 2026 09:38:02 GMT",
"timestamp": 1778233014,
"description": "Shared SafeL2 (`arb1:0x6Dc61D9E...`) — signer `0x5582a8A4` removed. Threshold unchanged at 2; total signers 4 → 3 (50% → 67%). Same shared multisig change observed on `apechain`, `appchain`, `molten`.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"arb1:0x5582a8A4f2B04341697cEA4Cf4289a01814C26e6\"\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"2 of 3 (67%)\"\n }\n```"
}
]
},
{
"id": "9d3629ac",
"date": "Mon, 23 Feb 2026 14:40:26 GMT",
"timestamp": 1771857556,
"description": "Caldera signer rotation on Caldera Multisig 1 (same shared multisig as molten): signer 0xc454... removed, signer 0xbCDb... added. Total signers unchanged at 8, threshold unchanged at \"3 of 8 (38%)\".",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xbCDb12b7a5bDe037e342a6BE7fd5582b9D93C232\"\n values.$members.3:\n- \"arb1:0xc4548687682246e5B6ee8f914635c9f47836eDFe\"\n }\n```"
}
]
},
{
"id": "6d2d2940",
"date": "Tue, 10 Feb 2026 15:08:47 GMT",
"timestamp": 1770736058,
"description": "New SafeL2 multisig discovered.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n+ Status: CREATED\n contract SafeL2 (arb1:0x6Dc61D9E366697979f69D89a154f2F8cd2F11dA5)\n +++ description: None\n```"
}
]
},
{
"id": "061a25e4",
"date": "Fri, 28 Nov 2025 12:57:53 GMT",
"timestamp": 1764334605,
"description": "Rari posting to DAC for a while.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (arb1:0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.sequencerVersion:\n- \"0x63\"\n+ \"0x88\"\n }\n```"
}
]
},
{
"id": "7475196b",
"date": "Tue, 11 Nov 2025 17:06:54 GMT",
"timestamp": 1762880716,
"description": "Caldera multisig decreased threshold.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.7:\n- \"arb1:0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.multisigThreshold:\n- \"3 of 9 (33%)\"\n+ \"3 of 8 (38%)\"\n }\n```"
}
]
},
{
"id": "6a0721f3",
"date": "Fri, 10 Oct 2025 09:26:30 GMT",
"timestamp": 1760088323,
"description": "Member added to multisig. Added new executor for upgrades.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UpgradeExecutor (arb1:0x139C5A235632EDdad741ff380112B3161d31a21C) {\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"arb1:0x60BA5fd28Ba522665e282299f12b8e31D7Fe172a\"\n values.executors.1:\n+ \"arb1:0x60BA5fd28Ba522665e282299f12b8e31D7Fe172a\"\n }\n```\n\n```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xe5219fe14E2FD520Ff80be036790913053d1575d\"\n values.$members.1:\n+ \"arb1:0x62ea938a30826c8794C8B8BbA775B91cAE3B849A\"\n values.$members.1:\n- \"arb1:0x2F2d46D3dD36c8d1ae2Cb81c0cD2c05C68DBA675\"\n values.multisigThreshold:\n- \"3 of 8 (38%)\"\n+ \"3 of 9 (33%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (arb1:0x60BA5fd28Ba522665e282299f12b8e31D7Fe172a)\n +++ description: None\n```"
}
]
},
{
"id": "8e37b597",
"date": "Fri, 03 Oct 2025 08:53:31 GMT",
"timestamp": 1759481539,
"description": "Member added to multisig.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (arb1:0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x9e14B1baFCEB80B67934aBE4fB00a7291aCfBcD0\"\n values.multisigThreshold:\n- \"3 of 7 (43%)\"\n+ \"3 of 8 (38%)\"\n }\n```"
}
]
},
{
"id": "438bdb64",
"date": "Tue, 22 Jul 2025 16:17:47 GMT",
"timestamp": 1753201067,
"description": "Caldera MS signers added.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x2F2d46D3dD36c8d1ae2Cb81c0cD2c05C68DBA675\"\n values.$members.1:\n+ \"arb1:0xc4548687682246e5B6ee8f914635c9f47836eDFe\"\n values.$members.2:\n+ \"arb1:0xe62a4A1e6D237d6fc40d88F819D5cE580a996A6b\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 7 (43%)\"\n }\n```"
}
]
},
{
"id": "91941d76",
"date": "Mon, 14 Jul 2025 12:44:20 GMT",
"timestamp": 1752497060,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 21,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ProxyAdmin (0x003e70B041abb993006C03E56c8515622a02928C)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0x139C5A235632EDdad741ff380112B3161d31a21C)\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0)\n +++ description: Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayRouter (0x2623C144B4d167f70893f6A8968B98c89a6C5F97)\n +++ description: This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x2BA5cB2D332E266c43D0Ef18F879650d00630B61)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89)\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x37e60F80d921dc5E7f501a7130F31f6548dBa564)\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```\n\n```diff\n+ Status: CREATED\n contract RollupEventInbox (0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6)\n +++ description: Helper contract sending configuration data over the bridge during the systems initialization.\n```\n\n```diff\n+ Status: CREATED\n contract QuoteVerifier (0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1)\n +++ description: The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (arb1:0x729E3e7542E8A6630818E9a14A67e0Cb7008a5E5), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Gateway (0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6)\n +++ description: Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n```\n\n```diff\n+ Status: CREATED\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CustomGateway (0x8bE956aB42274056ef4471BEb211b33e258b7324)\n +++ description: Escrows deposited assets for the canonical bridge that are externally governed or need custom token contracts with e.g. minting rights or upgradeability.\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0x91591BB66075BCfF94AA128B003134165C3Ab83a)\n +++ description: Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x9e83136d4B3AD04C766591EA51712F9aEa3194C0)\n +++ description: This contract implements view only utilities for validators.\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3)\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n```\n\n```diff\n+ Status: CREATED\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF)\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0xb47a57a218911653d964fE8aAa1cED55A71D8043)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoTEEVerifier (0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb)\n +++ description: The Espresso TEE verifier is used by the SequencerInbox contract to verify the batch attestations signed by the TEE.\n```"
}
]
},
{
"id": "d6ad66f2",
"date": "Tue, 01 Jul 2025 12:12:48 GMT",
"timestamp": 1751371968,
"description": "caldera MS signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig 1 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.0:\n- \"0xD61640d06dC7A61C46d9515680b4DDd2AC51E9A9\"\n+ \"0xEC114946E7213d113c9B9481028271B5E9e09371\"\n }\n```"
}
]
},
{
"id": "0acc3ed4",
"date": "Wed, 21 May 2025 12:19:06 GMT",
"timestamp": 1747829946,
"description": "single line formatting change in the OneStepProverHostIo (compared to previous blobstream implementation), no consequences for the overall function of `executeReadInboxMessage()`.\n\n`success = inboxValidate(execCtx, uint64(msgIndex), proof[proofOffset:proofEnd]);` now uses a function type / pointer.\n\nblobstream is now integrated again into the rari proof system.",
"isHighSeverity": true,
"changeCount": 38,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract OneStepProofEntry (0x01ad6E65e01928938448A1Fcf5C93Bf7BfE720e0)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract Inbox (0x37e60F80d921dc5E7f501a7130F31f6548dBa564) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n values.$implementation:\n- \"0x6B292d1d4D38653b4F1D6De41c6be198371C5af1\"\n+ \"0x4cA89361F5F79092822F95F34334227528ed63A8\"\n values.$pastUpgrades.2:\n+ [\"2025-05-05T13:43:44.000Z\",\"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\",[\"0x6B292d1d4D38653b4F1D6De41c6be198371C5af1\"]]\n values.$pastUpgrades.1.2.0:\n- \"0x6B292d1d4D38653b4F1D6De41c6be198371C5af1\"\n+ \"0x198792E7e60688FEeB0b89f0ABD3b85953Dd05Cd\"\n values.$pastUpgrades.1.1:\n- \"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\"\n+ \"0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2\"\n values.$pastUpgrades.1.0:\n- \"2025-05-05T13:43:44.000Z\"\n+ \"2024-01-20T02:02:25.000Z\"\n values.$pastUpgrades.0.2.0:\n- \"0x198792E7e60688FEeB0b89f0ABD3b85953Dd05Cd\"\n+ \"0x4cA89361F5F79092822F95F34334227528ed63A8\"\n values.$pastUpgrades.0.1:\n- \"0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2\"\n+ \"0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c\"\n values.$pastUpgrades.0.0:\n- \"2024-01-20T02:02:25.000Z\"\n+ \"2025-05-20T18:18:40.000Z\"\n values.$upgradeCount:\n- 2\n+ 3\n implementationNames.0x6B292d1d4D38653b4F1D6De41c6be198371C5af1:\n- \"Inbox\"\n implementationNames.0x4cA89361F5F79092822F95F34334227528ed63A8:\n+ \"Inbox\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0x44e5De8cE3bAfEd3bC87F7024573Ff7D2a10b905)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0x8F359bc614f82e472971e65dEB3Ba61B6F01911b)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n values.$pastUpgrades.6:\n+ [\"2025-05-05T13:43:44.000Z\",\"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\",[\"0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC\"]]\n values.$pastUpgrades.5.2:\n- \"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\"\n+ \"2025-01-29T20:23:12.000Z\"\n values.$pastUpgrades.5.1:\n- \"2025-05-05T13:43:44.000Z\"\n+ \"0xb59494487d444c465d61f19a4fe9830806da172e2883ae0861c155f3066592a7\"\n values.$pastUpgrades.5.0.0:\n- \"0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC\"\n+ \"0xE2DdF957261A6d8a96A7eff29C51460707FfbBE5\"\n values.$pastUpgrades.4.2:\n- \"2025-01-29T20:23:12.000Z\"\n+ [\"0x805dc3546d99AfB35EfB261b907679b67A08256e\"]\n values.$pastUpgrades.4.1:\n- \"0xb59494487d444c465d61f19a4fe9830806da172e2883ae0861c155f3066592a7\"\n+ \"0x206804ee59ae4cd1cd13fc2c92c59958f3ecfcf3f210b2d583a6816e3a4a0b10\"\n values.$pastUpgrades.4.0:\n- [\"0xE2DdF957261A6d8a96A7eff29C51460707FfbBE5\"]\n+ \"2025-01-31T02:05:35.000Z\"\n values.$pastUpgrades.3.2:\n- [\"0x805dc3546d99AfB35EfB261b907679b67A08256e\"]\n+ \"0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c\"\n values.$pastUpgrades.3.1:\n- \"0x206804ee59ae4cd1cd13fc2c92c59958f3ecfcf3f210b2d583a6816e3a4a0b10\"\n+ \"2025-05-20T18:18:40.000Z\"\n values.$pastUpgrades.3.0:\n- \"2025-01-31T02:05:35.000Z\"\n+ [\"0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC\"]\n values.$upgradeCount:\n- 6\n+ 7\n }\n```\n\n```diff\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n values.$implementation:\n- \"0x5DD914a56853Da4C6Cee07827483F532e65B6FeD\"\n+ \"0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b\"\n values.$pastUpgrades.5:\n+ [\"2025-05-20T18:18:40.000Z\",\"0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c\",[\"0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.osp:\n- \"0x01ad6E65e01928938448A1Fcf5C93Bf7BfE720e0\"\n+ \"0x2BA5cB2D332E266c43D0Ef18F879650d00630B61\"\n implementationNames.0x5DD914a56853Da4C6Cee07827483F532e65B6FeD:\n- \"ChallengeManager\"\n implementationNames.0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b:\n+ \"ChallengeManager\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0xF30f32a5Bb30EE098AAFBC06C7C30705396632da)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x2BA5cB2D332E266c43D0Ef18F879650d00630B61)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Blobstream (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794)\n +++ description: The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0xb47a57a218911653d964fE8aAa1cED55A71D8043)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "c6aefa61",
"date": "Tue, 06 May 2025 11:12:07 GMT",
"timestamp": 1746529927,
"description": "Redeployed challenge manager and one step proof contracts unchanged, except for OneStepProverHostIo that was removed. As a consequence, the last step of the challenge game (one step proof) becomes impossible to perform. Updated Inbox and SequencerInbox to align with the upcoming Pectra upgrade: modified the check on the callers with codeless origin.",
"isHighSeverity": true,
"changeCount": 31,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract OneStepProver0 (0x0B851CA3b2f92Ad257283C38d95dC3Ded917300F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0x1fE9a7F654e8c7d0c63f0182ccBff91a0Ef68716)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"Celestia Nitro 3.2.1 wasmModuleRoot\"\n+ \"Celestia Nitro 3.3.2 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0xe81f986823a85105c5fd91bb53b4493d38c0c26652d23f76a7405ac889908287\"\n+ \"0xaf1dbdfceb871c00bfbb1675983133df04f0ed04e89647812513c091e3a982b3\"\n }\n```\n\n```diff\n contract Inbox (0x37e60F80d921dc5E7f501a7130F31f6548dBa564) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n sourceHashes.1:\n- \"0x99872d99b7163c705118e0a168f99728c3c7089581779077707271cdaad30be3\"\n+ \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n sourceHashes.0:\n- \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n+ \"0x84cd273689e720a0b7c657b57d9fb127684f3abb87fc4b337a2f0decd9464120\"\n values.$implementation:\n- \"0x198792E7e60688FEeB0b89f0ABD3b85953Dd05Cd\"\n+ \"0x6B292d1d4D38653b4F1D6De41c6be198371C5af1\"\n values.$pastUpgrades.1:\n+ [\"2025-05-05T13:43:44.000Z\",\"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\",[\"0x6B292d1d4D38653b4F1D6De41c6be198371C5af1\"]]\n values.$upgradeCount:\n- 1\n+ 2\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0x44fBCc2210BdC537f36bc9B98aCd3b63CC8f712c)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0x8E83dB08E847E4b79CbD1F5E4DE56A9A6e882c6a)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n sourceHashes.1:\n- \"0xe5b0341ccf50d77e60d2ef63d66c4e6c36835a85d9c0f58b35fc728a7cbc1d9c\"\n+ \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n sourceHashes.0:\n- \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n+ \"0xf1a5a4430f78320a8b5b4d9025165b70183401a8085b8ebff664afc68b00ce92\"\n values.$implementation:\n- \"0x805dc3546d99AfB35EfB261b907679b67A08256e\"\n+ \"0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC\"\n values.$pastUpgrades.5:\n+ [\"2025-05-05T13:43:44.000Z\",\"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\",[\"0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC\"]]\n values.$upgradeCount:\n- 5\n+ 6\n }\n```\n\n```diff\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n values.$implementation:\n- \"0xFd7A2567C6b56153f1b0D4FDbCc671d178a971fc\"\n+ \"0x5DD914a56853Da4C6Cee07827483F532e65B6FeD\"\n values.$pastUpgrades.4:\n+ [\"2024-01-20T02:02:25.000Z\",\"0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2\",[\"0x935239e066F4F449D87D600e6d7c1a4F24c50f97\"]]\n values.$pastUpgrades.3.2:\n- \"0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2\"\n+ \"0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357\"\n values.$pastUpgrades.3.1:\n- \"2024-01-20T02:02:25.000Z\"\n+ \"2024-11-04T20:14:34.000Z\"\n values.$pastUpgrades.3.0.0:\n- \"0x935239e066F4F449D87D600e6d7c1a4F24c50f97\"\n+ \"0x7Eac96FDa155F0cE911d93D540e405e4020B082D\"\n values.$pastUpgrades.2.2:\n- \"0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357\"\n+ \"0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c\"\n values.$pastUpgrades.2.1:\n- \"2024-11-04T20:14:34.000Z\"\n+ [\"0x5DD914a56853Da4C6Cee07827483F532e65B6FeD\"]\n values.$pastUpgrades.2.0:\n- [\"0x7Eac96FDa155F0cE911d93D540e405e4020B082D\"]\n+ \"2025-05-05T13:43:44.000Z\"\n values.$upgradeCount:\n- 4\n+ 5\n values.osp:\n- \"0x44fBCc2210BdC537f36bc9B98aCd3b63CC8f712c\"\n+ \"0x01ad6E65e01928938448A1Fcf5C93Bf7BfE720e0\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0xaAe0A2EB9C0fb6C97c095283030d0af635f44d3F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the [Blobstream DA bridge](https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x01ad6E65e01928938448A1Fcf5C93Bf7BfE720e0)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x44e5De8cE3bAfEd3bC87F7024573Ff7D2a10b905)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x8F359bc614f82e472971e65dEB3Ba61B6F01911b)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0xF30f32a5Bb30EE098AAFBC06C7C30705396632da)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "b0b8a565",
"date": "Thu, 06 Feb 2025 11:01:39 GMT",
"timestamp": 1738839699,
"description": "Rari integrates with Espresso TEE. Batch poster was replaced with a new batch poster that runs inside a TEE. The sequencer inbox was updated so that the data posting function also includes an attestation as input, a \"quote\", that is verified for each batch tx by the EspressoTEEVerifier. The verifier checks this signature that can only originate from inside the TEE and reverts if unsuccessful, meaning that for every batch tx we can be sure it came from the TEE.\nFrom Ethereum POV, there is no change in the external DA checks. The sequencer is still supposed to post to Celestia, and the inbox still checks the commitment has the designated Celesita initial byte (0x63) and length (89). No changes to proof system either.",
"isHighSeverity": true,
"changeCount": 23,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n template:\n- \"orbitstack/SequencerInbox_Celestia\"\n+ \"orbitstack/SequencerInbox_Celestia_Espresso\"\n sourceHashes.1:\n- \"0x7c44d7be0909b7d0aaf2c476c9c337b43f59f311d40469f3e0cc99dc46308b56\"\n+ \"0xe5b0341ccf50d77e60d2ef63d66c4e6c36835a85d9c0f58b35fc728a7cbc1d9c\"\n description:\n- \"A sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia but does not reference a DA bridge.\"\n+ \"The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\"\n issuedPermissions.2:\n+ {\"permission\":\"upgrade\",\"to\":\"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\",\"via\":[{\"address\":\"0x139C5A235632EDdad741ff380112B3161d31a21C\"},{\"address\":\"0x003e70B041abb993006C03E56c8515622a02928C\"}]}\n issuedPermissions.1.permission:\n- \"upgrade\"\n+ \"sequence\"\n issuedPermissions.1.to:\n- \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n+ \"0xffE86271e68A0365d71B86b101Fc8CA5546E7E77\"\n issuedPermissions.1.via.1:\n- {\"address\":\"0x003e70B041abb993006C03E56c8515622a02928C\"}\n issuedPermissions.1.via.0:\n- {\"address\":\"0x139C5A235632EDdad741ff380112B3161d31a21C\"}\n issuedPermissions.1.description:\n+ \"Can submit transaction batches or commitments to the SequencerInbox contract on the host chain.\"\n issuedPermissions.0.permission:\n- \"sequence\"\n+ \"interact\"\n issuedPermissions.0.to:\n- \"0x974533F82B7BADF54Fb91C15f07F3f095e35321C\"\n+ \"0xffE86271e68A0365d71B86b101Fc8CA5546E7E77\"\n issuedPermissions.0.description:\n- \"Can submit transaction batches or commitments to the SequencerInbox contract on the host chain.\"\n+ \"Add/remove batchPosters (Sequencers).\"\n values.$implementation:\n- \"0xa8968d1dbA3F93FB7412d15F4139C0f63537e9E2\"\n+ \"0x805dc3546d99AfB35EfB261b907679b67A08256e\"\n values.$pastUpgrades.4:\n+ [\"2025-01-31T02:05:35.000Z\",\"0x206804ee59ae4cd1cd13fc2c92c59958f3ecfcf3f210b2d583a6816e3a4a0b10\",[\"0x805dc3546d99AfB35EfB261b907679b67A08256e\"]]\n values.$pastUpgrades.3:\n+ [\"2025-01-29T20:23:12.000Z\",\"0xb59494487d444c465d61f19a4fe9830806da172e2883ae0861c155f3066592a7\",[\"0xE2DdF957261A6d8a96A7eff29C51460707FfbBE5\"]]\n values.$upgradeCount:\n- 3\n+ 5\n values.batchPosterManager:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0xffE86271e68A0365d71B86b101Fc8CA5546E7E77\"\n values.batchPosters.0:\n- \"0x974533F82B7BADF54Fb91C15f07F3f095e35321C\"\n+ \"0xffE86271e68A0365d71B86b101Fc8CA5546E7E77\"\n values.setIsBatchPosterCount:\n- 1\n+ 5\n values.BLOBSTREAM:\n+ \"0xa8973BDEf20fe4112C920582938EF2F022C911f5\"\n values.espressoTEEVerifier:\n+ \"0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract V3QuoteVerifier (0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1)\n +++ description: The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote.\n```\n\n```diff\n+ Status: CREATED\n contract EspressoTEEVerifier (0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb)\n +++ description: The Espresso TEE verifier is used by the SequencerInbox contract to verify the batch attestations signed by the TEE.\n```"
}
]
},
{
"id": "e9224efd",
"date": "Thu, 19 Dec 2024 15:17:21 GMT",
"timestamp": 1734621441,
"description": "Upgrade to ArbOS v32 with [the 'Celestia Nitro 3.2.1' tag](https://github.com/celestiaorg/nitro/releases/tag/v3.2.1-rc.1). This upgrade is mostly to known contracts except for the SequencerInbo and OneStepProverHostIo, of which the former includes a new Celestia header among minor changes but the latter includes references to use Blobstream on Arbitrum as the source of truth for fault proof DA.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n values.$implementation.1:\n- \"0x5bc2d4D25446Fa7C51Eefe10e2FdF846bD355A5d\"\n+ \"0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262\"\n values.$implementation.0:\n- \"0x8470c94a718f062156a4663ea797359E908b5836\"\n+ \"0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42\"\n values.$pastUpgrades.2:\n+ [\"2024-12-18T16:01:31.000Z\",\"0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88\",[\"0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42\",\"0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v32 wasmModuleRoot\"\n+ \"Celestia Nitro 3.2.1 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n+ \"0xe81f986823a85105c5fd91bb53b4493d38c0c26652d23f76a7405ac889908287\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0x32Cb8609A12C6155333adc1594Eb5D4b78701fF7)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0x40c6d6C9F97FD8390025eBeF5e790CffFd450088)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0x6aDA4af3EAFF458cb7851581c3784f43C16b9b8F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia but does not reference a DA bridge.\n template:\n- \"orbitstack/SequencerInbox\"\n+ \"orbitstack/SequencerInbox_Celestia\"\n sourceHashes.1:\n- \"0x50cf57b01499408fa99da27cf0fee96ec30f0d40667d1aa090c442bc80f0636b\"\n+ \"0x7c44d7be0909b7d0aaf2c476c9c337b43f59f311d40469f3e0cc99dc46308b56\"\n description:\n- \"A sequencer (registered in this contract) can submit transaction batches or commitments here.\"\n+ \"A sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia but does not reference a DA bridge.\"\n values.$implementation:\n- \"0x305eD6932AbF2e997832C570E467320BbA1491F4\"\n+ \"0xa8968d1dbA3F93FB7412d15F4139C0f63537e9E2\"\n values.$pastUpgrades.2:\n+ [\"2024-12-18T16:01:31.000Z\",\"0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88\",[\"0xa8968d1dbA3F93FB7412d15F4139C0f63537e9E2\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.sequencerVersion:\n- \"0x88\"\n+ \"0x63\"\n values.CELESTIA_MESSAGE_HEADER_FLAG:\n+ \"0x63\"\n }\n```\n\n```diff\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n values.$implementation:\n- \"0x7Eac96FDa155F0cE911d93D540e405e4020B082D\"\n+ \"0xFd7A2567C6b56153f1b0D4FDbCc671d178a971fc\"\n values.$pastUpgrades.3:\n+ [\"2024-12-18T16:01:31.000Z\",\"0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88\",[\"0xFd7A2567C6b56153f1b0D4FDbCc671d178a971fc\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.osp:\n- \"0xF01b22DB890C47774c1E275A68FEE3757Dc72AaA\"\n+ \"0x44fBCc2210BdC537f36bc9B98aCd3b63CC8f712c\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xAB6D90EC412c4B5Db66e3DefEC32754311b1D91A)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0xF01b22DB890C47774c1E275A68FEE3757Dc72AaA)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x0B851CA3b2f92Ad257283C38d95dC3Ded917300F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0x1fE9a7F654e8c7d0c63f0182ccBff91a0Ef68716)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x44fBCc2210BdC537f36bc9B98aCd3b63CC8f712c)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x8E83dB08E847E4b79CbD1F5E4DE56A9A6e882c6a)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0xaAe0A2EB9C0fb6C97c095283030d0af635f44d3F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the [Blobstream DA bridge](https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```"
}
]
},
{
"id": "e1f5145b",
"date": "Mon, 18 Nov 2024 16:54:51 GMT",
"timestamp": 1731948891,
"description": "Caldera MS member removed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.4:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.3:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "36c76bbe",
"date": "Tue, 05 Nov 2024 15:59:33 GMT",
"timestamp": 1730822373,
"description": "Upgrade to ArbOS 32, matched by shapes.",
"isHighSeverity": true,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract OneStepProverMemory (0x0aE035b3aAFFd8419d043920635Fe9CAdf179615)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n sourceHashes.2:\n- \"0xef94a66bd5339efd18fb9ca1f8031482e7ef7bbe6c5a0a10fae254ab83712406\"\n+ \"0x7ee21b18b2e18c636bfafc08ff72692cc43302b2599ba75f0abad67282866dd5\"\n sourceHashes.1:\n- \"0x8b48118fe606012c0dcac2ccc1821785935aec89fab8f219f47b32c482b0017e\"\n+ \"0x9349e73cbc2d2b818c1d79711574ba210b56249d8d3845bc78c776caf8f8ff42\"\n values.$implementation.1:\n- \"0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07\"\n+ \"0x5bc2d4D25446Fa7C51Eefe10e2FdF846bD355A5d\"\n values.$implementation.0:\n- \"0xc326D023758d7D212d529D1E58D7f271CAe49fcf\"\n+ \"0x8470c94a718f062156a4663ea797359E908b5836\"\n values.$pastUpgrades.1:\n+ [\"2024-11-04T20:14:34.000Z\",\"0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357\",[\"0x8470c94a718f062156a4663ea797359E908b5836\",\"0x5bc2d4D25446Fa7C51Eefe10e2FdF846bD355A5d\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v10.2 wasmModuleRoot\"\n+ \"ArbOS v32 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x0754e09320c381566cc0449904c377a52bd34a6b9404432e80afd573b67f7b17\"\n+ \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n values.anyTrustFastConfirmer:\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0x8D90460169D34d34a441F765A246a3C7f54C77C1)\n +++ description: None\n```\n\n```diff\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.1:\n- \"0x08792f333db7e8a060c38033f92e3fc10c30e2648c56fc49c7460ee1c94343a0\"\n+ \"0x50cf57b01499408fa99da27cf0fee96ec30f0d40667d1aa090c442bc80f0636b\"\n values.$implementation:\n- \"0x1d182075d07744D71E37f77f1654165f6DAFad08\"\n+ \"0x305eD6932AbF2e997832C570E467320BbA1491F4\"\n values.$pastUpgrades.1:\n+ [\"2024-11-04T19:26:53.000Z\",\"0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6\",[\"0x305eD6932AbF2e997832C570E467320BbA1491F4\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.batchPosterManager:\n+ \"0x0000000000000000000000000000000000000000\"\n values.BROTLI_MESSAGE_HEADER_FLAG:\n+ \"0x00\"\n values.DAS_MESSAGE_HEADER_FLAG:\n+ \"0x80\"\n values.DATA_BLOB_HEADER_FLAG:\n+ \"0x50\"\n values.isUsingFeeToken:\n+ false\n values.keySetUpdates:\n+ 1\n values.postsBlobs:\n+ false\n values.reader4844:\n+ \"0x0000000000000000000000000000000000000000\"\n values.TREE_DAS_MESSAGE_HEADER_FLAG:\n+ \"0x08\"\n values.ZERO_HEAVY_MESSAGE_HEADER_FLAG:\n+ \"0x20\"\n template:\n+ \"orbitstack/SequencerInbox\"\n description:\n+ \"A sequencer (registered in this contract) can submit transaction batches or commitments here.\"\n fieldMeta:\n+ {\"maxTimeVariation\":{\"description\":\"Settable by the Rollup Owner. Transactions can only be force-included after `delayBlocks` window (Sequencer-only) has passed.\"}}\n }\n```\n\n```diff\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n sourceHashes.1:\n- \"0x7e1cd1e10119e118ffaa576ddbe1c0f9810a0859a4bf2f65a4ff596c0ed4183d\"\n+ \"0x1a095768302d7d1c3d02375eaa3341833b4f1aaac707e1c608bce478c87cbf27\"\n values.$implementation:\n- \"0x935239e066F4F449D87D600e6d7c1a4F24c50f97\"\n+ \"0x7Eac96FDa155F0cE911d93D540e405e4020B082D\"\n values.$pastUpgrades.2:\n+ [\"2024-11-04T20:14:34.000Z\",\"0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357\",[\"0x7Eac96FDa155F0cE911d93D540e405e4020B082D\"]]\n values.$pastUpgrades.1:\n+ [\"2024-11-04T19:26:53.000Z\",\"0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6\",[\"0xa24eF25c521d7927c11d7Da940b4B63e0E9575C6\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.osp:\n- \"0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4\"\n+ \"0xF01b22DB890C47774c1E275A68FEE3757Dc72AaA\"\n template:\n+ \"orbitstack/ChallengeManager\"\n description:\n+ \"Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0xd49141eB2c63D210b70542D6CE8453b049aab03A)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xF07A4a947E1ca7B9e46D99Dbe625C30f5b60C706)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x32Cb8609A12C6155333adc1594Eb5D4b78701fF7)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x40c6d6C9F97FD8390025eBeF5e790CffFd450088)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x6aDA4af3EAFF458cb7851581c3784f43C16b9b8F)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xAB6D90EC412c4B5Db66e3DefEC32754311b1D91A)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0xF01b22DB890C47774c1E275A68FEE3757Dc72AaA)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "eb38c6ff",
"date": "Thu, 10 Oct 2024 09:45:40 GMT",
"timestamp": 1728553540,
"description": "Signer changes in Caldera MS.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.4:\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.3:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n+ \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n values.$members.2:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.$members.1:\n- \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n+ \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n values.$members.0:\n- \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n+ \"0xD61640d06dC7A61C46d9515680b4DDd2AC51E9A9\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "9bdb2dff",
"date": "Tue, 24 Sep 2024 08:15:14 GMT",
"timestamp": 1727165714,
"description": "Caldera MS on Arbi: 1 signer changed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Caldera Multisig (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF) {\n +++ description: None\n values.$members.3:\n- \"0xB2a5970fB30dc34AD65c914db855766ea62f1f41\"\n+ \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n values.$members.2:\n- \"0x356000Cec4fC967f8FC372381D983426760A0391\"\n+ \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n values.$members.1:\n- \"0x4919167EA334BE84B1604Cbc82A26A7746D5943e\"\n+ \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n values.$members.0:\n- \"0x12ee26aD74d50a1f6BDD90811387d1e0f3e7C76A\"\n+ \"0xbf853295743511e8DC5F03809d209C33fC136d24\"\n }\n```"
}
]
},
{
"id": "97b7279a",
"date": "Thu, 30 May 2024 08:40:04 GMT",
"timestamp": 1717058404,
"description": "The Admin EOA is removed, Caldera MS is the only upgrade executor.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UpgradeExecutor (0x139C5A235632EDdad741ff380112B3161d31a21C) {\n +++ description: None\n values.accessControl.EXECUTOR_ROLE.members.1:\n- \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n values.accessControl.EXECUTOR_ROLE.members.0:\n- \"0xBA739a061291E9aec6422BdAD3E9D48d4f7aA552\"\n+ \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n }\n```"
}
]
},
{
"id": "771e8a96",
"date": "Thu, 25 Apr 2024 21:21:55 GMT",
"timestamp": 1714080115,
"description": "A new UpgradeExecutor member was added (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF).\nIt's a \"3 of 4\" GnosisSafe.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UpgradeExecutor (0x139C5A235632EDdad741ff380112B3161d31a21C) {\n +++ description: None\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutorMemberGnosisSafeL2 (0x6FD149B3d41fd860B9Da1A6fE54e902eF41F68BF)\n +++ description: None\n```"
}
]
},
{
"id": "e2bc85a5",
"date": "Fri, 02 Feb 2024 11:06:01 GMT",
"timestamp": 1706871961,
"description": "Discover the `dacKeyset`.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89) {\n unverified:\n- true\n derivedName:\n- \"\"\n+ \"RollupProxy\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract L1GatewayRouter (0x2623C144B4d167f70893f6A8968B98c89a6C5F97) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC20Gateway (0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract L1CustomGateway (0x8bE956aB42274056ef4471BEb211b33e258b7324) {\n }\n```"
}
]
},
{
"id": "2d5a2052",
"date": "Mon, 29 Jan 2024 10:52:51 GMT",
"timestamp": 1706525571,
"description": "Add RARI chain config.",
"isHighSeverity": false,
"changeCount": 17,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract ProxyAdmin (0x003e70B041abb993006C03E56c8515622a02928C) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x0aE035b3aAFFd8419d043920635Fe9CAdf179615) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorWalletCreator (0x0cB25fa1Bb1b12Ef908c09FD2d3C34f16F455DB3) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0x139C5A235632EDdad741ff380112B3161d31a21C) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract RollupProxy (0x2e988Ea0873C9d712628F0bf38DAFdE754927C89) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x37e60F80d921dc5E7f501a7130F31f6548dBa564) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract RollupEventInbox (0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract (0x492c6278fea6b249F3A03672Ea1242fd6295fedA) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x8D90460169D34d34a441F765A246a3C7f54C77C1) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0x91591BB66075BCfF94AA128B003134165C3Ab83a) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x9e83136d4B3AD04C766591EA51712F9aEa3194C0) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0xA436f1867adD490BF1530c636f2FB090758bB6B3) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract ChallengeManager (0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0xD16048EC58016FAbaC4d4E4C1203e49c0d9090E4) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0xd49141eB2c63D210b70542D6CE8453b049aab03A) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xF07A4a947E1ca7B9e46D99Dbe625C30f5b60C706) {\n }\n```"
}
]
}
]
+4 -17
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDAVerifier",
"type": "DA",
"name": "EigenDA with DA Verifier",
"description": "This project uses EigenDA and integrates the DACert Verifier to validate DA commitments.",
"action": {
"type": "publicDaHighlight",
"slug": "eigendaverifier"
}
"description": "This project uses EigenDA and integrates the DACert Verifier to validate DA commitments."
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
}
],
"description": "RISE is a low-latency Optimium built on the OP Stack, using the OP Succinct Lite ZK fault proof system and posting data to EigenDA. It targets real-time trading applications through its RISEx exchange.",
"links": {
"websites": [
"https://risechain.com/"
],
"bridges": [
"https://portal.risechain.com/bridge"
],
"documentation": [
"https://docs.risechain.com/"
],
"explorers": [
"https://explorer.risechain.com/"
],
"repositories": [
"https://github.com/risechain"
],
"socialMedia": [
"https://x.com/risechain",
"https://t.me/risexannouncement",
"https://blog.risechain.com/"
]
}
}
+2 -4
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "DACert Verifier",
"sentiment": "warning",
"description": "EigenDA V3 certificates are verified by the proof system through the DACert Verifier contract, which validates certificates against operator signatures and stake thresholds.",
"projectId": "eigenda"
"description": "EigenDA V3 certificates are verified by the proof system through the DACert Verifier contract, which validates certificates against operator signatures and stake thresholds."
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "eigen-da",
"daLayer": "eigenda",
"sinceTimestamp": 1767607200,
"customerId": "0x78d5974216f751eb328018f003067f77e8be2fc4"
}
]
null
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Towns is an Optimium based on the OP Stack. It is used by the Towns protocol - a protocol for building decentralized real-time messaging apps - acting as its backbone.",
"links": {
"websites": [
"https://towns.com/"
],
"bridges": [
"https://mainnet.bridge.towns.com"
],
"documentation": [
"https://docs.towns.com/introduction"
],
"repositories": [
"https://github.com/towns-protocol"
],
"explorers": [
"https://explorer.towns.com/"
],
"socialMedia": [
"https://x.com/townsxyz",
"https://x.com/TownsProtocol",
"https://warpcast.com/towns"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 4071540,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAMod4Sor8Q7yCoU="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "L3HostChain",
"type": "Other",
"name": "L3 Host Chain",
"description": "This project serves as a host chain for L3s",
"action": {
"type": "selfScalingFilter",
"id": "hostChain"
}
}
],
"description": "Robinhood Chain is an Arbitrum Orbit Layer 2 operated by Robinhood, focused on tokenized real-world assets (such as stocks and ETFs) and onchain financial services including 24/7 trading, lending, and borrowing.\n\nRobinhood Chain is part of Robinhood's broader mission to democratize access to global financial markets and to empower users and developers with modern blockchain tools.",
"links": {
"websites": [
"https://robinhood.com/chain/"
],
"bridges": [
"https://portal.arbitrum.io/bridge?destinationChain=robinhood-chain&sourceChain=ethereum"
],
"documentation": [
"https://docs.robinhood.com/chain"
],
"explorers": [
"https://robin.etherscan.io",
"https://robinhoodchain.blockscout.com"
],
"socialMedia": [
"https://x.com/RobinhoodApp"
]
}
}
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "MigratedFromL1",
"type": "Other",
"name": "Migrated from L1 to Ethereum L2",
"description": "This project has migrated from being a standalone L1 blockchain to an Ethereum L2",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Migrated from L1 to Ethereum L2"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Ronin is an Ethereum Optimium based on the OP Stack, optimized for gaming and NFT applications. It migrated from an independent sidechain to a Layer 2 in May 2026, using EigenDA for data availability and keeping RON as the custom gas token.",
"links": {
"websites": [
"https://roninchain.com/"
],
"bridges": [
"https://app.roninchain.com/bridge"
],
"documentation": [
"https://docs.roninchain.com/"
],
"repositories": [
"https://github.com/ronin-chain/ronin",
"https://github.com/axieinfinity"
],
"explorers": [
"https://app.roninchain.com/explorer"
],
"socialMedia": [
"https://twitter.com/Ronin_Network",
"https://discord.gg/roninnetwork",
"https://blog.roninchain.com/"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+2 -7
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "NearDA",
"type": "DA",
"name": "NearDA",
"description": "This project is posting its data to NearDA",
"action": {
"type": "publicDaHighlight",
"slug": "near"
}
"description": "This project is posting its data to NearDA"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "The RSS3 Value Sublayer (VSL), part of the RSS3 Network, is an Ethereum scaling project built with OP Stack, handling the value and ownership of AI and Open Information.",
"links": {
"websites": [
"https://rss3.io"
],
"bridges": [
"https://explorer.rss3.io/bridge",
"https://explorer.rss3.io/nodes",
"https://explorer.rss3.io/epochs",
"https://explorer.rss3.io/dsl-scan"
],
"documentation": [
"https://docs.rss3.io"
],
"explorers": [
"https://explorer.rss3.io",
"https://scan.rss3.io"
],
"repositories": [
"https://github.com/rss3-network"
],
"socialMedia": [
"https://twitter.com/rss3_",
"https://discord.com/invite/euq4xyGPsU",
"https://t.me/rss3_en"
]
}
}
+1 -2
[
{
"layer": {
"value": "NearDA",
"sentiment": "warning",
"description": "The data is posted to NearDA which is a separate data availability layer on the Near protocol. Only hashes of data are published on an onchain inbox.",
"projectId": "near-da"
"description": "The data is posted to NearDA which is a separate data availability layer on the Near protocol. Only hashes of data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "L3HostChain",
"type": "Other",
"name": "L3 Host Chain",
"description": "This project serves as a host chain for L3s",
"action": {
"type": "selfScalingFilter",
"id": "hostChain"
}
}
],
"description": "Scroll is a ZK Rollup that extends Ethereum’s capabilities through ZK tech and EVM compatibility.",
"links": {
"websites": [
"https://scroll.io"
],
"bridges": [
"https://scroll.io/bridge"
],
"documentation": [
"https://docs.scroll.io/en/home/"
],
"explorers": [
"https://scrollscan.com/",
"https://scroll.blockscout.com/",
"https://okx.com/web3/explorer/scroll"
],
"repositories": [
"https://github.com/scroll-tech/scroll",
"https://github.com/scroll-tech/zkvm-prover",
"https://github.com/scroll-tech/go-ethereum",
"https://github.com/scroll-tech/frontends",
"https://github.com/scroll-tech"
],
"socialMedia": [
"https://discord.gg/scroll",
"https://twitter.com/Scroll_ZKP",
"https://youtube.com/@Scroll_ZKP"
],
"other": [
"https://rollup.codes/scroll",
"https://forum.scroll.io",
"https://growthepie.com/chains/scroll"
]
}
}
+1 -12
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Alchemy",
"type": "RaaS",
"name": "Alchemy",
"description": "This project was deployed via the rollup-as-a-service provider Alchemy",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Alchemy"
}
}
],
"description": "Settlus is an OP stack L2 designed to provide a transparent settlement system for the creator economy.",
"links": {
"websites": [
"https://settlus.org/"
],
"bridges": [
"https://settlus-mainnet.bridge.alchemy.com/"
],
"explorers": [
"https://mainnet.settlus.network/"
],
"documentation": [
"https://docs.settlus.org/"
],
"repositories": [
"https://github.com/settlus"
],
"socialMedia": [
"https://x.com/Settlusofficial",
"https://medium.com/@settlus_official"
]
}
}
+0 -7
[
{
"type": "ethereum",
"daLayer": "ethereum",
"sinceBlock": 21890837,
"inbox": "0x003E40D3125591bD722aB1bB880c78e4D74d0977",
"sequencers": [
"0xD0b4c3aC8A50B6F1B3949ADaf55Cc9805620EB57"
]
},
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 9779673,
"untilBlock": 13618693,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPs="
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Alchemy",
"type": "RaaS",
"name": "Alchemy",
"description": "This project was deployed via the rollup-as-a-service provider Alchemy",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Alchemy"
}
}
],
"description": "Shape is a Rollup on Ethereum based on the OP Stack. It is a chain for creators, innovating by giving creators 80% of the Sequencer fee as 'gasback'.",
"links": {
"websites": [
"https://shape.network/"
],
"bridges": [
"https://superbridge.app/shape-mainnet",
"https://shape-mainnet.bridge.alchemy.com/"
],
"documentation": [
"https://docs.shape.network/"
],
"explorers": [
"https://shapescan.xyz/"
],
"repositories": [
"https://github.com/shape-network"
],
"socialMedia": [
"https://x.com/Shape_L2",
"https://discord.com/invite/shape-l2",
"https://warpcast.com/shape-l2"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "SNAXchain, developed by Synthetix, is a Rollup built on the OP Stack. It aims to enhance Synthetix V3's decentralized governance and streamline operations.",
"links": {
"websites": [
"https://governance.synthetix.io/"
],
"bridges": [
"https://superbridge.app/snaxchain-mainnet"
],
"repositories": [
"https://github.com/Synthetixio/snaxchain-config"
],
"documentation": [
"https://sips.synthetix.io/sips/sip-384/"
],
"socialMedia": [
"https://x.com/synthetix_io"
],
"explorers": [
"https://explorer.snaxchain.io"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
}
],
"description": "Soneium is an Optimistic rollup based on the OP Stack. It is built by Sony Block Solutions Labs and planned to stand as a versatile, general-purpose blockchain.",
"links": {
"websites": [
"https://soneium.org/en/"
],
"bridges": [
"https://bridge.soneium.org/"
],
"documentation": [
"https://docs.soneium.org/docs/builders/overview"
],
"explorers": [
"https://soneium.blockscout.com/"
],
"repositories": [
"https://github.com/Soneium"
],
"socialMedia": [
"https://x.com/soneium",
"https://t.me/SoneiumOfficial",
"https://discord.com/invite/soneium"
],
"other": [
"https://rollup.codes/soneium",
"https://growthepie.com/chains/soneium"
]
}
}
+2 -25
+1 -5
{
"badges": [
{
"id": "SolanaVM",
"type": "VM",
"name": "SolanaVM",
"description": "This project uses the Solana Virtual Machine to run its smart contracts",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "SolanaVM"
}
},
{
"id": "EigenDA",
"type": "DA",
"name": "EigenDA",
"description": "This project is posting its data to EigenDA",
"action": {
"type": "publicDaHighlight",
"slug": "eigenda"
}
"description": "This project is posting its data to EigenDA"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "SOON is a Layer 2 chain built on top of the SOON Stack. It innovates with a Decoupled SVM that separates Solana's execution (needed for the SOON SVM) from its consensus (not needed since SOON settles on Ethereum), yielding performance and flexibility improvements.",
"links": {
"websites": [
"https://soo.network/"
],
"bridges": [
"https://bridge.mainnet.soo.network/home"
],
"documentation": [
"https://docs.soo.network/introduction/what-is-soon"
],
"explorers": [
"https://explorer.soo.network/"
],
"repositories": [
"https://github.com/soonlabs"
],
"socialMedia": [
"https://x.com/soon_svm",
"https://discord.gg/soon-svm",
"https://medium.com/@soon_SVM"
]
}
}
+1 -2
[
{
"layer": {
"value": "EigenDA",
"sentiment": "warning",
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox.",
"projectId": "eigenda"
"description": "The data is posted to EigenDA which is a separate data availability layer developed by the Eigenlayer team. Only commitments to the data are published on an onchain inbox."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+0 -18
[
{
"type": "ethereum",
"daLayer": "ethereum",
"sinceBlock": 21541468,
"inbox": "0xfF000000000000000000000000000000000000FF",
"sequencers": [
"0xae0Fbdd7CEC6036F3364000eE6d2a60BdAbb10c6",
"0x267576444F8504B23B98F2b3C0e31bB32eB6Eb7a"
]
},
{
"type": "eigen-da",
"customerId": "0x52ebeea8a7dcaaa17ee398b9f9b01dfa64db63ae",
"daLayer": "eigenda",
"sinceTimestamp": 1735822800
},
{
"type": "eigen-da",
"daLayer": "eigenda",
"sinceTimestamp": 1753412400,
"customerId": "0x420ad2641f22bf6f180c52d0b0566e7ec701c45a"
},
{
"type": "eigen-da",
"daLayer": "eigenda",
"sinceTimestamp": 1786951919,
"customerId": "0xcb3a6380c666ff97f474e11fd41519c320b7a276"
}
]
+211 -215
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "AvailVector",
"type": "DA",
"name": "Avail with Vector",
"description": "This project utilizes Avail and has Vector enabled, facilitating the bridging of data availability commitments between Avail and Ethereum.",
"action": {
"type": "publicDaHighlight",
"slug": "avail"
}
"description": "This project utilizes Avail and has Vector enabled, facilitating the bridging of data availability commitments between Avail and Ethereum."
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
}
],
"description": "Sophon is a consumer-centric ecosystem on a ZK Stack Validium L2, designed to bring onchain benefits to everyday lifestyle and entertainment applications.",
"links": {
"websites": [
"https://sophon.xyz/"
],
"bridges": [
"https://portal.sophon.xyz/",
"https://farm.sophon.xyz/"
],
"documentation": [
"https://docs.sophon.xyz/sophon"
],
"explorers": [
"https://explorer.sophon.xyz/",
"https://sophscan.xyz/"
],
"repositories": [
"https://github.com/sophon-org"
],
"socialMedia": [
"https://x.com/sophon",
"https://blog.sophon.xyz/",
"https://t.me/SophonHub",
"https://t.me/SophonAnnouncements",
"https://discord.com/invite/sophon"
]
}
}
+2 -4
[
{
"layer": {
"value": "Avail",
"sentiment": "warning",
"description": "The data is posted to Avail.",
"projectId": "avail"
"description": "The data is posted to Avail."
},
"bridge": {
"value": "Vector",
"sentiment": "warning",
"description": "The Vector DA bridge is used to attest to the data availability on Avail.",
"projectId": "vector"
"description": "The Vector DA bridge is used to attest to the data availability on Avail."
},
"mode": {
"value": "State diffs",
"secondLine": "Compressed"
}
}
]
+1 -13
[
{
"type": "avail",
"daLayer": "avail",
"sinceBlock": 0,
"appIds": [
"17",
"36",
"37",
"38"
]
}
]
null
+60 -60
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * ValidatorTimelock [via: ProtocolUpgradeHandler → ProxyAdmin]\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1USDCBridge [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) [via: ProtocolUpgradeHandler]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * set the pending admin of this contract and the ServerNotifier contract address (ZK cluster Admin role) [via: EraChainAdminProxy]",
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * set the pending admin of this contract and the ServerNotifier contract address (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"address": "eth:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "SophonTransactionFilterer",
"name": "SophonTransactionFilterer",
"accounts": [
{
"address": "eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41",
"type": "Contract",
"isVerified": true,
"name": "0x006e…5e41",
"url": "https://etherscan.io/address/0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41"
}
],
"chain": "ethereum",
"description": "A contract implementing the ITransactionFilterer interface, allows only trxs from whitelisted superusers. The whitelist is defined in AccessControl roles.\n* Can interact with Diamond\n * define addresses that can send transactions from L1 to L2 (e.g. for deposits, withdrawals, queued transactions). This is enforced in the Mailbox Facet ",
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "SophonChainAdminMultisig",
"name": "SophonChainAdminMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) [via: SophonZkEvmAdmin]\n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: SophonZkEvmAdmin]",
"accounts": [
{
"address": "eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1",
"type": "Contract",
"isVerified": true,
"name": "0xe464…52d1",
"url": "https://etherscan.io/address/0xe4644b6d106A18062344c0A853666bc0B8f052d1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x891F19CdefBce82e2F39f34C2322526c01E7A845",
"type": "EOA",
"isVerified": true,
"name": "0x891F…A845",
"url": "https://etherscan.io/address/0x891F19CdefBce82e2F39f34C2322526c01E7A845"
},
{
"address": "eth:0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336",
"type": "EOA",
"isVerified": true,
"name": "0x4BBB…c336",
"url": "https://etherscan.io/address/0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336"
},
{
"address": "eth:0x1B5a420Dc78290b0F30ED12634Fa9b068A22F96c",
"type": "EOA",
"isVerified": true,
"name": "0x1B5a…F96c",
"url": "https://etherscan.io/address/0x1B5a420Dc78290b0F30ED12634Fa9b068A22F96c"
},
{
"address": "eth:0x02266d7404AF55F39605Ea1D2b6bfff6DF74157d",
"type": "EOA",
"isVerified": true,
"name": "0x0226…157d",
"url": "https://etherscan.io/address/0x02266d7404AF55F39605Ea1D2b6bfff6DF74157d"
},
{
"address": "eth:0x45Bd9b1B0525C81778A0E4AE1f58eFA9e88E53f8",
"type": "EOA",
"isVerified": true,
"name": "0x45Bd…53f8",
"url": "https://etherscan.io/address/0x45Bd9b1B0525C81778A0E4AE1f58eFA9e88E53f8"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/6 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x64FEca7976955a512aB9159f91E7dD1D55425293",
"type": "EOA",
"isVerified": true,
"name": "0x64FE…5293",
"url": "https://etherscan.io/address/0x64FEca7976955a512aB9159f91E7dD1D55425293"
},
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B",
"type": "EOA",
"isVerified": true,
"name": "0xa7Fc…A13B",
"url": "https://etherscan.io/address/0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B",
"displayName": "EOA 1"
},
{
"address": "eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3",
"type": "EOA",
"isVerified": true,
"name": "0xE2DD…AbF3",
"url": "https://etherscan.io/address/0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xB1e2974E81922c1d5923dB4580292fB9954E9E05",
"type": "EOA",
"isVerified": true,
"name": "0xB1e2…9E05",
"url": "https://etherscan.io/address/0xB1e2974E81922c1d5923dB4580292fB9954E9E05",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonZkEvmAdmin\n * set the conversion factor for gas token deposits ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x50B238788747B26c408681283D148659F9da7Cf9",
"type": "EOA",
"isVerified": true,
"name": "0x50B2…7Cf9",
"url": "https://etherscan.io/address/0x50B238788747B26c408681283D148659F9da7Cf9",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) \n * manage the whitelist ",
"discoveryDrivenData": true
},
{
"id": "EOA-5-and-EOA-6",
"name": "EOA 5 and EOA 6",
"id": "EOA-5-and-EOA-7",
"name": "EOA 5 and EOA 7",
"accounts": [
{
"address": "eth:0x5afeCA1153D94750e170e6021B95416A68c60f4E",
"type": "EOA",
"isVerified": true,
"name": "0x5afe…0f4E",
"url": "https://etherscan.io/address/0x5afeCA1153D94750e170e6021B95416A68c60f4E",
"displayName": "EOA 5"
},
{
"address": "eth:0xBaEb92889696217A3A6be2175E5a95dC4cFFC9f7",
"type": "EOA",
"isVerified": true,
"name": "0xBaEb…C9f7",
"url": "https://etherscan.io/address/0xBaEb92889696217A3A6be2175E5a95dC4cFFC9f7",
"displayName": "EOA 6"
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"displayName": "EOA 7"
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades [via: ProtocolTimelockController]\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+133 -133
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729268843,
"transactionHash": "0x9c8b285f3c5712386493b015fbcb0f92e5e6d9e987ddb6c8646c49959620bd04",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1729268843,
"transactionHash": "0x9c8b285f3c5712386493b015fbcb0f92e5e6d9e987ddb6c8646c49959620bd04",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1738696943,
"transactionHash": "0x82657fe86f99698eae75f1e2104fa211e67b641b7e58450aa8ceabf962798b16",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1743095267,
"transactionHash": "0x92c1aabdc2a908d40bee5207ba851be0a7f91747e4d86f4aa23201d5605d7f75",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747087643,
"transactionHash": "0x0366efdb1fc5b705d59c1e88cdc9e9118eea686227b8062627b8bf65be4b6a56",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751396099,
"transactionHash": "0x3fb1153770857ac1714eb72d2cc7a76ebf1160bb8e844e8aa08164c72a25d419",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755018299,
"transactionHash": "0x97141968736d3d95e4cbf3c10293b7bd56f43ad6d4e3bed854e0025ed2d2d7e4",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761612755,
"transactionHash": "0x1dd8584ad0e2a106271e682fbec33c6066933fbf4c243f46eba13707e1ed729f",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769536979,
"transactionHash": "0x02b9e48f0f8550fe61d750085088df57ec084a55468a6b259bc600b2d9f9a8de",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1771011071,
"transactionHash": "0x13067d49b849a7460f1f8a587edaee878b49dc7b2278ce8b16e223ca042ddbb9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1785855227,
"transactionHash": "0x6c47ec4cd22ac63a14d8e2e8f6f931af61e7b734b54153e63cd7970b2c598d4e",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786453211,
"transactionHash": "0xeb2beafc685e0ee4854da37ea0f13053576e4a266f020562743c9b3060f9858b",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786896143,
"transactionHash": "0x8425fcca675dd5870508e9d44ed69fd8a947103cf051816da2eeae3e985a0dad",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: SophonZkEvmAdmin; ultimately SophonChainAdminMultisig\n * **getTransactionFilterer**: SophonTransactionFilterer\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "AvailL1DAValidator",
"isVerified": true,
"address": "eth:0x8f50d93B9955B285f787043B30B5F51D09bE0120",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies that the validiums data was made available on Avail by querying the AvailBridgeV1 on Ethereum for a merkle proof of inclusion.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8f50d93B9955B285f787043B30B5F51D09bE0120#code"
},
{
"name": "BridgeHub",
"isVerified": true,
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520639,
"transactionHash": "0xdbb03a14ea223de3db4ac0916e78123bd0a1dde68e98952326d8382d29ac4d61",
"implementations": [
"eth:0x12f893689f9603991a8c22C249FFd0509Be95661"
]
},
{
"timestamp": 1725887363,
"transactionHash": "0x21aec24a9df97ce4886d699314be627b0818da4d1987349421fb3df102c43f2b",
"implementations": [
"eth:0x509dA1BE24432F8804C4A9FF4a3c3f80284CDd13"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x0029e562c0b54C0b88cB22adF4346DbfEC87400c"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xb720523EC3c615b069453bF4B0584CEbF034706f"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcdd748d4A80CE6831080f1dA2CA9084CDa87Cc87"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x08A98B1048Fb61E9Fff7d7d98305aC6286Ae9F32"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
}
],
"description": "The main registry (hub) for all the contracts in the ZK stack cluster and central entrypoint for bridge transactions. Stores important mappings like from chainId to diamond address, from chainId to parent CTM, from chainId to base token etc. A clone of Bridgehub is also deployed on each L2 chain, but this clone is only used on settlement layers.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x303a465B659cBB0ab36eE643eA362c509EEb5213#code"
},
{
"name": "MessageRoot",
"isVerified": true,
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109035,
"transactionHash": "0xc47e24e8cc6c7a493bbb1a46b74f1ff113fad2e35d7596aa688df5bf0402fc65",
"implementations": [
"eth:0x19347Fb8eD3E8e35eb4a01c8B18Bd330194Cf0ad"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x382fb241396eA915108e7B7Ce1adE1322bA73aeE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
}
],
"description": "Aggregates remote bridge message roots from all ZK stack chains. To be used with the Gateway when deployed.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD#code"
},
{
"name": "CTMDeploymentTracker",
"isVerified": true,
"address": "eth:0x6078F6B379f103de1Aa912dc46bb8Df0c8809860",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109203,
"transactionHash": "0x8b5a21b3473a638022e84097a99c4668bb0a454686b737e87957729c4822741b",
"implementations": [
"eth:0x1E405E5cdF127Dc98Eb490AB0e97345f892Ff7E1"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
}
],
"description": "Asset deployment tracker where the 'asset' is a ChainTypeManager. The registering of asset IDs for ChainTypeManagers is necessary to be able to migrate them to a given settlement layer, for example the Gateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6078F6B379f103de1Aa912dc46bb8Df0c8809860#code"
},
{
"name": "RollupL1DAValidator",
"isVerified": true,
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies the data availability of ethereum calldata and blobs. Can be used by ZK stack rollups as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72213dfe8CA61B0A782970dCFebFb877778f9119#code"
},
{
"name": "L1AssetRouter",
"isVerified": true,
"address": "eth:0x8829AD80E425C646DAB305381ff105169FeEcE56",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109071,
"transactionHash": "0x2c945c00f7a9f08b1a0bc749a08d76ca4cd5ee6f8890011ab43898e9fa1fcdf2",
"implementations": [
"eth:0x20E17D0280DeaBb78f7c193E3Ef05F62adC0936E"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcaD49896F3d54d9A93eDdBFd370c8A4a1b239315"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x0cb7f11BA981E13598D70625dF8f4597d59f2F4F"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
}
],
"description": "Canonical central asset router for all ZK stack chains. Routes deposits and withdrawals to the respective asset handlers (like the L1NativeTokenVault); does not escrow funds itself.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8829AD80E425C646DAB305381ff105169FeEcE56#code"
},
{
"name": "ChainTypeManager",
"isVerified": true,
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520663,
"transactionHash": "0x514bbf46d227eee8567825bf5c8ee1855aa8a1916f7fee7b191e2e3d5ecba849",
"implementations": [
"eth:0x8279B7E48fA074f966385d87AEf29Bd031e54fD5"
]
},
{
"timestamp": 1722934619,
"transactionHash": "0xc1e73b06359759201b76ab7654e0bd49011f33c0230dfc24423985fbf36ea817",
"implementations": [
"eth:0xed1Dc7F0Be2B19cb02a2476150C8ea24A37c5274"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xb39B175a5E0945F2FB6A7F31764c0e31D9cF5b75"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xA3bCcAEe38cb0273A979118a0DE483E47D50F6Cb"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x6D598c77AF57Bfa17201483400615c61819dD45A"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x345314c7E4af84B763d98d23f772622E23AfB5CE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
}
],
"description": "Defines L2 diamond contract versions, creation and upgrade data and the proof system for all ZK stack chains connected to it. ZK chains are children of this central contract and can only upgrade to versions that were previously registered here. The current protocol version is 0,30,1.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C#code"
},
{
"name": "L1Nullifier",
"isVerified": true,
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717521479,
"transactionHash": "0xce3d72f23297a281cb58502dcc6a6c029489316a2faf9c4ef83141b1b254017c",
"implementations": [
"eth:0xCba1aF8f0bB223b2544F8eB8f69d1c7960f788dB"
]
},
{
"timestamp": 1724658671,
"transactionHash": "0xaec33529b74f8f9d56d7aa568c6358be299228a85e49ea85cb106eca5af7367c",
"implementations": [
"eth:0xb56A8225A745756DD215faf22E4796f373561AcD"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xF5A14DCdde1143443f06033200D345c2a2828A99"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xda2866AF0e170d0867a3F3bB52Db10D6E09Df78A"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x3B4FD84B27fE7B9247d5B8C6d1A29B2889C81518"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xC6f08EFb7BA78f40d00F41aFAC00211d59eb9431"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
}
],
"description": "Contract responsible for bookkeeping L1 bridging transactions. Used to finalize withdrawals and reclaim failed deposits. Does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB#code"
},
{
"name": "ProtocolUpgradeHandler",
"isVerified": true,
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e"
],
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1738855967,
"transactionHash": "0xa3d1fa107e6dc4ce67d92a5af74aa7dc34602c2a1d46727790819c1f974bed95",
"implementations": [
"eth:0xD5e9D3d483a93d03D8d604CC79dC9f2F4B78C604"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x0A67f0Fd2f7523057039F14969Fe23a5f620f19A"
]
},
{
"timestamp": 1760519471,
"transactionHash": "0x2309df20dd1cb3f3a3289e97517d10d399989292f966578240ec387246a13e61",
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
}
],
"description": "The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2 and emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **emergencyUpgradeBoard**: EmergencyUpgradeBoard\n * **guardians**: Guardians\n * **l2_protocol_governor**: ProtocolTimelockController; ultimately ZkProtocolGovernor\n * **securityCouncil**: SecurityCouncil",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3#code"
},
{
"name": "RollupDAManager",
"isVerified": true,
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple registry for allowed DA address pairs for the 'rollup' data availability mode (can be permanently enforced with isPermanentRollup=true). Rollup DA address pairs (especially the L1 part) usually point to contracts that validate if data was made available on Ethereum.\n* Roles:\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "SophonZkEvmAdmin",
"isVerified": true,
"address": "eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets SophonChainAdminMultisig act through it.\n* Roles:\n * **owner**: SophonChainAdminMultisig\n * **tokenMultiplierSetter**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3#code"
},
{
"name": "EraChainAdminProxy",
"isVerified": true,
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Matter Labs Multisig act through it.\n* Roles:\n * **owner**: Matter Labs Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2cf3bD6a9056b39999F3883955E183F655345063#code"
},
{
"name": "L1USDCBridge",
"isVerified": true,
"address": "eth:0xf553E6D903AA43420ED7e3bc2313bE9286A8F987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1734114251,
"transactionHash": "0x5428361f75c29b1f0e9959bd21fef8fb179b22f009f314e6403a305770e8735f",
"implementations": [
"eth:0x86dF12f51E3531689e0615bb2F739ddf01337715"
]
},
{
"timestamp": 1737484199,
"transactionHash": "0x152dc623c52d7f2b058ec5b4dfb67f5e0fee14c04dc9c0db4ae02ed2dc4ab998",
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 6\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code"
},
{
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to EraVerifierFflonk or EraVerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EraChainAdminProxy",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B#code"
},
{
"name": "L1NativeTokenVault",
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Canonical central asset escrow for all ZK stack chains.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1#code"
},
{
"name": "ChainAssetHandler",
"isVerified": true,
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758286391,
"transactionHash": "0x960c2e5bb98f4b9a07087b3b50fdc4681bbea1467aab3748dbb0050311f54ede",
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
}
],
"description": "Specialized contract for managing chain assets, i.e. chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDd5CB8B9037357B4cD37391A073798f8aaB61076#code"
},
{
"name": "ServerNotifier",
"isVerified": true,
"address": "eth:0xfca808A744735D9919EEBe4660B8Fd897456Ce31",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B"
],
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747199375,
"transactionHash": "0xbeb7447fc88b154a4730b01cb1a75b7093095056e88818c3659253111d06e66f",
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
},
{
"timestamp": 1784714999,
"transactionHash": "0xdbd5285f559e4ae32457b8425f67e1dfe76575c40999499e0b55d5cf985b85d8",
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
}
],
"description": "A simple contract that can be called by the ChainAdmin to emit notifications about chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Matter Labs Multisig",
"upgradableBy": [
{
"name": "Matter Labs Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfca808A744735D9919EEBe4660B8Fd897456Ce31#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 7\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"zksync2": [
{
"name": "ProtocolTimelockController",
"isVerified": true,
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 0s.\n* Roles:\n * **canceller**: ZkProtocolGovernor\n * **executor**: ZkProtocolGovernor\n * **proposer**: ZkProtocolGovernor\n * **timelockAdmin**: ProtocolTimelockController; ultimately ZkProtocolGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714#code"
},
{
"name": "ZkToken",
"isVerified": true,
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC"
],
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
},
"chain": "zksync2",
"pastUpgrades": [
{
"timestamp": 1716317326,
"transactionHash": "0x5bfce59c2ad18019ef20d58a3f1ec496cdc85537fc9564c932f7dcbbb2a15b56",
"implementations": [
"zksync:0x3931e73ebA79a7C898D3b0e02c7C62bA4F11cB14"
]
},
{
"timestamp": 1718011538,
"transactionHash": "0xa6bc022ba0f60ac6f10a6efb84b261e9ca1b327a611bdd7a1f4d37cc9b027a3c",
"implementations": [
"zksync:0x01a6715d3560241E09E865a46122bf347A576c09"
]
},
{
"timestamp": 1765195612,
"transactionHash": "0x749b9e6eed328052d679eb86639be807b4acf811ac8786f730b45258ba41ce6f",
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
}
],
"description": "The ZK token contract on ZKsync Era. Mintable through access control roles. Used for voting in the ZK stack governance system.\n* Roles:\n * **admin**: ZkTokenProxyAdmin; ultimately ProtocolUpgradeHandler_l2Alias\n * **defaultAdmin**: ProtocolUpgradeHandler_l2Alias\n * **minterAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"upgradableBy": [
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E#code"
},
{
"name": "ZkTokenProxyAdmin",
"isVerified": true,
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler_l2Alias",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xdB1E46B448e68a5E35CB693a99D59f784aD115CC#code"
},
{
"name": "ZkTokenTimelockController",
"isVerified": true,
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkTokenGovernor\n * **executor**: ZkTokenGovernor\n * **proposer**: ZkTokenGovernor\n * **timelockAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d#code"
}
]
},
"escrows": [
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": [
"ETH",
"USDT",
"BEAM",
"stAethir",
"PEPE",
"wstETH",
"weETH",
"sDAI",
"DAI",
"WBTC",
"stAZUR",
"stAVAIL",
"OPN",
"SOPH"
],
"premintedTokens": [
"SOPH"
],
"contract": {
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Shared bridge for depositing tokens to Treasure and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4",
"l2EtherAddress": "0x72af9F169B619D85A47Dfa8fefbCD39dE55c567D",
"tokensToAssignFromL1": [
"SOPH"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.29.2",
"description": "EraVM program that proves the correct execution of a batch of ZK Stack L2 blocks.",
"proverSystemProject": "boojum",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.29.2/system-contracts/bootloader/bootloader.yul",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.29.2`. Commit hash should be `dbfc9b5a40d68007dc405a9b669230104c1646e4`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 4d 3h - 8d 3h delay on code upgrades unless upgrade is initiated by the EmergencyUpgradeBoard in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+14 -0
[
{
"id": "f9f51fe7",
"date": "Thu, 08 Oct 2026 13:08:15 GMT",
"timestamp": 1791458527,
"description": "Vector contracts are now discovered here instead of referenced from the vector project, which was removed with the rest of the alt-DA projects.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Avail Multisig 2 (eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (eth:0x45828180bbE489350D621d002968A0585406d487) [global/TimelockController]\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 1 (eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "524b0aad",
"date": "Fri, 02 Oct 2026 12:42:30 GMT",
"timestamp": 1790944832,
"description": "Executed this proposal: https://www.tally.xyz/gov/zksync/proposal/49883493212277767948924829453899549013679463473253620701602979414799679547598?govId=eip155%3A324%3A0x76705327e682F2d96943280D99464Ab61219e34f. Now each chain admin can increase the execution delay of its chain (`increaseChainExecutionDelay`), the owner can set it freely (`setChainExecutionDelay`). The effective delay for Sophon is tracked in `executionDelaySophon` (still 3h).\n\nAlso adds a new `UPGRADER_ROLE` that can call `upgradeChainFromVersion()` through the VTL (forwarded to the diamond). Currently nobody holds the role for Sophon yet (tracked in `upgraderVTL`).",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776) [shared-zk-stack/ValidatorTimelock_v31] {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\n template:\n- \"shared-zk-stack/ValidatorTimelock_post29\"\n+ \"shared-zk-stack/ValidatorTimelock_v31\"\n sourceHashes.1:\n- \"0x5afea1019ac418e639ce9df65b9653bf0ca88ed81fb0abe0447e87328e39f10c\"\n+ \"0x51d6000b0e4437a2b99d13d332658fffb3da867cd56b05cbcb4bf4f954ff12ff\"\n description:\n- \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\"\n+ \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by at least 3h. Duration could be configured individually for zk stack chains by chain admins. All delays are capped at 30 days.\"\n values.$implementation:\n- \"eth:0x6086051f93412F550C0820e76f0fbE85F64C7ef8\"\n+ \"eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35\"\n values.$pastUpgrades.1:\n+ [\"2026-10-01T12:28:47.000Z\",\"0xdc4278c8b23d99f974a206dcaa1c1e20272c49095fa31eac842210ae97b435a8\",[\"eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ severity: HIGH\n values.executionDelaySophon:\n+ 10800\n+++ severity: HIGH\n values.executionDelaySophon_fmt:\n+ \"3h\"\n values.MAX_EXECUTION_DELAY:\n+ 2592000\n values.OPTIONAL_UPGRADER_ADMIN_ROLE:\n+ \"0xa1426e789273bde4307f3302768d8e4eb615f0f4dea304f29cccd58ff644d640\"\n values.UPGRADER_ROLE:\n+ \"0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3\"\n errors:\n- {\"executionDelaySophon\":\"Processing error occurred.\",\"executionDelaySophon_fmt\":\"Processing error occurred.\"}\n fieldMeta.executionDelay.description:\n+ \"Ecosystem-wide minimum execution delay (in seconds), set by the owner. The delay enforced for a chain is the maximum of this value and the chain-specific delay.\"\n fieldMeta.executionDelay_fmt.description:\n+ \"Ecosystem-wide minimum execution delay, set by the owner. The delay enforced for a chain is the maximum of this value and the chain-specific delay.\"\n implementationNames.eth:0x6086051f93412F550C0820e76f0fbE85F64C7ef8:\n- \"ValidatorTimelock\"\n implementationNames.eth:0x556DdC1617D7620f56317d2F2002FE440EA9Ad35:\n+ \"ValidatorTimelock\"\n }\n```"
}
]
},
{
"id": "cfbda6a9",
"date": "Thu, 10 Sep 2026 12:08:25 GMT",
"timestamp": 1789042037,
"description": "Rotated 3 sophon admin ms members.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x3b6036d410cA018661324766680674921a8b2d89\"\n+ \"eth:0x1B5a420Dc78290b0F30ED12634Fa9b068A22F96c\"\n values.$members.3:\n- \"eth:0x14574dfC6B7aF658c5033BA95673864947956521\"\n+ \"eth:0x02266d7404AF55F39605Ea1D2b6bfff6DF74157d\"\n values.$members.4:\n- \"eth:0xbe6D418089AaFeD4f95e516F21b2F56027a2E263\"\n+ \"eth:0x45Bd9b1B0525C81778A0E4AE1f58eFA9e88E53f8\"\n }\n```"
}
]
},
{
"id": "6149ea5c",
"date": "Wed, 19 Aug 2026 10:53:27 GMT",
"timestamp": 1787136744,
"description": "Removed 1 member of sophon ms.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "76237501",
"date": "Mon, 17 Aug 2026 11:30:50 GMT",
"timestamp": 1786966187,
"description": "SophonChainAdminMultisig upgraded the boojum verifiers to version v0.30.1 (registered on the ChainTypeManager before). The new verifiers are not yet reproduced.",
"isHighSeverity": true,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.12:\n+ [\"2026-08-16T16:02:23.000Z\",\"0x8425fcca675dd5870508e9d44ed69fd8a947103cf051816da2eeae3e985a0dad\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 12\n+ 13\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 128849018880\n+ 128849018881\n values.getSemverProtocolVersion.2:\n- 0\n+ 1\n values.getVerifier:\n- \"eth:0xC47D355402E78b886B628914B3b129F236fEe3cc\"\n+ \"eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x35CD3865199F2D9c574f34DD72520B19842d440c) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xC47D355402E78b886B628914B3b129F236fEe3cc) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66 or eth:0x35CD3865199F2D9c574f34DD72520B19842d440c depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract EraVerifierPlonk (eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract EraVerifierFflonk (eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract EraDualVerifier (eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9 or eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF depending on the supplied proof type.\n```"
}
]
},
{
"id": "9bef53cc",
"date": "Wed, 12 Aug 2026 09:57:36 GMT",
"timestamp": 1786528589,
"description": "Upgraded boojum verifier to v30.0, the same as the current zksync era verifier. It is not reproduced yet.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.11:\n+ [\"2026-08-11T13:00:11.000Z\",\"0xeb2beafc685e0ee4854da37ea0f13053576e4a266f020562743c9b3060f9858b\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 11\n+ 12\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051589\n+ 128849018880\n values.getSemverProtocolVersion.1:\n- 29\n+ 30\n values.getSemverProtocolVersion.2:\n- 5\n+ 0\n values.getVerifier:\n- \"eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e\"\n+ \"eth:0xC47D355402E78b886B628914B3b129F236fEe3cc\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x9f5C39a2790f38542065E7854b90407371923375 or eth:0xd22cA89e8991FCE568456914c616d303e3142395 depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0x9f5C39a2790f38542065E7854b90407371923375) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0xd22cA89e8991FCE568456914c616d303e3142395) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0x35CD3865199F2D9c574f34DD72520B19842d440c) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0xC47D355402E78b886B628914B3b129F236fEe3cc) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66 or eth:0x35CD3865199F2D9c574f34DD72520B19842d440c depending on the supplied proof type.\n```"
}
]
},
{
"id": "c53b5e0a",
"date": "Wed, 05 Aug 2026 10:30:10 GMT",
"timestamp": 1785925747,
"description": "Upgraded boojum verifiers to the latest version (the same as zksync Era, not yet reproduced).\n\nAlso rotated two ms members.",
"isHighSeverity": true,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.10:\n+ [\"2026-08-04T14:53:47.000Z\",\"0x6c47ec4cd22ac63a14d8e2e8f6f931af61e7b734b54153e63cd7970b2c598d4e\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 10\n+ 11\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051588\n+ 124554051589\n values.getSemverProtocolVersion.2:\n- 4\n+ 5\n values.getVerifier:\n- \"eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45\"\n+ \"eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x7f33D100f482093182111d69a4a457289e99f4ec) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442 or eth:0x7f33D100f482093182111d69a4a457289e99f4ec depending on the supplied proof type.\n```\n\n```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0xF6877208302D9715A576D4Bff96f6576B5A1dFbA\"\n+ \"eth:0x891F19CdefBce82e2F39f34C2322526c01E7A845\"\n values.$members.5:\n- \"eth:0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69\"\n+ \"eth:0xbe6D418089AaFeD4f95e516F21b2F56027a2E263\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e) [shared-zk-stack/DualVerifier]\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x9f5C39a2790f38542065E7854b90407371923375 or eth:0xd22cA89e8991FCE568456914c616d303e3142395 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x891F19CdefBce82e2F39f34C2322526c01E7A845)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0x9f5C39a2790f38542065E7854b90407371923375) [shared-zk-stack/L1VerifierFflonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0xd22cA89e8991FCE568456914c616d303e3142395) [shared-zk-stack/L1VerifierPlonk]\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```"
}
]
},
{
"id": "2e7b9902",
"date": "Tue, 30 Jun 2026 10:28:58 GMT",
"timestamp": 1782815274,
"description": "Rotated two validators.",
"isHighSeverity": false,
"changeCount": 13,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776) [shared-zk-stack/ValidatorTimelock_post29] {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTL.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n values.validatorsVTLFullAC.PRECOMMITTER_ROLE.members.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTLFullAC.PRECOMMITTER_ROLE.members.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n values.validatorsVTLFullAC.COMMITTER_ROLE.members.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTLFullAC.COMMITTER_ROLE.members.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n values.validatorsVTLFullAC.REVERTER_ROLE.members.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTLFullAC.REVERTER_ROLE.members.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n values.validatorsVTLFullAC.PROVER_ROLE.members.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTLFullAC.PROVER_ROLE.members.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n values.validatorsVTLFullAC.EXECUTOR_ROLE.members.0:\n- \"eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n+ \"eth:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B\"\n values.validatorsVTLFullAC.EXECUTOR_ROLE.members.1:\n- \"eth:0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n+ \"eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3\"\n }\n```\n\n```diff\n contract SophonZkEvmAdmin (eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) [shared-zk-stack/ChainAdmin] {\n +++ description: A governance proxy that lets eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1 act through it.\n values.tokenMultiplierSetter:\n- \"eth:0xe14828E4405239dD331F194F1B7883eeD73bCBF3\"\n+ \"eth:0xB1e2974E81922c1d5923dB4580292fB9954E9E05\"\n }\n```"
}
]
},
{
"id": "9625dc34",
"date": "Fri, 26 Jun 2026 09:48:20 GMT",
"timestamp": 1782464947,
"description": "User deposits into sophon are paused: only authorized superuser can pass transaction filterer now: https://disco.l2beat.com/diff/eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063/eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41.\n\nSophon chain is being sunset: https://x.com/sophon/status/2070192257295335800.",
"isHighSeverity": true,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) [shared-zk-stack/Diamond] {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n+++ description: This contract must expose the ITransactionFilterer interface (see Mailbox facet) and is used for censoring transactions pushed from L1 to L2.\n+++ severity: HIGH\n values.getTransactionFilterer:\n- \"eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063\"\n+ \"eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41\"\n }\n```\n\n```diff\n EOA (eth:0x50B238788747B26c408681283D148659F9da7Cf9) {\n +++ description: None\n receivedPermissions.0.role:\n- \".whitelistedSendersAC\"\n+ \".superuserAC\"\n receivedPermissions.0.from:\n- \"eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063\"\n+ \"eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41\"\n receivedPermissions.1.from:\n- \"eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063\"\n+ \"eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SophonTransactionFilterer (eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063) [shared-zk-stack/TransactionFilterer]\n +++ description: A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n```\n\n```diff\n contract SophonZkEvmAdmin (eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) [shared-zk-stack/ChainAdmin] {\n +++ description: A governance proxy that lets eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1 act through it.\n directlyReceivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41\",\"description\":\"call requestL2Transaction() with any target/calldata (whitelisted superuser sender).\",\"role\":\".superuserAC\"}\n }\n```\n\n```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41\",\"description\":\"call requestL2Transaction() with any target/calldata (whitelisted superuser sender).\",\"role\":\".superuserAC\",\"via\":[{\"address\":\"eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3\"}]}\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063\",\"description\":\"manage the whitelist.\",\"role\":\".defaultAdminAC\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract SophonTransactionFilterer (eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41) [sophon/SophonTransactionFilterer]\n +++ description: A contract implementing the ITransactionFilterer interface, allows only trxs from whitelisted superusers. The whitelist is defined in AccessControl roles.\n```"
}
]
},
{
"id": "26e42359",
"date": "Tue, 16 Jun 2026 09:44:37 GMT",
"timestamp": 1781602990,
"description": "Multisig member switched.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xF6877208302D9715A576D4Bff96f6576B5A1dFbA\"\n values.$members.3:\n- \"eth:0x20719Abd2E63518e68D30a295388cAd6B542dCEf\"\n }\n```"
}
]
},
{
"id": "5f784348",
"date": "Mon, 08 Jun 2026 10:14:06 GMT",
"timestamp": 1780913579,
"description": "Removed one ms member for admin ms, rotated two more and decreased the threshold.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0x11BB5F79750de2Cc71e80cB2C59cF0a60EFFa95d\"\n+ \"eth:0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336\"\n values.$members.1:\n- \"eth:0x0BA5557075B4E30bA409B01797c9c78b3Ce192bF\"\n+ \"eth:0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97\"\n values.$members.5:\n- \"eth:0x7f413262Cb811B034d077d9184b5Efda6943f2c3\"\n values.$threshold:\n- 4\n+ 3\n values.multisigThreshold:\n- \"4 of 7 (57%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "5d5e374b",
"date": "Mon, 16 Feb 2026 14:24:27 GMT",
"timestamp": 1771251793,
"description": "Upgrade to v29.4 (this verfier upgrade version was introduced in an [emergency upgrade](https://etherscan.io/tx/0xef1d02776ae4a2a590278883f7347c4a863fcbe7a0b9ce96bc766084aab5dee9)).",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.9:\n+ [\"2026-02-13T19:31:11.000Z\",\"0x13067d49b849a7460f1f8a587edaee878b49dc7b2278ce8b16e223ca042ddbb9\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 9\n+ 10\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051587\n+ 124554051588\n values.getSemverProtocolVersion.2:\n- 3\n+ 4\n values.getVerifier:\n- \"eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B\"\n+ \"eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d or eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026 depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n contract SophonZkEvmAdmin (eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: A governance proxy that lets eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1 act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.7:\n+ {\"_protocolVersion\":124554051588,\"_upgradeTimestamp\":0}\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0x7f33D100f482093182111d69a4a457289e99f4ec)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0xCD279BD537c8e1A1acC46aC2205bebD8902F7A45)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442 or eth:0x7f33D100f482093182111d69a4a457289e99f4ec depending on the supplied proof type.\n```"
}
]
},
{
"id": "0c1fc054",
"date": "Wed, 28 Jan 2026 11:04:18 GMT",
"timestamp": 1769598194,
"description": "Upgraded boojum verifier to the latest version.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Diamond (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.8:\n+ [\"2026-01-27T18:02:59.000Z\",\"0x02b9e48f0f8550fe61d750085088df57ec084a55468a6b259bc600b2d9f9a8de\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 8\n+ 9\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 124554051586\n+ 124554051587\n values.getSemverProtocolVersion.2:\n- 2\n+ 3\n values.getVerifier:\n- \"eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3\"\n+ \"eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c or eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7 depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n contract SophonZkEvmAdmin (eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: A governance proxy that lets eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1 act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.6:\n+ {\"_protocolVersion\":124554051587,\"_upgradeTimestamp\":0}\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0x4f06ef57618b16959879fC86E65eda0bd629A12B)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d or eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0xB3f4396C2040e502d0556Cbb16C0B22fE777A026)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xE3743181a4b0A0C1260826105c6BBA4b6e18D79d)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```"
}
]
},
{
"id": "91a6cdb2",
"date": "Mon, 19 Jan 2026 11:48:08 GMT",
"timestamp": 1768823225,
"description": "Removed one multisig member.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) {\n +++ description: None\n values.$members.5:\n- \"eth:0x90E10C37d8d9e854e7775B0069728642A1F88610\"\n values.multisigThreshold:\n- \"4 of 8 (50%)\"\n+ \"4 of 7 (57%)\"\n }\n```"
}
]
},
{
"id": "5ebcb0e5",
"date": "Tue, 28 Oct 2025 09:11:22 GMT",
"timestamp": 1761642202,
"description": "v29 upgrade.",
"isHighSeverity": true,
"changeCount": 48,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n sourceHashes.1:\n- \"0xbc2380479529743c27e6ab96cdf08210319fadcbca0856cf50c6b1b54bf8437f\"\n+ \"0xc7513302e4e09efc907df5e645d9f8037b1d02409f9a9089f61061c8951ef1ff\"\n values.$implementation.0:\n- \"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n+ \"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\"\n values.$implementation.1:\n- \"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n+ \"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\"\n values.$implementation.2:\n- \"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n+ \"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\"\n values.$implementation.3:\n- \"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n+ \"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"\n values.$pastUpgrades.7:\n+ [\"2025-10-28T00:52:35.000Z\",\"0x1dd8584ad0e2a106271e682fbec33c6066933fbf4c243f46eba13707e1ed729f\",[\"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\",\"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\",\"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\",\"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"]]\n values.$upgradeCount:\n- 7\n+ 8\n values.facetAddresses.0:\n- \"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n+ \"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253\"\n values.facetAddresses.1:\n- \"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n+ \"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2\"\n values.facetAddresses.2:\n- \"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n+ \"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45\"\n values.facetAddresses.3:\n- \"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n+ \"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691\"\n values.facets.eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"getRollupDAManager()\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.eth:0x1666124221622eb6154306Ea9BA87043e8be88B2:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2MessageInclusionShared(uint256,uint256,uint256,(uint16,address,bytes),bytes32[])\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\",\"proveL2LogInclusionShared(uint256,uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\"]\n values.facets.eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691:\n+ [\"precommitSharedBridge(address,uint256,bytes)\",\"commitBatchesSharedBridge(address,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(address,uint256,uint256,bytes)\",\"revertBatchesSharedBridge(address,uint256)\",\"proveBatchesSharedBridge(address,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35\"\n+ \"0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e\"\n+ \"0x010005f73e7c299ed73db937843643bdc276cbc2cc8596287e1e0cf3afc60252\"\n values.getL2EvmEmulatorBytecodeHash:\n- \"0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da\"\n+ \"0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 120259084289\n+ 124554051586\n values.getSemverProtocolVersion.1:\n- 28\n+ 29\n values.getSemverProtocolVersion.2:\n- 1\n+ 2\n values.getVerifier:\n- \"eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A\"\n+ \"eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3\"\n values.validators.0:\n- \"eth:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E\"\n values.validators.1:\n- \"eth:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"\n+ \"eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776\"\n values.getRollupDAManager:\n+ \"eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45\"\n implementationNames.eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n- \"AdminFacet\"\n implementationNames.eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n- \"GettersFacet\"\n implementationNames.eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n- \"MailboxFacet\"\n implementationNames.eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n- \"ExecutorFacet\"\n implementationNames.eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253:\n+ \"AdminFacet\"\n implementationNames.eth:0x1666124221622eb6154306Ea9BA87043e8be88B2:\n+ \"GettersFacet\"\n implementationNames.eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45:\n+ \"MailboxFacet\"\n implementationNames.eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract ValidatorTimelock (eth:0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n- Status: DELETED\n contract ValidatorTimelock (eth:0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911 or eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6 depending on the supplied proof type.\n```\n\n```diff\n contract SophonZkEvmAdmin (eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: A governance proxy that lets eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1 act through it.\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.5:\n+ {\"_protocolVersion\":124554051586,\"_upgradeTimestamp\":1761224400}\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (eth:0x4d335C5C08FEc91a39965351AbB6E315ad2e9ff3)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c or eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (eth:0xD324a7c8556A059371B207fB96FD77bE24E2042c)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (eth:0xe201837d151E5aC33Af3305f287Ad6F6a7Dfccd7)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n reference RollupDAManager (eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45)\n +++ description: None\n```"
}
]
},
{
"id": "587e74af",
"date": "Wed, 03 Sep 2025 07:56:33 GMT",
"timestamp": 1756886128,
"description": "Added new multisig member.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonChainAdminMultisig (eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x11BB5F79750de2Cc71e80cB2C59cF0a60EFFa95d\"\n values.multisigThreshold:\n- \"4 of 7 (57%)\"\n+ \"4 of 8 (50%)\"\n }\n```"
}
]
},
{
"id": "cac5e587",
"date": "Thu, 14 Aug 2025 09:00:38 GMT",
"timestamp": 1755162034,
"description": "Standard zkstack v28.1 upgrade.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$pastUpgrades.6:\n+ [\"2025-08-12T17:04:59.000Z\",\"0x97141968736d3d95e4cbf3c10293b7bd56f43ad6d4e3bed854e0025ed2d2d7e4\",[\"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC\",\"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\",\"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\",\"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"]]\n values.$upgradeCount:\n- 6\n+ 7\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 120259084288\n+ 120259084289\n values.getSemverProtocolVersion.2:\n- 0\n+ 1\n values.getVerifier:\n- \"eth:0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579\"\n+ \"eth:0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.4:\n+ {\"_protocolVersion\":120259084289,\"_upgradeTimestamp\":1754911800}\n }\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0xD71DDC9956781bf07DbFb9fCa891f971dbE9868A)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0x1AC4F629Fdc77A7700B68d03bF8D1A53f2210911 or eth:0x2db2ffdecb7446aaab01FAc3f4D55863db3C5bd6 depending on the supplied proof type.\n```"
}
]
},
{
"id": "f15edb84",
"date": "Mon, 14 Jul 2025 12:47:17 GMT",
"timestamp": 1752497237,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3)\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock2 (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract AvailL1DAValidator (0x8f50d93B9955B285f787043B30B5F51D09bE0120)\n +++ description: Contract that verifies that the validiums data was made available on Avail by querying the eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a on Ethereum for a merkle proof of inclusion.\n```\n\n```diff\n+ Status: CREATED\n contract SophonTransactionFilterer (0x9D06B34adc3026eF876e4DABb859C424DbDA3063)\n +++ description: A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SophonChainAdminMultisig (0xe4644b6d106A18062344c0A853666bc0B8f052d1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987)\n +++ description: None\n```"
}
]
},
{
"id": "16152161",
"date": "Mon, 07 Jul 2025 07:04:45 GMT",
"timestamp": 1751871885,
"description": "standard zk stack v28 upgrade.",
"isHighSeverity": true,
"changeCount": 39,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.$implementation.0:\n- \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n+ \"0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n values.$implementation.1:\n- \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n+ \"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n values.$implementation.2:\n- \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n+ \"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n values.$implementation.3:\n- \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n+ \"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n values.$pastUpgrades.5:\n+ [\"2025-07-01T18:54:59.000Z\",\"0x3fb1153770857ac1714eb72d2cc7a76ebf1160bb8e844e8aa08164c72a25d419\",[\"0x431449e2a28A69122860A4956A3f7191eE15aFBC\",\"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\",\"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\",\"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.facetAddresses.0:\n- \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n+ \"0x431449e2a28A69122860A4956A3f7191eE15aFBC\"\n values.facetAddresses.1:\n- \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n+ \"0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22\"\n values.facetAddresses.2:\n- \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n+ \"0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec\"\n values.facetAddresses.3:\n- \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n+ \"0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A\"\n values.facets.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n+ [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100087fe7df1cf5616646f85bd5eebc8efe5d8deac4d85bea9b9aefd88803dd\"\n+ \"0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x0100050bf9baf9d08e5d3c037f8d8b486076de7e6dceb3f3fc0989ea2c99cd67\"\n+ \"0x010005f72e443c94460f4583fb38ef5d0c5cd9897021c41df840f91465c0392e\"\n values.getL2EvmEmulatorBytecodeHash:\n- \"0x01000bbb8116fe7bdf690c19740ea350375426cec23f4f1f69a12fdc58adc9ba\"\n+ \"0x01000d83e0329d9144ad041430fafcbc2b388e5434db8cb8a96e80157738a1da\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 115964116992\n+ 120259084288\n values.getSemverProtocolVersion.1:\n- 27\n+ 28\n values.getVerifier:\n- \"0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0\"\n+ \"0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579\"\n implementationNames.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n- \"AdminFacet\"\n implementationNames.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n- \"GettersFacet\"\n implementationNames.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n- \"MailboxFacet\"\n implementationNames.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n- \"ExecutorFacet\"\n implementationNames.0x431449e2a28A69122860A4956A3f7191eE15aFBC:\n+ \"AdminFacet\"\n implementationNames.0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22:\n+ \"GettersFacet\"\n implementationNames.0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec:\n+ \"MailboxFacet\"\n implementationNames.0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DualVerifier (0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0)\n +++ description: A router contract for verifiers. Routes verification requests to 0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF or 0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e depending on the supplied proof type.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierFflonk (0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n- Status: DELETED\n contract L1VerifierPlonk (0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.3:\n+ {\"_protocolVersion\":120259084288,\"_upgradeTimestamp\":1750942800}\n }\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579)\n +++ description: A router contract for verifiers. Routes verification requests to 0xD5dBE903F5382B052317D326FA1a7B63710C6a5b or 0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1 depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0xD5dBE903F5382B052317D326FA1a7B63710C6a5b)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```"
}
]
},
{
"id": "86c7361d",
"date": "Fri, 30 May 2025 04:34:03 GMT",
"timestamp": 1748579643,
"description": "2 valis removed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (0x4cc87B0A504047967CeD9A955431B3229237e7de) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"validateZkStack\",\"from\":\"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\",\"role\":\".validatorsVTL\"}\n }\n```\n\n```diff\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.3:\n- \"0xf3b07F6744e06cd5074b7D15ed2c33760837CE1f\"\n values.validatorsVTL.2:\n- \"0x4cc87B0A504047967CeD9A955431B3229237e7de\"\n }\n```\n\n```diff\n EOA (0xf3b07F6744e06cd5074b7D15ed2c33760837CE1f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"validateZkStack\",\"from\":\"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\",\"role\":\".validatorsVTL\"}\n }\n```"
}
]
},
{
"id": "a1cd6b48",
"date": "Mon, 26 May 2025 15:40:26 GMT",
"timestamp": 1748274026,
"description": "two new validators registered.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.validatorsVTL.3:\n+ \"0xf3b07F6744e06cd5074b7D15ed2c33760837CE1f\"\n values.validatorsVTL.2:\n+ \"0x4cc87B0A504047967CeD9A955431B3229237e7de\"\n values.validatorsVTL.1:\n- \"0xf3b07F6744e06cd5074b7D15ed2c33760837CE1f\"\n+ \"0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA\"\n values.validatorsVTL.0:\n- \"0x4cc87B0A504047967CeD9A955431B3229237e7de\"\n+ \"0x78325837C780788Ce6afF7883FdF68890010Fe30\"\n }\n```"
}
]
},
{
"id": "771fa297",
"date": "Mon, 19 May 2025 15:29:22 GMT",
"timestamp": 1747668562,
"description": "Whitelisted USDC bridge contract on L2.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonTransactionFilterer (0x9D06B34adc3026eF876e4DABb859C424DbDA3063) {\n +++ description: A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n values.accessControl.WHITELISTED_ROLE.members.1:\n+ \"0x0F44bac3ec514BE912aa4359017593B35E868d74\"\n+++ description: Addresses with this role are on the whitelist as contract targets for requestL2Transaction() calls. The L2AssetRouter is whitelisted here so that users can bridge assets.\n values.whitelistedContractsAC.1:\n+ \"0x0F44bac3ec514BE912aa4359017593B35E868d74\"\n }\n```"
}
]
},
{
"id": "e6ae3907",
"date": "Wed, 14 May 2025 13:53:00 GMT",
"timestamp": 1747230780,
"description": "v27 upgrade to standard contracts/verifiers.\n\nadd txfilterer (functions like a whitelist, blocks per default).",
"isHighSeverity": true,
"changeCount": 50,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n sourceHashes.4:\n- \"0xf3a1cb3dd9315b2dfa9e9aca6d6b09e987a1eb463588f115e2eb142eaa2a4ac6\"\n+ \"0xb3038139dce45f6c1aaedbfb1b321c230301b2d004da109b39a17d827c6b0e4f\"\n sourceHashes.3:\n- \"0xcd2dee9d49d75aa37138514c1f32d29c60222002963e0c0a7e1a815dff00444f\"\n+ \"0x1f9f7cd43747f5bcf879d544be0baca967245540e70592112cdc90c360f30486\"\n sourceHashes.2:\n- \"0x28719e86c8042765405cbb88205d1fb130f39f3bb0923afe7fef6dd5ef798c31\"\n+ \"0xcd2dee9d49d75aa37138514c1f32d29c60222002963e0c0a7e1a815dff00444f\"\n sourceHashes.1:\n- \"0x396f0e8e4bc223f186f87b7eabf2f4b537ce84f8515aa16c86400c4f10af79b1\"\n+ \"0xab7812fa82c483b781aee4c2339b860fcdee4033de1e243370a77a20fc353ddc\"\n sourceHashes.0:\n- \"0x8337740067b4f9278182a83ca83d62ca2611966b8beca6e0a49394204c8f74da\"\n+ \"0xca793d2e01bb37722ba48f56662e8602e693d6808ed9587867c2bac43c3dec25\"\n values.$implementation.3:\n- \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n+ \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n values.$implementation.2:\n- \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n+ \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n values.$implementation.1:\n- \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n+ \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n values.$implementation.0:\n- \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n+ \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n values.$pastUpgrades.4:\n+ [\"2025-05-12T22:07:23.000Z\",\"0x0366efdb1fc5b705d59c1e88cdc9e9118eea686227b8062627b8bf65be4b6a56\",[\"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\",\"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\",\"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\",\"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.facetAddresses.3:\n- \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n+ \"0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f\"\n values.facetAddresses.2:\n- \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n+ \"0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4\"\n values.facetAddresses.1:\n- \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n+ \"0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4\"\n values.facetAddresses.0:\n- \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n+ \"0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490\"\n values.facets.0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb:\n- [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1:\n- [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x36b026c39125964D99596CE302866B5A59E4dE27:\n- [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800:\n- [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.facets.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"allowEvmEmulation()\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2EvmEmulatorBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"requestL2ServiceTransaction(address,bytes)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n+ [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x0100088580465d88420e6369230ee94a32ff356dbcdd407a4be49fc8009b2a81\"\n+ \"0x0100087fe7df1cf5616646f85bd5eebc8efe5d8deac4d85bea9b9aefd88803dd\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x010004dbf8be36c421254d005352f8245146906919be0099e8a50d0e78df85e0\"\n+ \"0x0100050bf9baf9d08e5d3c037f8d8b486076de7e6dceb3f3fc0989ea2c99cd67\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 111669149696\n+ 115964116992\n values.getSemverProtocolVersion.0:\n- 26\n+ 27\n+++ description: This contract must expose the ITransactionFilterer interface (see Mailbox facet) and is used for censoring transactions pushed from L1 to L2.\n+++ severity: HIGH\n values.getTransactionFilterer:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x9D06B34adc3026eF876e4DABb859C424DbDA3063\"\n values.getVerifier:\n- \"0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5\"\n+ \"0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0\"\n values.getL2EvmEmulatorBytecodeHash:\n+ \"0x01000bbb8116fe7bdf690c19740ea350375426cec23f4f1f69a12fdc58adc9ba\"\n implementationNames.0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb:\n- \"AdminFacet\"\n implementationNames.0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1:\n- \"GettersFacet\"\n implementationNames.0x36b026c39125964D99596CE302866B5A59E4dE27:\n- \"MailboxFacet\"\n implementationNames.0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800:\n- \"ExecutorFacet\"\n implementationNames.0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4:\n+ \"AdminFacet\"\n implementationNames.0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4:\n+ \"GettersFacet\"\n implementationNames.0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f:\n+ \"MailboxFacet\"\n implementationNames.0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490:\n+ \"ExecutorFacet\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Verifier (0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5)\n +++ description: Implements the ZK proof verification logic.\n```\n\n```diff\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.2:\n+ {\"_protocolVersion\":107374182400,\"_upgradeTimestamp\":1738591200}\n values.upgradeTimestamps.1._protocolVersion:\n- 107374182400\n+ 115964116992\n values.upgradeTimestamps.1._upgradeTimestamp:\n- 1738591200\n+ 1747029600\n }\n```\n\n```diff\n contract SophonChainAdminMultisig (0xe4644b6d106A18062344c0A853666bc0B8f052d1) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3\",\"description\":\"manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role).\",\"via\":[{\"address\":\"0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3\"}]}\n receivedPermissions.0.from:\n- \"0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3\"\n+ \"0x9D06B34adc3026eF876e4DABb859C424DbDA3063\"\n receivedPermissions.0.description:\n- \"manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role).\"\n+ \"manage the whitelist.\"\n receivedPermissions.0.via:\n- [{\"address\":\"0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3\"}]\n }\n```\n\n```diff\n+ Status: CREATED\n contract DualVerifier (0x079004D9C534Ff1dC3414F5dB31B4a0a1F4fc9d0)\n +++ description: A router contract for verifiers. Routes verification requests to 0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF or 0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e depending on the supplied proof type.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierFflonk (0x1F517f2bAb178AdD6e282297a4728bcc50E9F6CF)\n +++ description: Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n```\n\n```diff\n+ Status: CREATED\n contract SophonTransactionFilterer (0x9D06B34adc3026eF876e4DABb859C424DbDA3063)\n +++ description: A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n```\n\n```diff\n+ Status: CREATED\n contract L1VerifierPlonk (0xAd36FFc4066855aeF3Bdf6BF03cA427bb084636e)\n +++ description: Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n```"
}
]
},
{
"id": "c56e03b2",
"date": "Thu, 24 Apr 2025 05:13:04 GMT",
"timestamp": 1745471584,
"description": "L1DAValidator update to a contract that integrates with Vector (SP1) Avail DA bridge.",
"isHighSeverity": true,
"changeCount": 13,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n+++ severity: HIGH\n values.getDAValidatorPair.1:\n- \"0xFa30EAe30351A83809657299F6Cad9557c232e8C\"\n+ \"0x8f50d93B9955B285f787043B30B5F51D09bE0120\"\n+++ severity: HIGH\n values.getDAValidatorPair.0:\n- \"0x907b30407249949521Bf0c89A43558dae200146A\"\n+ \"0xf39dE5c61b276391b913cAFB057DC8B9de5d58dA\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ValidiumL1DAValidator (0x907b30407249949521Bf0c89A43558dae200146A)\n +++ description: Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n```\n\n```diff\n contract SophonChainAdminMultisig (0xe4644b6d106A18062344c0A853666bc0B8f052d1) {\n +++ description: None\n values.$members.6:\n+ \"0x14574dfC6B7aF658c5033BA95673864947956521\"\n values.$members.5:\n- \"0x14574dfC6B7aF658c5033BA95673864947956521\"\n+ \"0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69\"\n values.$members.4:\n- \"0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69\"\n+ \"0x3b6036d410cA018661324766680674921a8b2d89\"\n values.$members.3:\n- \"0x3b6036d410cA018661324766680674921a8b2d89\"\n+ \"0x20719Abd2E63518e68D30a295388cAd6B542dCEf\"\n values.$members.2:\n- \"0x20719Abd2E63518e68D30a295388cAd6B542dCEf\"\n+ \"0x7f413262Cb811B034d077d9184b5Efda6943f2c3\"\n values.$members.1:\n- \"0x7f413262Cb811B034d077d9184b5Efda6943f2c3\"\n+ \"0x90E10C37d8d9e854e7775B0069728642A1F88610\"\n values.$members.0:\n- \"0x90E10C37d8d9e854e7775B0069728642A1F88610\"\n+ \"0x0BA5557075B4E30bA409B01797c9c78b3Ce192bF\"\n values.$threshold:\n- 3\n+ 4\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"4 of 7 (57%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract AvailL1DAValidator (0x8f50d93B9955B285f787043B30B5F51D09bE0120)\n +++ description: Contract that verifies that the validiums data was made available on Avail by querying the 0x054fd961708D8E2B9c10a63F6157c74458889F0a on Ethereum for a merkle proof of inclusion.\n```"
}
]
},
{
"id": "0b487d66",
"date": "Wed, 02 Apr 2025 15:08:27 GMT",
"timestamp": 1743606507,
"description": "shared zk stack contracts upgraded to v26: config related changes for all children chains.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ValidiumL1DAValidator (0x907b30407249949521Bf0c89A43558dae200146A)\n +++ description: Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n```"
}
]
},
{
"id": "7af923c5",
"date": "Fri, 28 Mar 2025 10:47:08 GMT",
"timestamp": 1743158828,
"description": "v26 upgrade.",
"isHighSeverity": true,
"changeCount": 58,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n template:\n- \"shared-zk-stack/Diamond\"\n+ \"shared-zk-stack/Diamond_v26\"\n sourceHashes.4:\n- \"0xdf47c6cd4fcffcfa4a670e1544e2391acc365cd7fd9b8e7583d58b28dff50c40\"\n+ \"0xf3a1cb3dd9315b2dfa9e9aca6d6b09e987a1eb463588f115e2eb142eaa2a4ac6\"\n sourceHashes.3:\n- \"0x91db58e4059dfed7357e56dac17d2963c6f9cfb540f527988ed25172251a2584\"\n+ \"0xcd2dee9d49d75aa37138514c1f32d29c60222002963e0c0a7e1a815dff00444f\"\n sourceHashes.2:\n- \"0xcd2dee9d49d75aa37138514c1f32d29c60222002963e0c0a7e1a815dff00444f\"\n+ \"0x28719e86c8042765405cbb88205d1fb130f39f3bb0923afe7fef6dd5ef798c31\"\n sourceHashes.1:\n- \"0x981d4f2ae5949ab33c6ba83f6446595d3b853bf6f7157884304445d70b185374\"\n+ \"0x396f0e8e4bc223f186f87b7eabf2f4b537ce84f8515aa16c86400c4f10af79b1\"\n sourceHashes.0:\n- \"0x081a1805983e86cd6a80ed48c012c26bf9a39473c0f1e69b357afff240f027a0\"\n+ \"0x8337740067b4f9278182a83ca83d62ca2611966b8beca6e0a49394204c8f74da\"\n description:\n- \"The main contract defining the Layer 2. The operator commits blocks and provides a ZK proof which is validated by the Verifier contract and then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\"\n+ \"The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\"\n issuedPermissions.2:\n+ {\"permission\":\"interact\",\"to\":\"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\",\"description\":\"commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock.\",\"via\":[]}\n values.$implementation.3:\n- \"0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a\"\n+ \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n values.$implementation.2:\n- \"0xBB13642F795014E0EAC2b0d52ECD5162ECb66712\"\n+ \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n values.$implementation.1:\n- \"0x5575218cECd370E1d630d1AdB03c254B0B376821\"\n+ \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n values.$implementation.0:\n- \"0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9\"\n+ \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n values.$pastUpgrades.3:\n+ [\"2025-03-27T17:07:47.000Z\",\"0x92c1aabdc2a908d40bee5207ba851be0a7f91747e4d86f4aa23201d5605d7f75\",[\"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\",\"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\",\"0x36b026c39125964D99596CE302866B5A59E4dE27\",\"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.daMode:\n- 1\n values.facetAddresses.3:\n- \"0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a\"\n+ \"0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800\"\n values.facetAddresses.2:\n- \"0xBB13642F795014E0EAC2b0d52ECD5162ECb66712\"\n+ \"0x36b026c39125964D99596CE302866B5A59E4dE27\"\n values.facetAddresses.1:\n- \"0x5575218cECd370E1d630d1AdB03c254B0B376821\"\n+ \"0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1\"\n values.facetAddresses.0:\n- \"0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9\"\n+ \"0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb\"\n values.facets.0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a:\n- [\"acceptAdmin()\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"freezeDiamond()\",\"setPendingAdmin(address)\",\"setPorterAvailability(bool)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\",\"setTokenMultiplier(uint128,uint128)\",\"setTransactionFilterer(address)\",\"setValidator(address,bool)\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\"]\n values.facets.0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9:\n- [\"baseTokenGasPriceMultiplierDenominator()\",\"baseTokenGasPriceMultiplierNominator()\",\"facetAddress(bytes4)\",\"facetAddresses()\",\"facetFunctionSelectors(address)\",\"facets()\",\"getAdmin()\",\"getBaseToken()\",\"getBaseTokenBridge()\",\"getBridgehub()\",\"getFirstUnprocessedPriorityTx()\",\"getL2BootloaderBytecodeHash()\",\"getL2DefaultAccountBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getL2SystemContractsUpgradeTxHash()\",\"getPendingAdmin()\",\"getPriorityQueueSize()\",\"getPriorityTxMaxGasLimit()\",\"getProtocolVersion()\",\"getPubdataPricingMode()\",\"getSemverProtocolVersion()\",\"getStateTransitionManager()\",\"getTotalBatchesCommitted()\",\"getTotalBatchesExecuted()\",\"getTotalBatchesVerified()\",\"getTotalBlocksCommitted()\",\"getTotalBlocksExecuted()\",\"getTotalBlocksVerified()\",\"getTotalPriorityTxs()\",\"getVerifier()\",\"getVerifierParams()\",\"isDiamondStorageFrozen()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"isFunctionFreezable(bytes4)\",\"isValidator(address)\",\"l2LogsRootHash(uint256)\",\"priorityQueueFrontOperation()\",\"storedBatchHash(uint256)\",\"storedBlockHash(uint256)\"]\n values.facets.0x5575218cECd370E1d630d1AdB03c254B0B376821:\n- [\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"transferEthToSharedBridge()\"]\n values.facets.0xBB13642F795014E0EAC2b0d52ECD5162ECb66712:\n- [\"commitBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"commitBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"executeBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"executeBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"proveBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"proveBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"revertBatches(uint256)\",\"revertBatchesSharedBridge(uint256,uint256)\"]\n values.facets.0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb:\n+ [\"acceptAdmin()\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\",\"setPorterAvailability(bool)\",\"setTransactionFilterer(address)\",\"setTokenMultiplier(uint128,uint128)\",\"freezeDiamond()\",\"genesisUpgrade(address,address,bytes,bytes[])\",\"forwardedBridgeMint(bytes,bool)\",\"prepareChainCommitment()\",\"setValidator(address,bool)\",\"setPendingAdmin(address)\",\"setDAValidatorPair(address,address)\",\"forwardedBridgeBurn(address,address,bytes)\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"makePermanentRollup()\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"forwardedBridgeRecoverFailedTransfer(uint256,bytes32,address,bytes)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\"]\n values.facets.0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1:\n+ [\"getPubdataPricingMode()\",\"getPriorityTxMaxGasLimit()\",\"getTotalBlocksCommitted()\",\"getVerifierParams()\",\"baseTokenGasPriceMultiplierDenominator()\",\"getTransactionFilterer()\",\"isDiamondStorageFrozen()\",\"getProtocolVersion()\",\"getChainId()\",\"getBridgehub()\",\"getTotalBlocksExecuted()\",\"getPriorityTreeRoot()\",\"getVerifier()\",\"facetAddresses()\",\"getDAValidatorPair()\",\"getPriorityQueueSize()\",\"getSettlementLayer()\",\"getAdmin()\",\"storedBlockHash(uint256)\",\"getFirstUnprocessedPriorityTx()\",\"facets()\",\"getL2SystemContractsUpgradeTxHash()\",\"isPriorityQueueActive()\",\"getChainTypeManager()\",\"getBaseTokenAssetId()\",\"getBaseToken()\",\"l2LogsRootHash(uint256)\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getTotalPriorityTxs()\",\"facetFunctionSelectors(address)\",\"getTotalBlocksVerified()\",\"storedBatchHash(uint256)\",\"getTotalBatchesExecuted()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"facetAddress(bytes4)\",\"getPendingAdmin()\",\"getL2BootloaderBytecodeHash()\",\"getTotalBatchesCommitted()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"isFunctionFreezable(bytes4)\",\"baseTokenGasPriceMultiplierNominator()\",\"getTotalBatchesVerified()\",\"getPriorityTreeStartIndex()\",\"getSemverProtocolVersion()\",\"isValidator(address)\",\"getL2DefaultAccountBytecodeHash()\"]\n values.facets.0x36b026c39125964D99596CE302866B5A59E4dE27:\n+ [\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"proveL2LeafInclusion(uint256,uint256,bytes32,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"requestL2TransactionToGatewayMailbox(uint256,bytes32,uint64)\",\"bridgehubRequestL2TransactionOnGateway(bytes32,uint64)\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\"]\n values.facets.0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800:\n+ [\"revertBatchesSharedBridge(uint256,uint256)\",\"proveBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"commitBatchesSharedBridge(uint256,uint256,uint256,bytes)\",\"executeBatchesSharedBridge(uint256,uint256,uint256,bytes)\"]\n values.getBaseTokenBridge:\n- \"0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB\"\n values.getL2BootloaderBytecodeHash:\n- \"0x010008c3be57ae5800e077b6c2056d9d75ad1a7b4f0ce583407961cc6fe0b678\"\n+ \"0x0100088580465d88420e6369230ee94a32ff356dbcdd407a4be49fc8009b2a81\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x0100055dba11508480be023137563caec69debc85f826cb3a4b68246a7cabe30\"\n+ \"0x010004dbf8be36c421254d005352f8245146906919be0099e8a50d0e78df85e0\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: HIGH\n values.getProtocolVersion:\n- 107374182400\n+ 111669149696\n values.getSemverProtocolVersion.0:\n- 25\n+ 26\n values.getStateTransitionManager:\n- \"0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C\"\n values.getVerifier:\n- \"0x06aa7a7B07108F7C5539645e32DD5c21cBF9EB66\"\n+ \"0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5\"\n values.txFilterer:\n- []\n values.validators.1:\n+ \"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"\n values.getBaseTokenAssetId:\n+ \"0xd8d7af170b8818511cb9a930d5f5e7f71d799a65974b0cb4f9d31e32095e336c\"\n values.getChainId:\n+ 50104\n values.getChainTypeManager:\n+ \"0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C\"\n+++ severity: HIGH\n values.getDAValidatorPair:\n+ [\"0x907b30407249949521Bf0c89A43558dae200146A\",\"0xFa30EAe30351A83809657299F6Cad9557c232e8C\"]\n values.getSettlementLayer:\n+ \"0x0000000000000000000000000000000000000000\"\n+++ description: This contract must expose the ITransactionFilterer interface (see Mailbox facet) and is used for censoring transactions pushed from L1 to L2.\n+++ severity: HIGH\n values.getTransactionFilterer:\n+ \"0x0000000000000000000000000000000000000000\"\n values.isPriorityQueueActive:\n+ false\n fieldMeta.txFilterer:\n- {\"severity\":\"HIGH\",\"description\":\"This contract must expose the ITransactionFilterer interface (see Mailbox facet) and is used for censoring transactions pushed from L1 to L2.\"}\n fieldMeta.getProtocolVersion.severity:\n- \"MEDIUM\"\n+ \"HIGH\"\n fieldMeta.getAdmin:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.getTransactionFilterer:\n+ {\"severity\":\"HIGH\",\"description\":\"This contract must expose the ITransactionFilterer interface (see Mailbox facet) and is used for censoring transactions pushed from L1 to L2.\"}\n fieldMeta.getDAValidatorPair:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.getPendingAdmin:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.getPubdataPricingMode:\n+ {\"severity\":\"HIGH\",\"description\":\"0 - Rollup, 1 - Validium\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract Verifier (0x06aa7a7B07108F7C5539645e32DD5c21cBF9EB66)\n +++ description: Implements the ZK proof verification logic.\n```\n\n```diff\n contract undefined (0x4cc87B0A504047967CeD9A955431B3229237e7de) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"validateZkStack\",\"from\":\"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"}\n }\n```\n\n```diff\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.1:\n+ {\"_protocolVersion\":107374182400,\"_upgradeTimestamp\":1738591200}\n values.upgradeTimestamps.0._protocolVersion:\n- 107374182400\n+ 111669149696\n values.upgradeTimestamps.0._upgradeTimestamp:\n- 1738591200\n+ 1742454000\n }\n```\n\n```diff\n contract undefined (0xf3b07F6744e06cd5074b7D15ed2c33760837CE1f) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"validateZkStack\",\"from\":\"0x8c0Bfc04AdA21fd496c55B8C50331f904306F564\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorTimelock (0x8c0Bfc04AdA21fd496c55B8C50331f904306F564)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n```\n\n```diff\n+ Status: CREATED\n contract Verifier (0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5)\n +++ description: Implements the ZK proof verification logic.\n```"
}
]
},
{
"id": "f998353c",
"date": "Tue, 11 Mar 2025 08:00:21 GMT",
"timestamp": 1741680021,
"description": "ValidatorTimelock governance transfer for ZIP 5.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract undefined (0x3701fB675bCd4A85eb11A2467628BBe193F6e6A8)\n +++ description: None\n```\n\n```diff\n contract ValidatorTimelock (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n values.owner:\n- \"0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897\"\n+ \"0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProtocolUpgradeHandler (0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897)\n +++ description: The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2, emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n```\n\n```diff\n- Status: DELETED\n contract SecurityCouncil (0xBDFfCC71FE84020238F2990a6D2954e87355De0D)\n +++ description: Custom Multisig implementation that has a general threshold of 9 but also specific thresholds for upgrade approvals (6) or soft freezes (3).\n```\n\n```diff\n- Status: DELETED\n contract Guardians (0xD677e09324F8Bb3cC64F009973693f751c33A888)\n +++ description: Custom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n```\n\n```diff\n- Status: DELETED\n contract EmergencyUpgradeBoard (0xdEFd1eDEE3E8c5965216bd59C866f7f5307C9b29)\n +++ description: A custom contract allowing a 3/3 of 0xBDFfCC71FE84020238F2990a6D2954e87355De0D, 0xbC1653bd3829dfEc575AfC3816D4899cd103B51c and 0xD677e09324F8Bb3cC64F009973693f751c33A888 to `executeEmergencyUpgrade()` via the 0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897.\n```\n\n```diff\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987) {\n +++ description: None\n values.owner:\n- \"0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897\"\n+ \"0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract undefined (0x3701fB675bCd4A85eb11A2467628BBe193F6e6A8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProtocolUpgradeHandler (0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897)\n +++ description: The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2, emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n```\n\n```diff\n+ Status: CREATED\n contract SecurityCouncil (0xBDFfCC71FE84020238F2990a6D2954e87355De0D)\n +++ description: Custom Multisig implementation that has a general threshold of 9 but also specific thresholds for upgrade approvals (6) or soft freezes (3).\n```\n\n```diff\n+ Status: CREATED\n contract Guardians (0xD677e09324F8Bb3cC64F009973693f751c33A888)\n +++ description: Custom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyUpgradeBoard (0xdEFd1eDEE3E8c5965216bd59C866f7f5307C9b29)\n +++ description: A custom contract allowing a 3/3 of 0xBDFfCC71FE84020238F2990a6D2954e87355De0D, 0xbC1653bd3829dfEc575AfC3816D4899cd103B51c and 0xD677e09324F8Bb3cC64F009973693f751c33A888 to `executeEmergencyUpgrade()` via the 0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897.\n```"
}
]
},
{
"id": "728d4222",
"date": "Thu, 06 Feb 2025 09:23:34 GMT",
"timestamp": 1738833814,
"description": "Upgrade successful.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. The operator commits blocks and provides a ZK proof which is validated by the Verifier contract and then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n values.getL2SystemContractsUpgradeBatchNumber:\n- 13780\n+ 0\n values.getL2SystemContractsUpgradeBlockNumber:\n- 13780\n+ 0\n values.getL2SystemContractsUpgradeTxHash:\n- \"0xd3086b71c95ce83e7f3d30ab1890ada2334695a05b65715e56f42d96b22c8674\"\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "101a64ca",
"date": "Wed, 05 Feb 2025 06:33:01 GMT",
"timestamp": 1738737181,
"description": "Upgrade to Protocol version 25.",
"isHighSeverity": false,
"changeCount": 34,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3) {\n +++ description: The main contract defining the Layer 2. The operator commits blocks and provides a ZK proof which is validated by the Verifier contract and then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n sourceHashes.4:\n- \"0xe521f6bd6250a2c92af323768ad8a2274cc334725b5ed8960d8421f063fc3285\"\n+ \"0xdf47c6cd4fcffcfa4a670e1544e2391acc365cd7fd9b8e7583d58b28dff50c40\"\n sourceHashes.3:\n- \"0x419cee160f60572fc9189007ec7c1e3c13e54d80bf1e78f837bc8fa001519685\"\n+ \"0x91db58e4059dfed7357e56dac17d2963c6f9cfb540f527988ed25172251a2584\"\n sourceHashes.2:\n- \"0xd272def5b4e3f0a68e3019d7d40675ca6d3e3fc35500e9aafe864bce8c697de2\"\n+ \"0x981d4f2ae5949ab33c6ba83f6446595d3b853bf6f7157884304445d70b185374\"\n sourceHashes.1:\n- \"0x9ae32beaa5dc29055f75d3cd08fbec35ed3eee3e2ff35de263a78f7d63c610f9\"\n+ \"0x081a1805983e86cd6a80ed48c012c26bf9a39473c0f1e69b357afff240f027a0\"\n values.$implementation.3:\n- \"0xaD193aDe635576d8e9f7ada71Af2137b16c64075\"\n+ \"0xBB13642F795014E0EAC2b0d52ECD5162ECb66712\"\n values.$implementation.2:\n- \"0xCDB6228b616EEf8Df47D69A372C4f725C43e718C\"\n+ \"0x5575218cECd370E1d630d1AdB03c254B0B376821\"\n values.$implementation.1:\n- \"0xE60E94fCCb18a81D501a38959E532C0A85A1be89\"\n+ \"0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9\"\n values.$implementation.0:\n- \"0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a\"\n+ \"0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a\"\n values.$pastUpgrades.2:\n+ [\"2025-02-04T19:22:23.000Z\",\"0x82657fe86f99698eae75f1e2104fa211e67b641b7e58450aa8ceabf962798b16\",[\"0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a\",\"0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9\",\"0x5575218cECd370E1d630d1AdB03c254B0B376821\",\"0xBB13642F795014E0EAC2b0d52ECD5162ECb66712\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.facetAddresses.3:\n- \"0xaD193aDe635576d8e9f7ada71Af2137b16c64075\"\n+ \"0xBB13642F795014E0EAC2b0d52ECD5162ECb66712\"\n values.facetAddresses.2:\n- \"0xCDB6228b616EEf8Df47D69A372C4f725C43e718C\"\n+ \"0x5575218cECd370E1d630d1AdB03c254B0B376821\"\n values.facetAddresses.1:\n- \"0xE60E94fCCb18a81D501a38959E532C0A85A1be89\"\n+ \"0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9\"\n values.facetAddresses.0:\n- \"0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a\"\n+ \"0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a\"\n values.facets.0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a:\n- [\"acceptAdmin()\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"freezeDiamond()\",\"setPendingAdmin(address)\",\"setPorterAvailability(bool)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\",\"setTokenMultiplier(uint128,uint128)\",\"setTransactionFilterer(address)\",\"setValidator(address,bool)\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\"]\n values.facets.0xE60E94fCCb18a81D501a38959E532C0A85A1be89:\n- [\"baseTokenGasPriceMultiplierDenominator()\",\"baseTokenGasPriceMultiplierNominator()\",\"facetAddress(bytes4)\",\"facetAddresses()\",\"facetFunctionSelectors(address)\",\"facets()\",\"getAdmin()\",\"getBaseToken()\",\"getBaseTokenBridge()\",\"getBridgehub()\",\"getFirstUnprocessedPriorityTx()\",\"getL2BootloaderBytecodeHash()\",\"getL2DefaultAccountBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getL2SystemContractsUpgradeTxHash()\",\"getPendingAdmin()\",\"getPriorityQueueSize()\",\"getPriorityTxMaxGasLimit()\",\"getProtocolVersion()\",\"getPubdataPricingMode()\",\"getSemverProtocolVersion()\",\"getStateTransitionManager()\",\"getTotalBatchesCommitted()\",\"getTotalBatchesExecuted()\",\"getTotalBatchesVerified()\",\"getTotalBlocksCommitted()\",\"getTotalBlocksExecuted()\",\"getTotalBlocksVerified()\",\"getTotalPriorityTxs()\",\"getVerifier()\",\"getVerifierParams()\",\"isDiamondStorageFrozen()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"isFunctionFreezable(bytes4)\",\"isValidator(address)\",\"l2LogsRootHash(uint256)\",\"priorityQueueFrontOperation()\",\"storedBatchHash(uint256)\",\"storedBlockHash(uint256)\"]\n values.facets.0xCDB6228b616EEf8Df47D69A372C4f725C43e718C:\n- [\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"transferEthToSharedBridge()\"]\n values.facets.0xaD193aDe635576d8e9f7ada71Af2137b16c64075:\n- [\"commitBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"commitBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"executeBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"executeBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"proveBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"proveBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"revertBatches(uint256)\",\"revertBatchesSharedBridge(uint256,uint256)\"]\n values.facets.0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a:\n+ [\"acceptAdmin()\",\"changeFeeParams((uint8,uint32,uint32,uint32,uint32,uint64))\",\"executeUpgrade(((address,uint8,bool,bytes4[])[],address,bytes))\",\"freezeDiamond()\",\"setPendingAdmin(address)\",\"setPorterAvailability(bool)\",\"setPriorityTxMaxGasLimit(uint256)\",\"setPubdataPricingMode(uint8)\",\"setTokenMultiplier(uint128,uint128)\",\"setTransactionFilterer(address)\",\"setValidator(address,bool)\",\"unfreezeDiamond()\",\"upgradeChainFromVersion(uint256,((address,uint8,bool,bytes4[])[],address,bytes))\"]\n values.facets.0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9:\n+ [\"baseTokenGasPriceMultiplierDenominator()\",\"baseTokenGasPriceMultiplierNominator()\",\"facetAddress(bytes4)\",\"facetAddresses()\",\"facetFunctionSelectors(address)\",\"facets()\",\"getAdmin()\",\"getBaseToken()\",\"getBaseTokenBridge()\",\"getBridgehub()\",\"getFirstUnprocessedPriorityTx()\",\"getL2BootloaderBytecodeHash()\",\"getL2DefaultAccountBytecodeHash()\",\"getL2SystemContractsUpgradeBatchNumber()\",\"getL2SystemContractsUpgradeBlockNumber()\",\"getL2SystemContractsUpgradeTxHash()\",\"getPendingAdmin()\",\"getPriorityQueueSize()\",\"getPriorityTxMaxGasLimit()\",\"getProtocolVersion()\",\"getPubdataPricingMode()\",\"getSemverProtocolVersion()\",\"getStateTransitionManager()\",\"getTotalBatchesCommitted()\",\"getTotalBatchesExecuted()\",\"getTotalBatchesVerified()\",\"getTotalBlocksCommitted()\",\"getTotalBlocksExecuted()\",\"getTotalBlocksVerified()\",\"getTotalPriorityTxs()\",\"getVerifier()\",\"getVerifierParams()\",\"isDiamondStorageFrozen()\",\"isEthWithdrawalFinalized(uint256,uint256)\",\"isFacetFreezable(address)\",\"isFunctionFreezable(bytes4)\",\"isValidator(address)\",\"l2LogsRootHash(uint256)\",\"priorityQueueFrontOperation()\",\"storedBatchHash(uint256)\",\"storedBlockHash(uint256)\"]\n values.facets.0x5575218cECd370E1d630d1AdB03c254B0B376821:\n+ [\"bridgehubRequestL2Transaction((address,address,uint256,uint256,bytes,uint256,uint256,bytes[],address))\",\"finalizeEthWithdrawal(uint256,uint256,uint16,bytes,bytes32[])\",\"l2TransactionBaseCost(uint256,uint256,uint256)\",\"proveL1ToL2TransactionStatus(bytes32,uint256,uint256,uint16,bytes32[],uint8)\",\"proveL2LogInclusion(uint256,uint256,(uint8,bool,uint16,address,bytes32,bytes32),bytes32[])\",\"proveL2MessageInclusion(uint256,uint256,(uint16,address,bytes),bytes32[])\",\"requestL2Transaction(address,uint256,bytes,uint256,uint256,bytes[],address)\",\"transferEthToSharedBridge()\"]\n values.facets.0xBB13642F795014E0EAC2b0d52ECD5162ECb66712:\n+ [\"commitBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"commitBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,uint64,uint64,bytes32,uint256,bytes32,bytes32,bytes32,bytes,bytes)[])\",\"executeBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"executeBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[])\",\"proveBatches((uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"proveBatchesSharedBridge(uint256,(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32),(uint64,bytes32,uint64,uint256,bytes32,bytes32,uint256,bytes32)[],(uint256[],uint256[]))\",\"revertBatches(uint256)\",\"revertBatchesSharedBridge(uint256,uint256)\"]\n values.getL2BootloaderBytecodeHash:\n- \"0x010008e742608b21bf7eb23c1a9d0602047e3618b464c9b59c0fba3b3d7ab66e\"\n+ \"0x010008c3be57ae5800e077b6c2056d9d75ad1a7b4f0ce583407961cc6fe0b678\"\n values.getL2DefaultAccountBytecodeHash:\n- \"0x01000563374c277a2c1e34659a2a1e87371bb6d852ce142022d497bfb50b9e32\"\n+ \"0x0100055dba11508480be023137563caec69debc85f826cb3a4b68246a7cabe30\"\n values.getL2SystemContractsUpgradeBatchNumber:\n- 0\n+ 13780\n values.getL2SystemContractsUpgradeBlockNumber:\n- 0\n+ 13780\n values.getL2SystemContractsUpgradeTxHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0xd3086b71c95ce83e7f3d30ab1890ada2334695a05b65715e56f42d96b22c8674\"\n+++ description: Protocol version, increments with each protocol upgrade.\n+++ severity: MEDIUM\n values.getProtocolVersion:\n- 103079215106\n+ 107374182400\n values.getSemverProtocolVersion.2:\n- 2\n+ 0\n values.getSemverProtocolVersion.1:\n- 24\n+ 25\n values.getVerifier:\n- \"0x70F3FBf8a427155185Ec90BED8a3434203de9604\"\n+ \"0x06aa7a7B07108F7C5539645e32DD5c21cBF9EB66\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Verifier (0x70F3FBf8a427155185Ec90BED8a3434203de9604)\n +++ description: Implements the ZK proof verification logic.\n```\n\n```diff\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3) {\n +++ description: None\n+++ description: Timestamps for new protocol version upgrades can be registered here (NOT enforced)\n values.upgradeTimestamps.0:\n+ {\"_protocolVersion\":107374182400,\"_upgradeTimestamp\":1738591200}\n }\n```\n\n```diff\n+ Status: CREATED\n contract Verifier (0x06aa7a7B07108F7C5539645e32DD5c21cBF9EB66)\n +++ description: Implements the ZK proof verification logic.\n```"
}
]
},
{
"id": "2121984c",
"date": "Mon, 03 Feb 2025 14:33:48 GMT",
"timestamp": 1738593228,
"description": "[ZIP-002] 'Reduce the execution delay from 21 hours to 3 hours' executed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ValidatorTimelock (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E) {\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n description:\n- \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 21h.\"\n+ \"Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\"\n values.executionDelay:\n- 75600\n+ 10800\n values.executionDelay_fmt:\n- \"21h\"\n+ \"3h\"\n }\n```"
}
]
},
{
"id": "e590d65d",
"date": "Tue, 28 Jan 2025 06:34:20 GMT",
"timestamp": 1738046060,
"description": "discodrive!",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ValidatorTimelock (0x5D8ba173Dc6C3c90C8f7C04C9288BeF5FDbAd06E)\n +++ description: Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 21h.\n```"
}
]
},
{
"id": "9391970a",
"date": "Mon, 27 Jan 2025 13:32:10 GMT",
"timestamp": 1737984730,
"description": "New usdc bridge admin transfer finalized.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987) {\n +++ description: None\n values.admin:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x4e4943346848c4867F81dFb37c4cA9C5715A7828\"\n values.pendingAdmin:\n- \"0x4e4943346848c4867F81dFb37c4cA9C5715A7828\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "c393a3d5",
"date": "Wed, 22 Jan 2025 12:22:26 GMT",
"timestamp": 1737548546,
"description": "L1USDCBridge to add a new owner.",
"isHighSeverity": true,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract GnosisSafe (0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD)\n +++ description: None\n```\n\n```diff\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987) {\n +++ description: None\n sourceHashes.1:\n- \"0x00a6e4c29d4f4c792c4f6c43b197f95b24d626a94e6faf8ee81bc9320d579d7e\"\n+ \"0xab9a40a5f27251ca4b4884dedef5a2b49a8928796a1fd0c6655f1623be961602\"\n issuedPermissions:\n- [{\"permission\":\"upgrade\",\"to\":\"0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD\",\"via\":[]}]\n values.$admin:\n- \"0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD\"\n+ \"0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1\"\n values.$implementation:\n- \"0x86dF12f51E3531689e0615bb2F739ddf01337715\"\n+ \"0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB\"\n values.$pastUpgrades.1:\n+ [\"2025-01-21T18:29:59.000Z\",\"0x152dc623c52d7f2b058ec5b4dfb67f5e0fee14c04dc9c0db4ae02ed2dc4ab998\",[\"0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.owner:\n- \"0xe4644b6d106A18062344c0A853666bc0B8f052d1\"\n+ \"0x8f7a9912416e8AdC4D9c21FAe1415D3318A11897\"\n values.pendingAdmin:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x4e4943346848c4867F81dFb37c4cA9C5715A7828\"\n }\n```"
}
]
},
{
"id": "f894d5ad",
"date": "Wed, 18 Dec 2024 13:08:26 GMT",
"timestamp": 1734527306,
"description": "USDC escrow admin changed to a new Multisig (SophonUSDCEscrowMultisig) and also gets a new owner (SophonChainAdminMultisig).",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract GnosisSafe (0x478a303CCe3c62CE52A8D66885b9D04F2733F3b6)\n +++ description: None\n```\n\n```diff\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0x478a303CCe3c62CE52A8D66885b9D04F2733F3b6\"\n+ \"0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD\"\n values.$admin:\n- \"0x478a303CCe3c62CE52A8D66885b9D04F2733F3b6\"\n+ \"0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD\"\n values.owner:\n- \"0x299174d47c243B5381c6062aBEFbfF915B601D85\"\n+ \"0xe4644b6d106A18062344c0A853666bc0B8f052d1\"\n values.pendingOwner:\n- \"0xe4644b6d106A18062344c0A853666bc0B8f052d1\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SophonUSDCEscrowMultisig (0x3b181838Ae9DB831C17237FAbD7c10801Dd49fcD)\n +++ description: None\n```"
}
]
},
{
"id": "8c6f787b",
"date": "Tue, 17 Dec 2024 09:58:24 GMT",
"timestamp": 1734429504,
"description": "Initial discovery of a ZK stack Validium sharing the standard implementations and infra contracts. (Custom gastoken SOPH not on CG yet). External USDC ecrow.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract SophonZkEvm (0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SophonUSDCEscrowMultisig (0x478a303CCe3c62CE52A8D66885b9D04F2733F3b6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Verifier (0x70F3FBf8a427155185Ec90BED8a3434203de9604)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SophonZkEvmAdmin (0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SophonChainAdminMultisig (0xe4644b6d106A18062344c0A853666bc0B8f052d1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1USDCBridge (0xf553E6D903AA43420ED7e3bc2313bE9286A8F987)\n +++ description: None\n```"
}
]
}
]
+0 -8
+0 -8
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
},
{
"projectId": "forknet",
"sinceTimestamp": 1781600877
},
{
"projectId": "katana",
"sinceTimestamp": 1781600877
},
{
"projectId": "lumia",
"sinceTimestamp": 1781600877
},
{
"projectId": "xlayer",
"sinceTimestamp": 1781600877
},
{
"projectId": "penchain",
"sinceTimestamp": 1781600877
},
{
"projectId": "haust",
"sinceTimestamp": 1781600877
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1781600877
},
{
"projectId": "silicon",
"sinceTimestamp": 1790152247
},
{
"projectId": "celo",
"sinceTimestamp": 1771445567
},
{
"projectId": "rise",
"sinceTimestamp": 1767605759
},
{
"projectId": "vector",
"sinceTimestamp": 1771445567
},
{
"projectId": "sophon",
"sinceTimestamp": 1771445567
},
{
"projectId": "lens",
"sinceTimestamp": 1771445567
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1771445567
},
{
"projectId": "blobstream",
"sinceTimestamp": 1771445567
},
{
"projectId": "molten",
"sinceTimestamp": 1771445567
},
{
"projectId": "winr",
"sinceTimestamp": 1771445567
},
{
"projectId": "phala",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1773378287
},
{
"projectId": "kroma",
"sinceTimestamp": 1771445567
},
{
"projectId": "taiko",
"sinceTimestamp": 1774964687
},
{
"projectId": "mantle",
"sinceTimestamp": 1778001356
},
{
"projectId": "morph",
"sinceTimestamp": 1779354407
},
{
"projectId": "base",
"sinceTimestamp": 1779825599
},
{
"projectId": "appchain",
"sinceTimestamp": 1780326419
},
{
"projectId": "apechain",
"sinceTimestamp": 1780346337
}
],
"proofSystemInfo": "## Description\n\nSP1 Hypercube is the latest Succint's RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 Hypercube provides 98 bits of proven security, as per [Ethereum Foundation’s soundcalc evaluation](https://github.com/ethereum/soundcalc/blob/main/reports/sp1.md).\n\n## Proof system\n\nSP1 Hypercube is an iteration of the previous zkVM version, SP1 Turbo, introducing architectural changes that improve prover performance and memory efficiency.\n\nHypercube proves execution of a 64-bit RISC-V VM using several ZK circuits, or chips, connected by lookup arguments ([LogUp based on GKR protocol](https://docs.succinct.xyz/docs/sp1/hypercube/logupgkr)). VM execution trace is split into several shards of size approximately 2^22, that could be proven in parallel with a STARK proving system. Additional arguments prove memory consistency across shards. \n\nThe parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n### Hypercube vs. Turbo\n\nProving time and memory optimizations of SP1 Hypercube are based on several design improvements compared to SP1 Turbo.\n\nHypercube implements a [multilinear polynomial](https://github.com/succinctlabs/sp1/tree/v6.0.0/slop/crates/multilinear) STARK compared to univariate polynomials in Turbo. Multilinear polynomial based proving systems are more efficient than univariate because manipulating them reduces usage of log-linear FFT algorithm.\n\nMultilinear polynomials also allow Hypercube to innovate on a polynomial commitment scheme, implementing [Jagged PCS](https://docs.succinct.xyz/docs/sp1/hypercube/jagged) (defined in [this preprint](https://eprint.iacr.org/2025/917)). Jagged PCS allows efficient packing of computation traces of zkVM chips with different lengths, optimizing the prover memory requirement. More efficient LogUp based on GKR is also made possible because of multilinear polynomials.\n\n### Recursion circuits\n\nSP1 Hypercube provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\nFirst, proofs for correctness of separate shards are generated. These shards may have different trace shape, so in the next step they are normalized. Finally, normalized shard proofs are recursively compressed in batches of 3-4 to a single zkVM proof. For further details see [this page](https://docs.succinct.xyz/docs/sp1/hypercube/recursion).\n\n### Final wrap\n\nSP1 Hypercube supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/sp1/generating-proofs/proof-types#compressed)). The implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup (todo: link to trusted setups section).",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV64",
"type": "ISA",
"name": "RISC-V 64bit",
"description": "Free and open-source universal 64-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
},
{
"id": "KoalaBear",
"type": "Field",
"name": "Koala Bear",
"description": "Prime field of order p = 2**31 - 2**24 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
{
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
},
{
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"id": "SP1HypercubeGroth16_v6_1_0",
"name": "SP1 Hypercube v6.1.0 Groth16 circuit-specific setup",
"participantCount": 18,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 18 participants from 8 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.1.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 18 participants affiliated with Etherealize, Polygon, OP Labs, Alpen Labs, Offchain Labs, Succinct, Coinbase, Across Protocol. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: .\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
},
{
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"id": "SP1HypercubeGroth16",
"name": "SP1 Hypercube Groth16 circuit-specific setup",
"participantCount": 12,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 12 participants from 7 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.0.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 12 participants affiliated with Across Protocol, OP Labs, Offchain Labs, Succinct Labs, Conduit, Ethrealize and 1 independent participant. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: (link is updated and points to a different ceremony now).\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
}
],
"verifierHashes": [
{
"hash": "0x4388a21c687fdd5f218d7e3d13190cac4c5355818d3605fd5fb811df468ee696",
"name": "SP1 Hypercube Groth16 v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0",
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"knownDeployments": [
{
"address": "eth:0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2"
},
{
"address": "eth:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
},
{
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.1.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-17 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x0e78f4db7a6771a3a6a7d9c3b0de6fe73d58781368967a7fe84d87aefffec896",
"name": "SP1 Hypercube Groth16 v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0",
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"knownDeployments": [
{
"address": "eth:0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.0.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-11 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac",
"name": "SP1 Hypercube Plonk v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624"
},
{
"address": "eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692"
},
{
"address": "eth:0x651cA600813fC0126225b727EDbA617949b1d1c9"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 100 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
},
{
"hash": "0xbb1a6f2930e94bfe8b35e794faf43133214534a17d2ad8e51358cad437b3c317",
"name": "SP1 Hypercube Plonk v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
},
{
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
}
]
}
+0 -10
+0 -10
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267,
"untilTimestamp": 1791526391
},
{
"projectId": "forknet",
"sinceTimestamp": 1753882500
},
{
"projectId": "katana",
"sinceTimestamp": 1751328000
},
{
"projectId": "blobstream",
"sinceTimestamp": 1717608107,
"untilTimestamp": 1791526391
},
{
"projectId": "vector",
"sinceTimestamp": 1720128227,
"untilTimestamp": 1791526391
},
{
"projectId": "sophon",
"sinceTimestamp": 1745341091,
"untilTimestamp": 1791526391
},
{
"projectId": "lens",
"sinceTimestamp": 1745359200,
"untilTimestamp": 1791526391
},
{
"projectId": "plumenetwork",
"sinceTimestamp": 1746735060,
"untilTimestamp": 1763420400
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1745880540,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1734562800,
"untilTimestamp": 1791526391
},
{
"projectId": "winr",
"sinceTimestamp": 1747088280,
"untilTimestamp": 1791526391
},
{
"projectId": "molten",
"sinceTimestamp": 1731480840,
"untilTimestamp": 1779997282
},
{
"projectId": "taiko",
"sinceTimestamp": 1730452800,
"untilTimestamp": 1791526391
},
{
"projectId": "lumia",
"sinceTimestamp": 1753882500
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "xlayer",
"sinceTimestamp": 1753882500,
"untilTimestamp": 1791526391
},
{
"projectId": "silicon",
"sinceTimestamp": 1753882500
},
{
"projectId": "facet",
"sinceTimestamp": 1751407200
},
{
"projectId": "ethscriptions",
"sinceTimestamp": 1767735587
},
{
"projectId": "ternoa",
"sinceTimestamp": 1753882500
},
{
"projectId": "wirex",
"sinceTimestamp": 1753882500
},
{
"projectId": "penchain",
"sinceTimestamp": 1753882500
},
{
"projectId": "phala",
"sinceTimestamp": 1736290800,
"untilTimestamp": 1773378287
},
{
"projectId": "mantle",
"sinceTimestamp": 1757973600,
"untilTimestamp": 1791526391
},
{
"projectId": "zircuit",
"sinceTimestamp": 1756072800,
"untilTimestamp": 1785852695
},
{
"projectId": "morph",
"sinceTimestamp": 1737359447,
"untilTimestamp": 1780559831
},
{
"projectId": "gpt",
"sinceTimestamp": 1753882500
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "witness",
"sinceTimestamp": 1753882500
},
{
"projectId": "kroma",
"sinceTimestamp": 1739228400,
"untilTimestamp": 1791526391
},
{
"projectId": "haust",
"sinceTimestamp": 1756808195
},
{
"projectId": "celo",
"sinceTimestamp": 1765324800,
"untilTimestamp": 1791526391
},
{
"projectId": "rise",
"sinceTimestamp": 1767605759,
"untilTimestamp": 1791526391
},
{
"projectId": "appchain",
"sinceTimestamp": 1776165024,
"untilTimestamp": 1780326419
}
],
"proofSystemInfo": "## Description\n\nSP1 Turbo is a RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 targets [100 bits of security based on unproven proximity gaps conjecture](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#conjectures-for-fris-security), so the actual security is likely lower.\n\n## Proof system\n\nSP1 Turbo proves execution of a 32 bit RISC-V VM (RV32IM) using several ZK circuits connected by lookup arguments, as implemented in Plonky3. VM execution trace is split into several chunks that could be proven in parallel with a STARK proving system. The parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n### zkVM component\n\nVerifies execution of a RISC-V program in a zkVM. See [here](https://docs.succinct.xyz/docs/v5/sp1/security/rv32im-implementation) for more details on the exact RISC-V standard implemented. Uses [Plonky3](https://github.com/Plonky3/Plonky3) STARK toolkit with AIR arithmetization and FRI-based polynomial commitment scheme within the [BabyBear field](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#hash-functions-and-the-random-oracle-model).\n\n### Recursion circuits\n\nSP1 provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/v5/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\n### Final wrap\n\nSP1 supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/v5/sp1/generating-proofs/proof-types#compressed)). The [gnark](https://github.com/Consensys/gnark) implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup, see [below](#trusted-setups) for more details.",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV32",
"type": "ISA",
"name": "RISC-V 32bit",
"description": "Free and open-source universal 32-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
},
{
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"id": "SP1TurboGroth16",
"name": "SP1 Turbo Groth16 circuit-specific setup",
"participantCount": 7,
"risk": "red",
"shortDescription": "Succinct's internally run trusted setup for SP1 Turbo (release v5.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was run among 7 contributors to the SP1 project without public calls to participate.",
"longDescription": "SP1 Turbo Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 7 contributors to the SP1 project without public calls to participate. It generated setup parameters for Groth16 wrapper of SP1 zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: [https://docs.succinct.xyz/docs/v5/sp1/security/security-model#options](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#options).\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): [https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz](https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz)."
}
],
"verifierHashes": [
{
"hash": "0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7",
"name": "SP1 Turbo Plonk v5.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0xFF5Adab685362DC4C33536a65aF5873738D1216B"
},
{
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63"
},
{
"address": "eth:0x294a1Ee119C4B2510530572481A6a50892A9ae9f"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 50 GiB of memory on the peak. Also, due to some os indeterminism, \nthe sp1 repo must be cloned into `/home/aurel/dev/sp1-wip/` directory, so we recommend creating `aurel` user on an Ubuntu 24.04 machine.\n\n1. Create a new `aurel` user on a linux os and login as this user.\n2. Install necessary dependencies: rust, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsp1up\n```\n\n3. Clone sp1 repo in the correct directory, set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\nmkdir -p dev/sp1-wip/\ncd dev/sp1-wip/\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v5.0.0 # commit should be 38f0f143dece864e8bffafad64196a924f190336\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
},
{
"hash": "0xa4594c59bbc142f3b81c3ecb7f50a7c34bc9af7c4c444b5d48b795427e285913",
"name": "SP1 Turbo Groth16 v5.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates",
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5"
},
{
"address": "arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D"
}
],
"verificationStatus": "unsuccessful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "We performed the following steps, which according to the Succinct team should have lead to a successful regeneration of the verifier's hash.\nHowever these steps produced a verifier smart contract with `VERIFIER_HASH = 0xf7ba6320608dadd905f3483d51c2fa0fb55473e3136bdfb37c96a10f158ab9fe`, which differs from the value onchain. \n\n1. Create a new `aurel` user on a linux os and login as this user.\n2. Install necessary dependencies: rust, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsp1up\n```\n\n3. Clone sp1 repo in the correct directory, set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\nmkdir -p dev/sp1-wip/\ncd dev/sp1-wip/\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v5.0.0 # commit should be 38f0f143dece864e8bffafad64196a924f190336\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```"
}
]
}
+3 -15
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "Celestia",
"type": "DA",
"name": "Celestia",
"description": "This project is posting its data to Celestia",
"action": {
"type": "publicDaHighlight",
"slug": "celestia"
}
"description": "This project is posting its data to Celestia"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Base",
"type": "L3ParentChain",
"name": "Built on top of Base",
"description": "The project has Base as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Base"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Stack Chain is an Optimium settling on Base. It uses OP stack technology with Celestia for data availability. Stack Chain is a blockchain for bringing points onchain, allowing brands to create and own their loyalty programs.",
"links": {
"websites": [
"https://stack.so/"
],
"bridges": [
"https://bridge.stack.so"
],
"documentation": [
"https://docs.stack.so"
],
"explorers": [
"https://explorer.stack.so"
],
"repositories": [
"https://github.com/stack-so/protocol-interfaces"
],
"socialMedia": [
"https://twitter.com/stackdotso",
"https://t.me/+RVFamOmYBo42NzFh",
"https://stack.mirror.xyz/"
]
}
}
+1 -2
[
{
"layer": {
"value": "Celestia",
"sentiment": "warning",
"description": "The data is posted to Celestia.",
"projectId": "celestia"
"description": "The data is posted to Celestia."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 0,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAADtb2kYRqm8M="
}
]
null
+1 -5
+1 -5
{
"badges": [
{
"id": "CairoVM",
"type": "VM",
"name": "CairoVM",
"description": "This project uses the Cairo Virtual Machine to run its smart contracts and supports the Cairo programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CairoVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "SNStack",
"type": "Stack",
"name": "Built on the SN Stack",
"description": "The project is built on the SN Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "SN Stack"
}
},
{
"id": "SHARP",
"type": "Infra",
"name": "Uses SHARP",
"description": "The project uses a shared prover contract - SHARP",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "SHARP"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
}
],
"description": "Starknet is a ZK rollup that uses STARK proofs to securely scale Ethereum and Ethereum blobs for data availability. Starknet is also actively engaged in bringing Bitcoin users the same scale, UX, and liquidity through a variety of products and programs.",
"links": {
"bridges": [
"https://starkgate.starknet.io/"
],
"websites": [
"https://starknet.io/",
"https://starkware.co/starknet/",
"https://starkware.co/ecosystem/",
"https://community.starknet.io/"
],
"documentation": [
"https://docs.starknet.io"
],
"explorers": [
"https://voyager.online/",
"https://starkscan.co/"
],
"repositories": [
"https://github.com/starkware-libs"
],
"socialMedia": [
"https://discord.com/invite/starknet-community",
"https://twitter.com/StarkWareLtd",
"https://medium.com/starkware",
"https://starkware.co/",
"https://youtube.com/channel/UCnDWguR8mE2oDBsjhQkgbvg"
],
"other": [
"https://growthepie.com/chains/starknet"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "SuperLumio (canary mainnet) marks the initial phase of the Lumio Layer 2 on the Optimism Superchain, launched as a pure Ethereum Virtual Machine fork with the support of Conduit technology. This platform is designed to serve as a testnet-in-production. Lumio is a rollup technology suite that enables developers to build with any VM on any chain.",
"links": {
"websites": [
"https://lumio.io/"
],
"documentation": [
"https://docs.lumio.io/"
],
"explorers": [
"https://explorer.lumio.io/"
],
"repositories": [
"https://github.com/pontem-network"
],
"socialMedia": [
"https://x.com/lumiofdn",
"https://t.me/pontemnetworkchat",
"https://discord.com/invite/44QgPFHYqs"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Superseed is an Optimistic Rollup utilizing the OP Stack, aiming to provide a CDP lending platform enshrined in the protocol and redistribution of Layer 2 fees to its users.",
"links": {
"websites": [
"https://superseed.xyz/"
],
"bridges": [
"https://bridge.superseed.xyz/"
],
"documentation": [
"https://docs.superseed.xyz/"
],
"explorers": [
"https://explorer.superseed.xyz/"
],
"repositories": [
"https://github.com/superseed-xyz"
],
"socialMedia": [
"https://x.com/SuperseedXYZ",
"https://discord.com/invite/vjDDB5S4BN",
"https://mirror.xyz/superseedxyz.eth",
"https://t.me/superseedtelegram"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
}
],
"description": "Swan Chain is an OP Stack L2 providing comprehensive AI infrastructure on the blockchain.",
"links": {
"websites": [
"https://swanchain.io/"
],
"bridges": [
"https://bridge.swanchain.io/"
],
"documentation": [
"https://docs.swanchain.io/"
],
"explorers": [
"https://mainnet-explorer.swanchain.io/",
"https://swanscan.io/"
],
"repositories": [
"https://github.com/swanchain"
],
"socialMedia": [
"https://x.com/swan_chain",
"https://discord.com/invite/2Fqbs9JhEg",
"https://linkedin.com/company/swancloud",
"https://swanchain.medium.com/"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "AltLayer",
"type": "RaaS",
"name": "AltLayer",
"description": "This project was deployed via the rollup-as-a-service provider AltLayer",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "AltLayer"
}
}
],
"description": "Swellchain operates as a restaking-focused Layer 2 network built on the OP Stack. The network aims to extend Ethereum security through EigenLayer restaking while leveraging OP stack proven infrastructure for transaction processing and scalability.",
"links": {
"websites": [
"https://swellnetwork.io/"
],
"bridges": [
"https://app.swellnetwork.io/layer2/swell-l2"
],
"documentation": [
"https://build.swellnetwork.io/docs"
],
"explorers": [
"https://explorer.swellnetwork.io/"
],
"repositories": [
"https://github.com/SwellNetwork"
],
"socialMedia": [
"https://x.com/swellnetworkio",
"https://discord.com/invite/swellnetworkdao",
"https://swellnetwork.io/blog",
"https://t.me/+QvXky2aKNc8yYTI1",
"https://reddit.com/r/SwellNetwork/",
"https://linkedin.com/company/swellnetworkio"
],
"other": [
"https://growthepie.com/chains/swell"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "Orbit",
"type": "Stack",
"name": "Built on Arbitrum Orbit",
"description": "The project is built on Arbitrum Orbit",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Arbitrum"
}
},
{
"id": "Alchemy",
"type": "RaaS",
"name": "Alchemy",
"description": "This project was deployed via the rollup-as-a-service provider Alchemy",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Alchemy"
}
}
],
"description": "Syndicate Chain is an Arbitrum Orbit rollup on Ethereum using SYND as its native gas token. It serves as the primary settlement layer for the Syndicate ecosystem.",
"links": {
"websites": [
"https://syndicate.io/"
],
"bridges": [
"https://bridge.arbitrum.io/?destinationChain=syndicate-chain&sourceChain=ethereum"
],
"documentation": [
"https://docs.syndicate.io/en/docs/syndicate-chains/syndicate-chain/basic-information"
],
"explorers": [
"https://explorer.syndicate.io/"
],
"repositories": [
"https://github.com/SyndicateProtocol"
],
"socialMedia": [
"https://x.com/syndicateio",
"https://warpcast.com/syndicate",
"https://discord.gg/syndicate"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Base",
"type": "L3ParentChain",
"name": "Built on top of Base",
"description": "The project has Base as its host chain",
"action": {
"type": "scalingFilter",
"id": "hostChain",
"value": "Base"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "Syndicate Frame Chain is an OP Stack L3 on Base for Farcaster Frame developers.",
"links": {
"websites": [
"https://syndicate.io/blog/syndicate-frame-chain"
],
"bridges": [
"https://bridge-frame.syndicate.io/",
"https://frame.syndicate.io/"
],
"documentation": [
"https://docs.syndicate.io/docs/core/get-started/introduction"
],
"explorers": [
"https://explorer-frame.syndicate.io/"
],
"repositories": [
"https://github.com/WillPapper/syndicate-farcaster-frame-starter"
],
"socialMedia": [
"https://warpcast.com/syndicate",
"https://x.com/syndicateio"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
}
],
"description": "Taiko Alethia is an Ethereum-equivalent rollup on the Ethereum network. Taiko combines a preconfirmation-based sequencing mechanism with a multi-proof system using SP1, RISC0 and TEEs.",
"links": {
"websites": [
"https://taiko.xyz"
],
"bridges": [
"https://bridge.taiko.xyz/"
],
"documentation": [
"https://docs.taiko.xyz/"
],
"explorers": [
"https://taikoscan.io",
"https://taikoscan.network/"
],
"repositories": [
"https://github.com/taikoxyz"
],
"socialMedia": [
"https://twitter.com/taikoxyz",
"https://discord.gg/taikoxyz",
"https://taiko.mirror.xyz",
"https://community.taiko.xyz",
"https://youtube.com/@taikoxyz"
],
"other": [
"https://rollup.codes/taiko",
"https://growthepie.com/chains/taiko"
]
}
}
[REMOVED]
tee-bridge
+0 -122
+0 -1
"tee-bridge"
+0 -1
"tee-bridge"
+0 -1
"TEE Bridge"
+0 -1
"TEE Bridge"
+0 -1
null
+0 -1
1755774275
+0 -3
{
"unverifiedContracts": []
}
+0 -12
{
"badges": [],
"description": "The TEE Bridge utilizes a Trusted Execution Environment (TEE) to provide data availability attestations with hardware-based security guarantees.",
"links": {
"documentation": [
"https://docs.espressosys.com/network/guides/using-the-espresso-network/using-the-espresso-network-as-an-arbitrum-orbit-chain/arbitrum-nitro-integration-overview/using-tee-with-nitro"
],
"repositories": [
"https://github.com/EspressoSystems/nitro-espresso-integration/blob/7ddcc6c036fa05cc47560552c85f30b5adedf32c/arbnode/batch_poster.go#L574"
]
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -62
{
"daLayer": "espresso",
"name": "TEE Bridge",
"risks": {
"committeeSecurity": {
"value": "TEE-based",
"sentiment": "warning",
"description": "The committee security is based on Trusted Execution Environments (TEEs) with on-chain key registration and verification. \n TEE attestation keys are registered on-chain, providing transparency and governance control over valid TEE configurations. \n However, compromised TEE keys can still sign false availability attestations before governance can revoke them, creating a timing window for attacks. \n The system also has infrastructure dependencies on the TEE provider (e.g., Intel's Attestation Service) and requires coordinated responses to TCB recovery events when new vulnerabilities are discovered.",
"orderHint": 0
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "No mechanism",
"sentiment": "bad",
"description": "The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity."
}
},
"technology": {
"description": "## Architecture\n\nThe TEE Bridge leverages Trusted Execution Environments (TEEs) to provide hardware-based attestations for data availability. \nTEEs create secure, isolated environments where data availability proofs can be generated and verified with cryptographic guarantees.\n\n### Arbitrum Nitro Integration\n\nThe primary implementation runs the Arbitrum Nitro batch poster (batcher) inside a TEE environment, specifically Intel SGX. The integration process involves:\n\n1. **Transaction Flow**: The sequencer provides soft-confirmations while simultaneously sending transactions to the Espresso Network for stronger BFT consensus-backed confirmations.\n\n2. **TEE Batch Poster**: The batcher operates within the TEE and must honor Espresso Network confirmations. It cannot reorder transactions or equivocate, providing strong guarantees that transactions will be included and finalized (unless the escape hatch mechanism is enabled).\n\n3. **Batch Consistency Verification**: Before posting to L1, the TEE batcher performs two critical checks:\n - **Namespace Validation**: Ensures transactions correspond to the correct Arbitrum Nitro/Orbit chain namespace\n - **Merkle Proof Verification**: Confirms the batch maps to a valid HotShot block in the Merkle tree maintained by the light client contract\n\n4. **Signature Generation**: The batcher computes blob hashes and signs the combined hash along with calldata, including this signature in the L1 transaction for on-chain verification.\n\nThe TEE-based approach provides accountability for sequencers while maintaining the existing Arbitrum Nitro rollup design with minimal changes.\n\n## Security Considerations\n\nTEE-based systems face unique security challenges that differ from traditional cryptographic approaches:\n\n**Remote Attestation**: The bridge relies on Intel's Attestation Service (IAS) to verify that TEE nodes are running legitimate software on genuine hardware with up-to-date security patches. This creates a dependency on Intel's centralized infrastructure.\n\n**TCB Recovery**: When new TEE vulnerabilities are discovered (such as AepicLeak or the WireTap attack), the system must implement Trusted Computing Base (TCB) recovery procedures to block compromised nodes from joining the network before Intel updates their attestation requirements. Research has shown that many applications fail to take appropriate action after TCB recovery announcements, often not implementing necessary security updates or node blocking mechanisms in a timely manner.\n\n**Physical Hardware Attacks**: Recent research has demonstrated that SGX attestation keys can be extracted through physical DRAM bus interposition attacks using relatively inexpensive equipment (under $1000). The WireTap attack shows how attackers can build devices to physically inspect memory traffic and exploit deterministic encryption in Intel's Total Memory Encryption to recover SGX secret attestation keys. This allows attackers to forge SGX attestation quotes.\n\n**Key Management**: The bridge uses on-chain key registration and verification rather than relying solely on TEE sealing mechanisms. TEE attestation keys are registered on-chain through verifier contracts that track valid MRENCLAVE hashes, MRSIGNER values, and authorized signers. This provides transparency and governance control over which TEE configurations are trusted, eliminating the \"developer key backdoor\" risk present in systems that rely purely on MRSIGNER-based sealing. However, initial key registration still requires Intel's remote attestation to verify TEE authenticity.\n\n\n**Governance and TCB Recovery**: TEE-based bridges face unique governance challenges around TEE configuration management and vulnerability response. The on-chain verifier contracts allow governance to manage valid MRENCLAVE hashes and authorized signers, providing transparency and control over trusted TEE configurations. However, compromised TEE keys can sign false availability attestations during the time window before governance can detect and revoke them. When new TEE vulnerabilities are discovered, governance must coordinate extremely rapid responses to revoke compromised configurations before they can be exploited to attest to unavailable data.\n\n## Implementation Details\n\n**TEE Environment**: The implementation uses Intel SGX with Gramine LibOS for stability and maturity. Remote Attestation is supported through RA-TLS certificates that embed SGX attestation reports, allowing anyone to verify the TEE's integrity.\n\n\n**Escape Hatch Mechanism**: The batch poster includes a liveness check mechanism that calls IsHotshotLive on the Light Client Contract before posting batches. Operators can configure two behaviors: (1) wait for HotShot to be live before posting, or (2) proceed without HotShot consistency checks if the network is unavailable, effectively bypassing Espresso consensus validation. This flexibility prevents the bridge from becoming permanently stuck while maintaining security when possible.",
"references": [
{
"title": "TEE-based Smart Contracts and Sealing Pitfalls",
"url": "https://medium.com/initc3org/tee-based-smart-contracts-and-sealing-pitfalls-eccd5d751329"
},
{
"title": "SGXonerated: Finding (and Exploiting) SGX Enclave Bugs with Symbolic Execution",
"url": "https://eprint.iacr.org/2023/378"
},
{
"title": "SGX.fail - A website documenting SGX security research",
"url": "https://sgx.fail/"
},
{
"title": "Secret Network v1.18 Upgrade: Due Process vs Bricking Risk Discussion",
"url": "https://forum.scrt.network/t/secret-network-v-1-18-upgrade-proposal/7720"
},
{
"title": "WireTap: Breaking Server SGX via DRAM Bus Interposition",
"url": "https://wiretap.fail/"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the TEE hardware is compromised through physical attacks, if there are vulnerabilities in the trusted execution environment, or if compromised TEE keys are used to sign false availability attestations before governance can revoke them from the on-chain verifier contracts."
},
{
"category": "Funds can be frozen if",
"text": "Intel's Attestation Service becomes unavailable, new TEE nodes fail remote attestation due to unpatched vulnerabilities, or if TCB recovery procedures block legitimate nodes."
},
{
"category": "Funds can be frozen if",
"text": "governance fails to revoke compromised TEE configurations from on-chain verifier contracts."
}
]
},
"usedIn": []
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "ZKsyncLiteFork",
"type": "Fork",
"name": "Fork of ZKsync Lite",
"description": "The project is a fork of ZKsync Lite",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZKsync Lite"
}
}
],
"description": "Term Structure introduces a distinct ZK Rollup solution democratizing fixed-rate and fixed-term borrowing and lending as well as fixed income trading by offering low transaction fees and enabling forced withdrawals.",
"links": {
"websites": [
"https://ts.finance/"
],
"bridges": [
"https://app.ts.finance/"
],
"documentation": [
"https://docs.ts.finance/"
],
"explorers": [
"https://explorer.ts.finance/"
],
"repositories": [
"https://github.com/term-structure/"
],
"socialMedia": [
"https://twitter.com/TermStructLabs",
"https://discord.gg/VnyTqGBSzK",
"https://t.me/termstructure",
"https://youtube.com/@termstructurelabs"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Zeeve",
"type": "RaaS",
"name": "Zeeve",
"description": "This project was deployed via the rollup-as-a-service provider Zeeve",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Zeeve"
}
}
],
"description": "The Binary Holdings is a web3 infrastructure that integrates into telecommunication and banking apps to increase user engagement, retention, and ARPU (Average Revenue Per User) - while rewarding users for their engagement. It uses its own token (BNRY) for gas.",
"links": {
"websites": [
"https://thebinaryholdings.com/"
],
"documentation": [
"https://docs.thebinaryholdings.com/"
],
"explorers": [
"https://explorer.thebinaryholdings.com"
],
"socialMedia": [
"https://twitter.com/thebinaryhldgs",
"https://t.me/tbhofficialchat",
"https://discord.gg/wCXJmTBGr2"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
}
],
"description": "Unichain is a faster, cheaper L2 designed to be the home for DeFi and the home for multichain liquidity.",
"links": {
"websites": [
"https://unichain.org/"
],
"bridges": [
"https://unichain.org/bridge"
],
"documentation": [
"https://docs.unichain.org/docs"
],
"explorers": [
"https://uniscan.xyz/",
"https://unichain.blockscout.com/"
],
"socialMedia": [
"https://x.com/unichain",
"https://discord.com/invite/uniswap"
],
"other": [
"https://growthepie.com/chains/unichain"
]
}
}
[REMOVED]
vector
+0 -834
+0 -1
"vector"
+0 -1
"vector"
+0 -1
"Vector"
+0 -1
null
+0 -1
null
+0 -1
1725372159
+0 -3
{
"unverifiedContracts": []
}
+0 -12
{
"badges": [],
"description": "Vector is a data availability bridge using Zero-Knowledge proofs to verify Avail data availability attestations on Ethereum.",
"links": {
"documentation": [
"https://docs.succinct.xyz/"
],
"repositories": [
"https://github.com/succinctlabs/sp1-vector"
]
}
}
+0 -1
null
+0 -1
null
+0 -9
[
{
"title": "Plonky3 vulnerability patch",
"url": "https://x.com/SuccinctLabs/status/1929773028034204121",
"date": "2025-06-04T00:00:00.00Z",
"description": "SP1 verifier is patched to fix critical vulnerability in Plonky3 proof system (SP1 dependency).",
"type": "incident"
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -67
{
"daLayer": "avail",
"name": "Vector",
"relayerType": {
"value": "Permissioned",
"sentiment": "warning",
"description": "Only whitelisted relayers can post attestations to this bridge."
},
"risks": {
"committeeSecurity": {
"value": "Validator set",
"sentiment": "good",
"description": "The committee requires an honest minority (less than 1/3) of members (or the network stake) to prevent the DA bridge from accepting an unavailable data commitment. \n Participation in the committee is permissionless, based only on stake requirements and an honest majority of validators processing the new operator's request to join the active set.",
"orderHint": 2
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "No mechanism",
"sentiment": "bad",
"description": "The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity."
}
},
"technology": {
"description": "## Architecture\n\n\n\nThe Vector bridge is a data availability bridge that facilitates data availability commitments to be bridged between Avail and Ethereum.\nThe SP1 Vector bridge is composed of three main components: the **Vector** contract, the **Succinct Gateway** contracts, and the **Verifier** contracts.
\nBy default, Vector operates asynchronously, handling requests in a fulfillment-based manner. First, zero-knowledge proofs of Avail block ranges are requested for proving. Requests can be submitted either off-chain through the Succinct API, or onchain through the requestCall() method of the Succinct Gateway smart contract.\nAlternatively, it is possible to run an SP1 Vector operator with local proving, allowing for self-generating the proofs.\nOnce a proving request is received, the off-chain prover generates the proof and relays it to the Vector contract. The Vector contract verifies the proof with the corresponding verifier contract and, if successful, stores the data commitment in storage.
\n\nBy default, Vector on Ethereum is updated by the Succinct operator at a cadence of approximately 1.5 hours.",
"references": [
{
"title": "SP1 Vector Operator",
"url": "https://github.com/succinctlabs/sp1-vector/blob/a9689768ff4052e0933cc575b79001d4bcfa0cd5/script/bin/operator.rs"
},
{
"title": "Succinct Gateway - Etherscan",
"url": "https://etherscan.io/address/0x6c7a05e0AE641c6559fD76ac56641778B6eCd776#code#F1#L148"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the DA bridge accepts an incorrect or malicious data commitment provided by 2/3 of Avail validators."
},
{
"category": "Funds can be frozen if",
"text": "excluding L2-specific DA fallback - the permissioned relayers are unable to submit DA commitments to the Vector contract."
}
]
},
"usedIn": [
{
"id": "lens",
"name": "Lens",
"slug": "lens"
},
{
"id": "sophon",
"name": "Sophon",
"slug": "sophon"
}
],
"validationType": {
"value": "Validity Proof",
"description": "The DA attestation requires onchain SNARK proof verification to be accepted by the bridge. Operators signatures and their corresponding stake are verified as part of the proof.",
"zkCatalogId": "sp1hypercube"
}
}
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+0 -26
[
{
"projectId": "vector",
"sinceTimestamp": 1719974843,
"type": "liveness",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x02993cdC11213985b9B13224f3aF289F03bf298d",
"selector": "0x8455a3cf",
"signature": "function commitHeaderRange(bytes proof, bytes publicValues)"
}
},
{
"projectId": "vector",
"sinceTimestamp": 1719974843,
"type": "l2costs",
"subtype": "proofSubmissions",
"params": {
"formula": "functionCall",
"address": "0x02993cdC11213985b9B13224f3aF289F03bf298d",
"selector": "0x8455a3cf",
"signature": "function commitHeaderRange(bytes proof, bytes publicValues)"
}
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -186
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
}
}
+0 -163
{
"addresses": {
"ethereum": [
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 1\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"programHashes": [
{
"title": "Avail VectorX DA bridge program",
"description": "ZK-friendly implementation of Avail Vector DA bridge that proves that a given data root was finalized on Avail.",
"programUrl": "https://github.com/availproject/sp1-vector/tree/c649310e79de376926863504d49eddbf09532980/program",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain v6.3.1: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.3.1` (the toolchain version must match the program's `sp1-zkvm = \"6.3.1\"` dependency and the docker tag used below).\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [availproject/sp1-vector](https://github.com/availproject/sp1-vector/tree/v2.0.1) repo: `git checkout c649310e79de376926863504d49eddbf09532980`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-vector/program` dir run: `cargo prove build --docker --tag v6.3.1 --elf-name vector-elf --output-directory ../elf` to build the vector program elf within a docker container and place it in `sp1-vector/elf`.\n4. From `sp1-vector` run: `cargo run --bin vkey --release` to print the vkey of the `vector-elf` program.",
"hash": "0x005f3914526e9f0d261b56a3613985801d3060584f95874548c70fda5f81efdb"
}
],
"risks": [
{
"category": "Funds can be lost if",
"text": "the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades."
},
{
"category": "Funds can be frozen if",
"text": "the bridge contract is frozen by the Guardian (AvailMultisig)."
}
],
"zkVerifiers": [
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+0 -7
{
"baseTimestamp": 1791789577,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+0 -322
[
{
"id": "6343b00c",
"date": "Thu, 17 Sep 2026 14:46:33 GMT",
"timestamp": 1789656330,
"description": "Vector: `DEFAULT_ADMIN_ROLE` revoked from the deployer EOA; Avail Multisig 1 is the only remaining holder.\n\nRelayer rotated: the previous relayer was de-approved and a new EOA approved. Config: the template now tracks the new relayer.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) [succinct/SP1Vector] {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n- \"eth:0xDEd0000E32f8F40414d3ab3a830f735a3553E18e\"\n values.isRelayerApproved:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "ab2e7d4b",
"date": "Mon, 10 Aug 2026 11:04:52 GMT",
"timestamp": 1786359830,
"description": "Vector: `vectorXProgramVkey` rotated to the sp1-vector v2.0.1 program. The new key is reproducible from source and recorded in `programHashes.ts`.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) [succinct/SP1Vector] {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x0057b7de6dcd8ff25e7b41089f4b5fa586067fbb107756d1f66d92fe71dd6ad1\"\n+ \"0x005f3914526e9f0d261b56a3613985801d3060584f95874548c70fda5f81efdb\"\n }\n```"
}
]
},
{
"id": "b00b2ebd",
"date": "Tue, 18 Nov 2025 16:35:52 GMT",
"timestamp": 1763483689,
"description": "New relayer, new multisig member.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n }\n```\n\n```diff\n contract Avail Multisig 1 (eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n values.$members.0:\n- \"eth:0xE458b870F2F59a49915591282f1Bb688901767AD\"\n+ \"eth:0x70a4F624A4E62C539abf0002634377b646612b1C\"\n }\n```"
}
]
},
{
"id": "71cbb138",
"date": "Tue, 19 Aug 2025 12:04:46 GMT",
"timestamp": 1755605082,
"description": "New relayer.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "507359e5",
"date": "Mon, 14 Jul 2025 12:46:41 GMT",
"timestamp": 1752497201,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d)\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a)\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the eth:0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 2 (0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666)\n +++ description: None\n```"
}
]
},
{
"id": "cfb5494b",
"date": "Wed, 25 Jun 2025 07:40:40 GMT",
"timestamp": 1750837240,
"description": "selector 0x1b34fe11 and respective verifier frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.1:\n- {\"selector\":\"0x1b34fe11\",\"verifier\":\"0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "e923d734",
"date": "Fri, 06 Jun 2025 07:24:46 GMT",
"timestamp": 1749194686,
"description": "config: make sp1 gateway template more dynamic.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "6c80cb1d",
"date": "Wed, 04 Jun 2025 14:03:29 GMT",
"timestamp": 1749045809,
"description": "SP1 verifier upgrade to v5 (plonky3 vuln related).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "db4900b9",
"date": "Mon, 02 Jun 2025 08:33:11 GMT",
"timestamp": 1748853191,
"description": "new program key for vector.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x00e9bba2a9360f570b9ba99e5186825ac723bedebd486b6a818870c44e3e4d4f\"\n+ \"0x0057b7de6dcd8ff25e7b41089f4b5fa586067fbb107756d1f66d92fe71dd6ad1\"\n }\n```"
}
]
},
{
"id": "6997f592",
"date": "Wed, 07 May 2025 10:16:04 GMT",
"timestamp": 1746612964,
"description": "Updated owner of ProxyAdmin and 4/7 Avail multisig to the TimelockController.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B) {\n +++ description: None\n values.owner:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n }\n```\n\n```diff\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487) {\n +++ description: A timelock with access control. The current minimum delay is 1d.\n directlyReceivedPermissions.2:\n+ {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.6.via.1:\n+ {\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n receivedPermissions.6.via.0.address:\n- \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.6.via.0.delay:\n+ 86400\n directlyReceivedPermissions.1:\n- {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n }\n```"
}
]
},
{
"id": "5bbf0dc2",
"date": "Tue, 06 May 2025 08:46:00 GMT",
"timestamp": 1746521160,
"description": "Finalized the transfer of admin and owner roles to a 1d timelock controller.",
"isHighSeverity": false,
"changeCount": 21,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a) {\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.defaultAdmin:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.defaultAdminAC.0:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.owner:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.pendingDefaultAdmin.newAdmin:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.pendingDefaultAdmin.schedule:\n- 1746442211\n+ 0\n }\n```\n\n```diff\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487) {\n +++ description: A timelock with access control. The current minimum delay is 1d.\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"description\":\"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"}\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.8.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.8.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n receivedPermissions.8.description:\n+ \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n receivedPermissions.8.via:\n+ [{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]\n receivedPermissions.7.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n receivedPermissions.7.via:\n- [{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]\n receivedPermissions.6.permission:\n- \"interact\"\n+ \"upgrade\"\n receivedPermissions.6.from:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n receivedPermissions.6.description:\n- \"manage all access control roles.\"\n receivedPermissions.6.via.0.address:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n receivedPermissions.6.via.0.delay:\n- 86400\n receivedPermissions.5.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.5.description:\n- \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n+ \"manage all access control roles.\"\n receivedPermissions.5.via:\n+ [{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]\n }\n```"
}
]
},
{
"id": "50a436af",
"date": "Mon, 05 May 2025 14:37:14 GMT",
"timestamp": 1746455834,
"description": "The Avail bridge default admin is scheduled to be changed to a timelock smart contract.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a) {\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n values.pendingDefaultAdmin.newAdmin:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.pendingDefaultAdmin.schedule:\n- 0\n+ 1746442211\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.8:\n+ {\"permission\":\"upgrade\",\"from\":\"0x02993cdC11213985b9B13224f3aF289F03bf298d\"}\n receivedPermissions.7:\n+ {\"permission\":\"upgrade\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"via\":[{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"0x45828180bbE489350D621d002968A0585406d487\",\"description\":\"manage all access control roles.\",\"via\":[{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"description\":\"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"0x45828180bbE489350D621d002968A0585406d487\",\"description\":\"manage all access control roles.\"}\n receivedPermissions.3.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.3.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.3.description:\n+ \"execute transactions that are ready.\"\n receivedPermissions.2.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.2.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n receivedPermissions.2.via:\n- [{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]\n receivedPermissions.2.description:\n+ \"can freeze the Vector contract and update the list of authorized relayers.\"\n receivedPermissions.1.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.1.description:\n- \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n+ \"propose transactions.\"\n receivedPermissions.0.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.0.description:\n- \"can freeze the Vector contract and update the list of authorized relayers.\"\n+ \"cancel queued transactions.\"\n directlyReceivedPermissions.1:\n+ {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n directlyReceivedPermissions.0.from:\n- \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n directlyReceivedPermissions.0.delay:\n+ 86400\n }\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```"
}
]
},
{
"id": "36c07ceb",
"date": "Thu, 24 Apr 2025 05:13:24 GMT",
"timestamp": 1745471604,
"description": "Add the Avail bridge (uses vector and is shared by L2s for merkle proofs)... config: colorize, bridge is verified.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a)\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 2 (0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B)\n +++ description: None\n```"
}
]
},
{
"id": "7939d05d",
"date": "Thu, 03 Apr 2025 14:55:22 GMT",
"timestamp": 1743692122,
"description": "Renamed SP1SuccinctGateway to SP1VerifierGateway. vectorXProgramVkey changed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x00d0279ddadaccdbdb6142981d3830f9ada20ed4e2925ed186ae2be5806e3402\"\n+ \"0x00e9bba2a9360f570b9ba99e5186825ac723bedebd486b6a818870c44e3e4d4f\"\n }\n```"
}
]
},
{
"id": "7a4391dd",
"date": "Thu, 16 Jan 2025 12:09:52 GMT",
"timestamp": 1737029392,
"description": "New verifier added, old one frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for the bridge proofs verification. It stores the mapping between the identifier of the bridge circuit and the address of the onchain verifier contract.\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2025-01-15.\n values.oldVerifier5.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: None\n```"
}
]
},
{
"id": "4caa451e",
"date": "Wed, 15 Jan 2025 13:53:48 GMT",
"timestamp": 1736949228,
"description": "New relayer, new programVkey.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n values.vectorXProgramVkey:\n- \"0x00285180a989ed2d6aa8194220690d0d45f2907535d3d3c09e4cb29f6dbe3d4d\"\n+ \"0x00d0279ddadaccdbdb6142981d3830f9ada20ed4e2925ed186ae2be5806e3402\"\n }\n```"
}
]
},
{
"id": "19442b17",
"date": "Thu, 09 Jan 2025 06:59:49 GMT",
"timestamp": 1736405989,
"description": "AvailMultisig single signer rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailMultisig (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n values.$members.6:\n- \"0xb9274De2305B377b437a9297D6c84eBD69f7aaCE\"\n+ \"0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d\"\n }\n```"
}
]
},
{
"id": "d1af7c2c",
"date": "Thu, 14 Nov 2024 09:08:08 GMT",
"timestamp": 1731575288,
"description": "New verifier, zk catalog updated.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-11-08.\n values.oldVerifier4.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x6A87EFd4e6B2Db1ed73129A8b9c51aaA583d49e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xd2832Cf1fC8bA210FfABF62Db9A8781153131d16)\n +++ description: None\n```"
}
]
},
{
"id": "7817c1a8",
"date": "Tue, 05 Nov 2024 16:10:42 GMT",
"timestamp": 1730823042,
"description": "Verifier program verification key changed, verifier implementation is the same.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: None\n values.vectorXProgramVkey:\n- \"0x0003c5cf9260fcef3df6c79870952e1ce2f57595ac042ea868c9cbbcab548cf8\"\n+ \"0x00285180a989ed2d6aa8194220690d0d45f2907535d3d3c09e4cb29f6dbe3d4d\"\n }\n```"
}
]
},
{
"id": "8e197aee",
"date": "Tue, 01 Oct 2024 15:45:53 GMT",
"timestamp": 1727797553,
"description": "Vector proxy verified. New verifier.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-09-21.\n values.oldVerifier2.1:\n- false\n+ true\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen).\n values.verifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1764C29FBd94865198588f10FC75D4f6636d158d\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x1764C29FBd94865198588f10FC75D4f6636d158d)\n +++ description: None\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n contract SP1Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: None\n unverified:\n- true\n }\n```"
}
]
},
{
"id": "6f776189",
"date": "Fri, 13 Sep 2024 08:14:09 GMT",
"timestamp": 1726215249,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract GnosisSafe (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666)\n +++ description: None\n```"
}
]
},
{
"id": "d0a8db9a",
"date": "Thu, 12 Sep 2024 14:28:29 GMT",
"timestamp": 1726151309,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract SP1Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier_OLD (0xc350F063C13a3Ca21331610fe159E697a5c9c2FB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
}
]
+0 -1
null
+0 -1
null
+0 -1
null
+0 -1
null
+68 -61
+1 -8
[
{
"type": "celestia",
"daLayer": "celestia",
"sinceBlock": 5390709,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAACFo9Sza5FZw="
}
]
null
+53 -53
{
"addresses": {
"arbitrum": [
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x5cA988F213EfbCB86ED7e2AACB0C15c91e648f8d"
]
},
{
"timestamp": 1737569829,
"transactionHash": "0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791",
"implementations": [
"arb1:0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA"
],
"implementations": [
"arb1:0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446",
"arb1:0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0xEe9E5546A11Cb5b4A86e92DA05f2ef75C26E4754",
"arb1:0x0aE4dD666748bF0F6dB5c149Eab1D8aD27820A6A"
]
},
{
"timestamp": 1737569829,
"transactionHash": "0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791",
"implementations": [
"arb1:0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446",
"arb1:0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Conduit Multisig 2, EOA 1\n * **anyTrustFastConfirmer**: WinrFastconfirmerMultisig; ultimately EOA 2\n * **owner**: UpgradeExecutor; ultimately Conduit Multisig 2, EOA 1\n * **validators**: EOA 11, EOA 13, EOA 15, EOA 18, EOA 2, EOA 20, EOA 23, EOA 25, EOA 27, EOA 28, EOA 29, EOA 3, EOA 4, EOA 5, WinrFastconfirmerMultisig; ultimately EOA 2",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2633ea91d15BeE85105C9b27E068f406F2F36a4a#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x2CBa47e7734De9568C568C5b1b238B491Afbf73b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x7a299aD29499736994Aa3a9aFa3f476445FAEB2c"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0x7be08B013de2b23a6329De51C4994f841dcE1a10"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x2CBa47e7734De9568C568C5b1b238B491Afbf73b"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1\n * **batchPosters**: EOA 10, EOA 12, EOA 14, EOA 16, EOA 17, EOA 19, EOA 21, EOA 22, EOA 24, EOA 26, EOA 6, EOA 7, EOA 8, EOA 9",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x2a6DD4433ffa96dc1755814FC0d9cc83A5F68DeC"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xF3f01622Ac969156760c32190995F9dC5b3eb7FA#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x660ea1675F7323dC3Ba0c8dDFB593225Eb01E3C1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x660ea1675F7323dC3Ba0c8dDFB593225Eb01E3C1"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1\n * **executors**: Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xD87f160f8c414d834cBDd9477c3D8c3ad1802255"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0xBA99217992620b76aae0D574c70bD313B30D3D1d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x302275067251F5FcdB9359Bda735fD8f7A4A54c0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x302275067251F5FcdB9359Bda735fD8f7A4A54c0"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xBA99217992620b76aae0D574c70bD313B30D3D1d#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x07d24d32D8F522793faEEebA16BbB97441664374",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x07d24d32D8F522793faEEebA16BbB97441664374#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x6c21303F5986180B1394d2C89f3e883890E2867b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x6c21303F5986180B1394d2C89f3e883890E2867b#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x802c7B6585d20cb69524EF23fCbF919F671F808a#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 30, EOA 31",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"sinceTimestamp": 1715799374,
"tokens": [
"WINR"
],
"contract": {
"isVerified": true,
"address": "arb1:0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x2a6DD4433ffa96dc1755814FC0d9cc83A5F68DeC"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows WINR sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xF3f01622Ac969156760c32190995F9dC5b3eb7FA#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8E83aED64a0Ad5d7d3A57B6172F14FcA5bfADE56",
"sinceTimestamp": 1722608545,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDC.e"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x6aDFbA9e45b5c1685007Fe48A784e971e412f839",
"sinceTimestamp": 1722608646,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDC"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8b961A67f49bc6334CBA09dbd70a2F14Fc8226a1",
"sinceTimestamp": 1722608661,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"WETH"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x88FA3A8624065f3Bf2eDe507b6Fd554C58e5b785",
"sinceTimestamp": 1722608675,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"wBTC"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x3222f0F281F1630C50f86fFaA29A29A06559eca8",
"sinceTimestamp": 1722608690,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDT"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x0aE2F220cE9698b1c9853f7288aC882150291dca",
"sinceTimestamp": 1722608704,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"ETH"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x023d27390aEd70aA39823A1e1e06a0b075400214",
"sinceTimestamp": 1724262320,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"ARB"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v40",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v40/arbos",
"verificationSteps": "L2BEAT team was able to independently regenerate this program hash. However currently the following steps for hash regeneration produce an error, so the process could not be independently verified.\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/).\n2. Checkout the correct branch in [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v40` . Commit hash should be `37ae61f20f8efdbc7e2f6af7f21c309bc09086a1`.\n3. Update git submodules `git submodule update --init --recursive --force`.\n4. Generate wasm module root in docker: `docker buildx build --target nitro-node-dev -t nitro-node-dev .`. Currently this step fails with an error.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xdb698a2576298f25448bc092e52cf13b1e24141c997135d70f217d674bbeb69a"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": []
}
+14 -0
[
{
"id": "371573e3",
"date": "Tue, 13 Oct 2026 07:14:48 GMT",
"timestamp": 1768984927,
"description": "Blobstream contracts are now discovered here instead of referenced from the blobstream project, which was removed with the rest of the alt-DA projects.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract BlobstreamMultisig (arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "67d5eb6f",
"date": "Wed, 21 Jan 2026 08:43:26 GMT",
"timestamp": 1768984927,
"description": "New member conduit msig2.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (arb1:0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x381624F7912BddD83dc67c6C53Ef6FE61B87Cf07\"\n values.$members.1:\n+ \"arb1:0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6\"\n values.$members.5:\n- \"arb1:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 11 (36%)\"\n }\n```\n\n```diff\n contract UpgradeExecutor (arb1:0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA) {\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"arb1:0x487fb70F28cEb4f320f2D72ed859cEEdC1B8C648\"\n values.executors.1:\n+ \"arb1:0x487fb70F28cEb4f320f2D72ed859cEEdC1B8C648\"\n }\n```"
}
]
},
{
"id": "8fd1ba6b",
"date": "Fri, 09 Jan 2026 15:12:53 GMT",
"timestamp": 1767971493,
"description": "stakerCount decreased from 1 to 0, no active validators on the chain.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (arb1:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n values.stakerCount:\n- 1\n+ 0\n }\n```"
}
]
},
{
"id": "0abc8bf1",
"date": "Wed, 10 Dec 2025 15:18:02 GMT",
"timestamp": 1765379816,
"description": "Conduit multisig added member.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (arb1:0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0x2103c69696CB2D3779f5445393808239034E911c\"\n values.$members.0:\n- \"arb1:0xFe0ab87ebE03DD0bF52DaF34Dfda6639c335e2d4\"\n+ \"arb1:0x65D1d44B8B2fE15d45A03708E0835C7E98a56007\"\n values.$members.3:\n- \"arb1:0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n }\n```"
}
]
},
{
"id": "80a3caa7",
"date": "Wed, 19 Nov 2025 12:26:44 GMT",
"timestamp": 1763555139,
"description": "No more a Celestia L2.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (arb1:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"Celestia Nitro ArbOS v40 wasmModuleRoot\"\n+ \"ArbOS v40 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x597de35fc2ee60e5b2840157370d037542d6a4bc587af7f88202636c54e6bd8d\"\n+ \"0xdb698a2576298f25448bc092e52cf13b1e24141c997135d70f217d674bbeb69a\"\n }\n```\n\n```diff\n contract SequencerInbox (arb1:0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n values.sequencerVersion:\n- \"0x63\"\n+ \"0x88\"\n }\n```"
}
]
},
{
"id": "0de916ec",
"date": "Fri, 03 Oct 2025 08:49:45 GMT",
"timestamp": 1759481302,
"description": "Member removed from multisig.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (arb1:0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.2:\n- \"arb1:0x50930d652266EF4127FA3A1906B7Cb9951076628\"\n values.multisigThreshold:\n- \"4 of 11 (36%)\"\n+ \"4 of 10 (40%)\"\n }\n```"
}
]
},
{
"id": "38c08f2e",
"date": "Fri, 26 Sep 2025 13:28:54 GMT",
"timestamp": 1758893266,
"description": "add new celestia nitro wasmmoduleroot",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (arb1:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"Celestia Nitro 3.3.2 wasmModuleRoot\"\n+ \"Celestia Nitro ArbOS v40 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0xaf1dbdfceb871c00bfbb1675983133df04f0ed04e89647812513c091e3a982b3\"\n+ \"0x597de35fc2ee60e5b2840157370d037542d6a4bc587af7f88202636c54e6bd8d\"\n }\n```"
}
]
},
{
"id": "b571471b",
"date": "Fri, 29 Aug 2025 07:38:56 GMT",
"timestamp": 1756452867,
"description": "Conduit msig changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.2:\n- \"arb1:0x860e06Fe384D1A3340111e7D142E02642178c053\"\n values.multisigThreshold:\n- \"4 of 12 (33%)\"\n+ \"4 of 11 (36%)\"\n }\n```"
}
]
},
{
"id": "fe7a4424",
"date": "Tue, 12 Aug 2025 15:53:40 GMT",
"timestamp": 1755013885,
"description": "Conduit Multisig signer added.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.0:\n+ \"arb1:0xFe0ab87ebE03DD0bF52DaF34Dfda6639c335e2d4\"\n values.multisigThreshold:\n- \"4 of 11 (36%)\"\n+ \"4 of 12 (33%)\"\n }\n```"
}
]
},
{
"id": "9eae8e89",
"date": "Mon, 14 Jul 2025 12:44:23 GMT",
"timestamp": 1752497063,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 17,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x07d24d32D8F522793faEEebA16BbB97441664374)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract ChallengeManager (0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1)\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n```\n\n```diff\n+ Status: CREATED\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a)\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42)\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x6c21303F5986180B1394d2C89f3e883890E2867b)\n +++ description: This contract implements view only utilities for validators.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract Conduit Multisig 2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x802c7B6585d20cb69524EF23fCbF919F671F808a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456)\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n```\n\n```diff\n+ Status: CREATED\n contract WinrFastconfirmerMultisig (0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0xBA99217992620b76aae0D574c70bD313B30D3D1d)\n +++ description: Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA)\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n```\n\n```diff\n+ Status: CREATED\n contract RollupEventInbox (0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC)\n +++ description: Helper contract sending configuration data over the bridge during the systems initialization.\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0xF3f01622Ac969156760c32190995F9dC5b3eb7FA)\n +++ description: Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "69324f6d",
"date": "Fri, 11 Jul 2025 12:39:39 GMT",
"timestamp": 1752237579,
"description": "operator addresses changed.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: Increments on each Validator change.\n values.setValidatorCount:\n- 3\n+ 4\n values.stakerCount:\n- 2\n+ 1\n values.validators.8:\n- \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n }\n```\n\n```diff\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n values.batchPosters.0:\n- \"0x1A48A9e82dDb9cd157a67493Cc5E246D0cDd8307\"\n values.setIsBatchPosterCount:\n- 2\n+ 3\n }\n```"
}
]
},
{
"id": "1c33a2c4",
"date": "Mon, 23 Jun 2025 15:27:17 GMT",
"timestamp": 1750692437,
"description": "Conduit: add 14 permissioned sequencers / validators.",
"isHighSeverity": false,
"changeCount": 37,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: Increments on each Validator change.\n values.setValidatorCount:\n- 2\n+ 3\n values.stakerCount:\n- 1\n+ 2\n values.validators.15:\n+ \"0x053970A9AA9638F54370764E6E9c7B2f5854Ef21\"\n values.validators.14:\n+ \"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"\n values.validators.13:\n+ \"0xB180d28c01D3248C3fa88d67154a5070e5039135\"\n values.validators.12:\n+ \"0xC929c820dC03C2a22e44F440721Af3c835e071fc\"\n values.validators.11:\n+ \"0x0C79a90C94E1C1091D7D3a188730105be00798f9\"\n values.validators.10:\n+ \"0x1B15bb40898Ca818E28C0448Ebac4165d5Dd0b5E\"\n values.validators.9:\n+ \"0xD47FB043557CB2289B31d813dd4BC1223C91f872\"\n values.validators.8:\n+ \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n values.validators.7:\n+ \"0xe7685c09633B47Fe123ff47ebeA903C3763924a2\"\n values.validators.6:\n+ \"0xf8b74E847cCa2EfF5E939B9B948Bf889F3DC0822\"\n values.validators.5:\n+ \"0x026919DbCFab70a2A45775088C933331A7B25Ac6\"\n values.validators.4:\n+ \"0x83433d51B327392aA694455231D2db092eE2A5Db\"\n values.validators.3:\n+ \"0xEBe1766201dd69A09a2953B08081829E90f4a8d3\"\n values.validators.2:\n+ \"0x6963d94D76D5315158B47DE0B0Ce1fd6E0F61bcB\"\n values.validators.1:\n- \"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"\n+ \"0xd76a3aCEd4115B017301C54C211EC36aA5E37e05\"\n values.validators.0:\n- \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n+ \"0x7Be767aFca580360eBD3dAD924B4D688daBCdaD7\"\n }\n```\n\n```diff\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n values.batchPosters.14:\n+ \"0x936cCC684c091b20806fA3C6668F7F1fD2B3C772\"\n values.batchPosters.13:\n+ \"0x54A51C10a3EF82Cb6B0fB6B1418882472e56Ff1a\"\n values.batchPosters.12:\n+ \"0x50E91cb65a605E1b8B73be1fD558Fe40aBE59A31\"\n values.batchPosters.11:\n+ \"0xE31C47980a005B6E6d6c93212388ff7e9721D2Fc\"\n values.batchPosters.10:\n+ \"0x79F4b4f9103298460486EC644499Df9985E34170\"\n values.batchPosters.9:\n+ \"0xCe957F6aFadFFA08dAa90cE5b47208C02a9b9B4F\"\n values.batchPosters.8:\n+ \"0x7CD925c107dE5C06C100F2084bFA0422F21140f0\"\n values.batchPosters.7:\n+ \"0xD6433a681832BD2020fc6d984Efb5f57fe9ac155\"\n values.batchPosters.6:\n+ \"0xbE119cCc44373B15517e921e9a7D54362250662D\"\n values.batchPosters.5:\n+ \"0xD327b75C2CA829835b2B5EA9535827e9a06a480B\"\n values.batchPosters.4:\n+ \"0x4e597125DB0aDC355F084d09B945DBfc6B8e9BE5\"\n values.batchPosters.3:\n+ \"0x336dD5a1aB948058E4c699fD7732c2AA78C10d90\"\n values.batchPosters.2:\n+ \"0xa65100caA20c06Bd278D83C60475ec4F69b23dc1\"\n values.batchPosters.1:\n+ \"0x50A4EB12BFbf3B83FFb5c2a6378e35Cd83e6d885\"\n values.setIsBatchPosterCount:\n- 1\n+ 2\n }\n```\n\n```diff\n contract WinrFastconfirmerMultisig (0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4) {\n +++ description: None\n values.$members.0:\n- \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n+ \"0x0C79a90C94E1C1091D7D3a188730105be00798f9\"\n }\n```\n\n```diff\n EOA (0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e) {\n +++ description: None\n receivedPermissions.2:\n- {\"permission\":\"fastconfirm\",\"from\":\"arbitrum:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a\",\"description\":\"Can finalize a state root before the challenge period has passed. This allows withdrawing from the bridge based on the state root.\",\"role\":\".anyTrustFastConfirmer\",\"via\":[{\"address\":\"arbitrum:0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"}]}\n receivedPermissions.1:\n- {\"permission\":\"validate\",\"from\":\"arbitrum:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a\",\"description\":\"Can propose new state roots (called nodes) and challenge state roots on the host chain.\",\"role\":\".validators\"}\n receivedPermissions.0.via:\n- [{\"address\":\"arbitrum:0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"}]\n }\n```"
}
]
},
{
"id": "1d865321",
"date": "Wed, 04 Jun 2025 12:25:19 GMT",
"timestamp": 1749039919,
"description": "conduit multisig signer change.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.10:\n+ \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n values.$members.9:\n- \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n+ \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n values.$members.8:\n- \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n+ \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n values.$members.7:\n- \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n+ \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n values.$members.6:\n- \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n+ \"0x81175155D85377C337d92f1FA52Da166C3A4E7Ac\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 11 (36%)\"\n }\n```"
}
]
},
{
"id": "aae9bbdb",
"date": "Wed, 14 May 2025 14:45:38 GMT",
"timestamp": 1747233938,
"description": "upgrade to celestia nitro (blobstream), standard contracts and wasmmoduleroot.",
"isHighSeverity": true,
"changeCount": 46,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ChallengeManager (0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n values.$implementation:\n- \"0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED\"\n+ \"0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0\"\n values.$pastUpgrades.2:\n+ [\"2025-01-22T18:17:09.000Z\",\"0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791\",[\"0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED\"]]\n values.$pastUpgrades.1.2:\n- [\"0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED\"]\n+ \"0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c\"\n values.$pastUpgrades.1.1:\n- \"0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791\"\n+ \"2025-05-12T22:18:44.000Z\"\n values.$pastUpgrades.1.0:\n- \"2025-01-22T18:17:09.000Z\"\n+ [\"0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0\"]\n values.$upgradeCount:\n- 2\n+ 3\n values.osp:\n- \"0xD89d54007079071cBA859127318b9F34eeB78049\"\n+ \"0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d\"\n implementationNames.0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED:\n- \"ChallengeManager\"\n implementationNames.0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0:\n+ \"ChallengeManager\"\n }\n```\n\n```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v32 wasmModuleRoot\"\n+ \"Celestia Nitro 3.3.2 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n+ \"0xaf1dbdfceb871c00bfbb1675983133df04f0ed04e89647812513c091e3a982b3\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0x33c1514Bf90e202d242C299b37C60f908aa206D4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract Inbox (0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n values.$implementation:\n- \"0xD87f160f8c414d834cBDd9477c3D8c3ad1802255\"\n+ \"0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44\"\n values.$pastUpgrades.2:\n+ [\"2024-05-15T18:56:14.000Z\",\"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\",[\"0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab\"]]\n values.$pastUpgrades.1.2:\n- [\"0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab\"]\n+ \"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\"\n values.$pastUpgrades.1.1:\n- \"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\"\n+ [\"0xD87f160f8c414d834cBDd9477c3D8c3ad1802255\"]\n values.$pastUpgrades.1.0:\n- \"2024-05-15T18:56:14.000Z\"\n+ \"2025-04-25T21:55:46.000Z\"\n values.$pastUpgrades.0.2:\n- \"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\"\n+ \"0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c\"\n values.$pastUpgrades.0.1:\n- [\"0xD87f160f8c414d834cBDd9477c3D8c3ad1802255\"]\n+ \"2025-05-12T22:18:44.000Z\"\n values.$pastUpgrades.0.0:\n- \"2025-04-25T21:55:46.000Z\"\n+ [\"0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44\"]\n values.$upgradeCount:\n- 2\n+ 3\n implementationNames.0xD87f160f8c414d834cBDd9477c3D8c3ad1802255:\n- \"ERC20Inbox\"\n implementationNames.0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44:\n+ \"ERC20Inbox\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0x54E0923782b701044444De5d8c3A45aC890b0881)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.0:\n- \"0x6bb86ac4bd0d31e049f543fcf0a8f94c952252222f115246ef9d5b8104d803cc\"\n+ \"0x4030f12794a5a07697b98400d423a426b39fd6f2320b39ee377d700d4fafdc58\"\n values.$implementation:\n- \"0x7be08B013de2b23a6329De51C4994f841dcE1a10\"\n+ \"0x2CBa47e7734De9568C568C5b1b238B491Afbf73b\"\n values.$pastUpgrades.2:\n+ [\"2025-04-25T21:55:46.000Z\",\"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\",[\"0x7be08B013de2b23a6329De51C4994f841dcE1a10\"]]\n values.$pastUpgrades.1.2.0:\n- \"0x7be08B013de2b23a6329De51C4994f841dcE1a10\"\n+ \"0x7a299aD29499736994Aa3a9aFa3f476445FAEB2c\"\n values.$pastUpgrades.1.1:\n- \"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\"\n+ \"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\"\n values.$pastUpgrades.1.0:\n- \"2025-04-25T21:55:46.000Z\"\n+ \"2024-05-15T18:56:14.000Z\"\n values.$pastUpgrades.0.2:\n- [\"0x7a299aD29499736994Aa3a9aFa3f476445FAEB2c\"]\n+ \"0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c\"\n values.$pastUpgrades.0.1:\n- \"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\"\n+ [\"0x2CBa47e7734De9568C568C5b1b238B491Afbf73b\"]\n values.$pastUpgrades.0.0:\n- \"2024-05-15T18:56:14.000Z\"\n+ \"2025-05-12T22:18:44.000Z\"\n values.$upgradeCount:\n- 2\n+ 3\n values.sequencerVersion:\n- \"0x88\"\n+ \"0x63\"\n values.CELESTIA_MESSAGE_HEADER_FLAG:\n+ \"0x63\"\n implementationNames.0x7be08B013de2b23a6329De51C4994f841dcE1a10:\n- \"SequencerInbox\"\n implementationNames.0x2CBa47e7734De9568C568C5b1b238B491Afbf73b:\n+ \"SequencerInbox\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0xD89d54007079071cBA859127318b9F34eeB78049)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xE58a2dEb5718F9aAF2C1DdD0E366ED076D204cc4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0xf8E5e5562c2c12d8690786f5C9FA65F20F6bD881)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x07d24d32D8F522793faEEebA16BbB97441664374)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794) as source of truth for the DA referenced by the fault proof.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "6895d8cb",
"date": "Mon, 28 Apr 2025 11:58:17 GMT",
"timestamp": 1745841497,
"description": "Minor Arbitrum upgrade (non-18 decimals gas token support) [3.1.0](https://github.com/OffchainLabs/nitro-contracts/releases/tag/v3.1.0) that everyone is doing atm.",
"isHighSeverity": true,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Inbox (0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42) {\n +++ description: Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n sourceHashes.0:\n- \"0xcb390b491549387c8fcc09fb22fbea7adf54cc74b7247a0c738369ddd7049b92\"\n+ \"0x25984fdfffb8141859c99299fb29e7a7460732d77111e5fe23792baa99f336a3\"\n values.$implementation:\n- \"0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab\"\n+ \"0xD87f160f8c414d834cBDd9477c3D8c3ad1802255\"\n values.$pastUpgrades.1:\n+ [\"2024-05-15T18:56:14.000Z\",\"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\",[\"0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab\"]]\n values.$pastUpgrades.0.2:\n- [\"0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab\"]\n+ \"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\"\n values.$pastUpgrades.0.1:\n- \"0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5\"\n+ [\"0xD87f160f8c414d834cBDd9477c3D8c3ad1802255\"]\n values.$pastUpgrades.0.0:\n- \"2024-05-15T18:56:14.000Z\"\n+ \"2025-04-25T21:55:46.000Z\"\n values.$upgradeCount:\n- 1\n+ 2\n }\n```\n\n```diff\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456) {\n +++ description: A sequencer (registered in this contract) can submit transaction batches or commitments here.\n sourceHashes.0:\n- \"0x50cf57b01499408fa99da27cf0fee96ec30f0d40667d1aa090c442bc80f0636b\"\n+ \"0x6bb86ac4bd0d31e049f543fcf0a8f94c952252222f115246ef9d5b8104d803cc\"\n values.$implementation:\n- \"0x7a299aD29499736994Aa3a9aFa3f476445FAEB2c\"\n+ \"0x7be08B013de2b23a6329De51C4994f841dcE1a10\"\n values.$pastUpgrades.1:\n+ [\"2025-04-25T21:55:46.000Z\",\"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\",[\"0x7be08B013de2b23a6329De51C4994f841dcE1a10\"]]\n values.$upgradeCount:\n- 1\n+ 2\n }\n```\n\n```diff\n contract Bridge (0xF3f01622Ac969156760c32190995F9dC5b3eb7FA) {\n +++ description: Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n sourceHashes.1:\n- \"0x057de68a7007d55f4394ba6eafb2c802efcaf13583ff9342ea4d0ee3924d9be1\"\n+ \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n sourceHashes.0:\n- \"0xa7e3f6c355703ed46fcb2156862c4f01792b87beb10a87a81ce3bd5beee79b67\"\n+ \"0x32c73666d391a33c17183e4ab20bcb0f2b925d8a99da436d2ff99c13f403e289\"\n values.$implementation:\n- \"0x2a6DD4433ffa96dc1755814FC0d9cc83A5F68DeC\"\n+ \"0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd\"\n values.$pastUpgrades.1:\n+ [\"2025-04-25T21:55:46.000Z\",\"0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b\",[\"0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.nativeTokenDecimals:\n+ 18\n }\n```"
}
]
},
{
"id": "8308bd5b",
"date": "Fri, 14 Mar 2025 15:37:30 GMT",
"timestamp": 1741966650,
"description": "Conduit MS changes.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConduitMultisig2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.9:\n+ \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n values.$members.8:\n- \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n+ \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n values.$members.7:\n- \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n+ \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n values.$members.6:\n- \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n+ \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n values.$members.5:\n- \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n+ \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n values.$members.4:\n- \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n+ \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n values.$members.3:\n- \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n+ \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n values.$members.2:\n- \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n+ \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n values.$members.1:\n- \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n+ \"0x50930d652266EF4127FA3A1906B7Cb9951076628\"\n values.$members.0:\n- \"0x50930d652266EF4127FA3A1906B7Cb9951076628\"\n+ \"0x860e06Fe384D1A3340111e7D142E02642178c053\"\n values.$threshold:\n- 3\n+ 4\n values.multisigThreshold:\n- \"3 of 9 (33%)\"\n+ \"4 of 10 (40%)\"\n }\n```"
}
]
},
{
"id": "9f63710c",
"date": "Fri, 14 Feb 2025 13:33:36 GMT",
"timestamp": 1739540016,
"description": "Fastconfirmer added, minimum assertion set to 1 block.",
"isHighSeverity": false,
"changeCount": 18,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n issuedPermissions.4:\n+ {\"permission\":\"validate\",\"to\":\"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\",\"description\":\"Can propose new state roots (called nodes) and challenge state roots on the host chain.\",\"via\":[{\"address\":\"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"}]}\n issuedPermissions.3:\n+ {\"permission\":\"validate\",\"to\":\"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\",\"description\":\"Can propose new state roots (called nodes) and challenge state roots on the host chain.\",\"via\":[]}\n issuedPermissions.2.permission:\n- \"validate\"\n+ \"upgrade\"\n issuedPermissions.2.to:\n- \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n+ \"0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56\"\n issuedPermissions.2.description:\n- \"Can propose new state roots (called nodes) and challenge state roots on the host chain.\"\n issuedPermissions.2.via.0:\n+ {\"address\":\"0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA\"}\n issuedPermissions.1.permission:\n- \"upgrade\"\n+ \"interact\"\n issuedPermissions.1.description:\n+ \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n issuedPermissions.0.permission:\n- \"interact\"\n+ \"fastconfirm\"\n issuedPermissions.0.to:\n- \"0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56\"\n+ \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n issuedPermissions.0.description:\n- \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n+ \"Can finalize a state root before the challenge period has passed. This allows withdrawing from the bridge based on the state root.\"\n issuedPermissions.0.via.0.address:\n- \"0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA\"\n+ \"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"\n values.anyTrustFastConfirmer:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"\n+++ description: Minimum time delta between newly created nodes (stateUpdates). This is checked on `stakeOnNewNode()`. Format is number of ETHEREUM blocks, even for L3s. \n values.minimumAssertionPeriod:\n- 75\n+ 1\n+++ description: Increments on each Validator change.\n values.setValidatorCount:\n- 1\n+ 2\n values.validators.1:\n+ \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n values.validators.0:\n- \"0xA7bDF7f042C8DED17C0573657da4d920Df9a7d1e\"\n+ \"0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract WinrFastconfirmerMultisig (0x8E4d378F7FB7CA940d88682B6f057b81D0495Cf4)\n +++ description: None\n```"
}
]
},
{
"id": "a24ad4bd",
"date": "Thu, 23 Jan 2025 10:01:23 GMT",
"timestamp": 1737626483,
"description": "ArbOs v32 upgrade to known contracts, no fastconfirmer set.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ChallengeManager (0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1) {\n +++ description: Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n sourceHashes.1:\n- \"0x58a6261c83c2766f749641902ad6fdb695ea189d2747f073b57a8f35b9a547e5\"\n+ \"0x1a095768302d7d1c3d02375eaa3341833b4f1aaac707e1c608bce478c87cbf27\"\n values.$implementation:\n- \"0x5cA988F213EfbCB86ED7e2AACB0C15c91e648f8d\"\n+ \"0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED\"\n values.$pastUpgrades.1:\n+ [\"2025-01-22T18:17:09.000Z\",\"0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791\",[\"0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.osp:\n- \"0xb20107bfB36D3B5AcA534aCAfbd8857b10b402a8\"\n+ \"0xD89d54007079071cBA859127318b9F34eeB78049\"\n }\n```\n\n```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n template:\n- \"orbitstack/RollupProxy\"\n+ \"orbitstack/RollupProxy_fastConfirm\"\n sourceHashes.2:\n- \"0xef94a66bd5339efd18fb9ca1f8031482e7ef7bbe6c5a0a10fae254ab83712406\"\n+ \"0x7ee21b18b2e18c636bfafc08ff72692cc43302b2599ba75f0abad67282866dd5\"\n sourceHashes.1:\n- \"0x8b48118fe606012c0dcac2ccc1821785935aec89fab8f219f47b32c482b0017e\"\n+ \"0x9349e73cbc2d2b818c1d79711574ba210b56249d8d3845bc78c776caf8f8ff42\"\n issuedPermissions.0.description:\n- \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n+ \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n values.$implementation.1:\n- \"0x0aE4dD666748bF0F6dB5c149Eab1D8aD27820A6A\"\n+ \"0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77\"\n values.$implementation.0:\n- \"0xEe9E5546A11Cb5b4A86e92DA05f2ef75C26E4754\"\n+ \"0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446\"\n values.$pastUpgrades.1:\n+ [\"2025-01-22T18:17:09.000Z\",\"0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791\",[\"0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446\",\"0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: ArbOS version derived from known wasmModuleRoots.\n values.arbOsFromWmRoot:\n- \"ArbOS v20 wasmModuleRoot\"\n+ \"ArbOS v32 wasmModuleRoot\"\n+++ description: Root hash of the WASM module used for execution, like a fingerprint of the L2 logic. Can be associated with ArbOS versions.\n values.wasmModuleRoot:\n- \"0x8b104a2e80ac6165dc58b9048de12f301d70b02a0ab51396c22b4b4b802a16a4\"\n+ \"0x184884e1eb9fefdc158f6c8ac912bb183bf3cf83f0090317e0bc4ac5860baa39\"\n values.anyTrustFastConfirmer:\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMemory (0x526a6E634aD36bB0007c4422586c135F1F9B525a)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract ConduitMultisig2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n receivedPermissions.0.description:\n- \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n+ \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProver0 (0x800dA62bE6626127F71B34E795286C34C04D6712)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProofEntry (0xb20107bfB36D3B5AcA534aCAfbd8857b10b402a8)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverHostIo (0xc555b2F1D559Fbb854569b33640990D178F94747)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n contract UpgradeExecutor (0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA) {\n +++ description: Central contract defining the access control permissions for upgrading the system contract implementations.\n directlyReceivedPermissions.1.description:\n- \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n+ \"Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability, DACs and the fastConfirmer role, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes.\"\n }\n```\n\n```diff\n- Status: DELETED\n contract OneStepProverMath (0xe8709022B9C9D7347856c75910fe07e10C904446)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0x33c1514Bf90e202d242C299b37C60f908aa206D4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x54E0923782b701044444De5d8c3A45aC890b0881)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0xD89d54007079071cBA859127318b9F34eeB78049)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xE58a2dEb5718F9aAF2C1DdD0E366ED076D204cc4)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0xf8E5e5562c2c12d8690786f5C9FA65F20F6bD881)\n +++ description: One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n```"
}
]
},
{
"id": "3e054c76",
"date": "Thu, 16 Jan 2025 12:45:03 GMT",
"timestamp": 1737031503,
"description": "ConduitMultisig2 signer change.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConduitMultisig2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.8:\n+ \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n values.$members.7:\n- \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n+ \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n values.$members.6:\n- \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n+ \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n values.$members.5:\n- \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n+ \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n values.$members.4:\n- \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n+ \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n values.$members.3:\n- \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n+ \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n values.$members.2:\n- \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n+ \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n values.$members.1:\n- \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n+ \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n values.$members.0:\n- \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n+ \"0x50930d652266EF4127FA3A1906B7Cb9951076628\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 8 (25%)\"\n+ \"3 of 9 (33%)\"\n }\n```"
}
]
},
{
"id": "faf9ad73",
"date": "Wed, 30 Oct 2024 13:14:45 GMT",
"timestamp": 1730294085,
"description": "Conduit MS2: Signer added.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConduitMultisig2 (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56) {\n +++ description: None\n values.$members.7:\n+ \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n values.$members.6:\n- \"0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C\"\n+ \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n values.$members.5:\n- \"0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038\"\n+ \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n values.$members.4:\n- \"0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\n+ \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n values.$members.3:\n- \"0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe\"\n+ \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n values.$members.2:\n- \"0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n+ \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n values.$members.1:\n- \"0xF3313C48BD8E17b823d5498D62F37019dFEA647D\"\n+ \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n values.$members.0:\n- \"0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n+ \"0xA0737fea60F0601A192E3d2c98865A883ab0bda2\"\n values.multisigThreshold:\n- \"2 of 7 (29%)\"\n+ \"2 of 8 (25%)\"\n }\n```"
}
]
},
{
"id": "fc0e512b",
"date": "Tue, 29 Oct 2024 13:22:36 GMT",
"timestamp": 1730208156,
"description": "Update challenge period to 1h.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a) {\n +++ description: Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n+++ description: Challenge period. (Number of ETHEREUM blocks until a node is confirmed, even for L3s).\n values.confirmPeriodBlocks:\n- 40320\n+ 300\n }\n```"
}
]
},
{
"id": "af9469b0",
"date": "Fri, 11 Oct 2024 14:19:22 GMT",
"timestamp": 1728656362,
"description": "Standard Orbit stack Optimium, .97 similar to PoP Boss. Shared Admin Multisig with ProofOfPlay Chains!",
"isHighSeverity": false,
"changeCount": 18,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract ChallengeManager (0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RollupProxy (0x2633ea91d15BeE85105C9b27E068f406F2F36a4a)\n +++ description: Manages rollup components, list of Stakers and Validators. Entry point for Validators creating new Rollup Nodes (state commits) and Challengers submitting fraud proofs.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorWalletCreator (0x2b0E04Dc90e3fA58165CB41E2834B44A56E766aF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Inbox (0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMemory (0x526a6E634aD36bB0007c4422586c135F1F9B525a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorUtils (0x6c21303F5986180B1394d2C89f3e883890E2867b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WinrMultisig (0x79C2abE3eBA9dc119318FdAaA48118e1CDB53F56)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProver0 (0x800dA62bE6626127F71B34E795286C34C04D6712)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x802c7B6585d20cb69524EF23fCbF919F671F808a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0x82709E8564ce17707a7C8420c9e48e9a8A88bfc1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SequencerInbox (0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456)\n +++ description: State batches / commitments get posted here.\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProofEntry (0xb20107bfB36D3B5AcA534aCAfbd8857b10b402a8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Outbox (0xBA99217992620b76aae0D574c70bD313B30D3D1d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverHostIo (0xc555b2F1D559Fbb854569b33640990D178F94747)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeExecutor (0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OneStepProverMath (0xe8709022B9C9D7347856c75910fe07e10C904446)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20RollupEventInbox (0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0xF3f01622Ac969156760c32190995F9dC5b3eb7FA)\n +++ description: None\n```"
}
]
}
]
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Superchain",
"type": "Infra",
"name": "Part of the Superchain",
"description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Superchain"
}
},
{
"id": "Alchemy",
"type": "RaaS",
"name": "Alchemy",
"description": "This project was deployed via the rollup-as-a-service provider Alchemy",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Alchemy"
}
}
],
"description": "World Chain is an OP Stack Rollup built to scale Proof of Personhood, aiming to offer priority blockspace for users with a World ID.",
"links": {
"websites": [
"https://worldcoin.org/world-chain"
],
"bridges": [
"https://worldchain-mainnet.bridge.alchemy.com/",
"https://worldcoin.org/download-app"
],
"documentation": [
"https://docs.world.org/world-chain/"
],
"explorers": [
"https://worldscan.org",
"https://worldchain-mainnet.explorer.alchemy.com/",
"https://worldplorer.com/"
],
"repositories": [
"https://github.com/worldcoin"
],
"socialMedia": [
"https://x.com/worldcoin",
"https://discord.com/invite/worldnetwork",
"https://t.me/worldcoin",
"https://linkedin.com/company/worldcoinproject/",
"https://youtube.com/@worldcoinofficial"
],
"other": [
"https://rollup.codes/world-chain",
"https://growthepie.com/chains/worldchain"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPSuccinct",
"type": "Stack",
"name": "Built on the OP Succinct stack",
"description": "The project is built on the OP Succinct stack"
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
}
],
"description": "X Layer is an OP Stack Layer 2 by OKX with seamless integration with OKX products. It is connected to the Agglayer shared bridge.",
"links": {
"websites": [
"https://okx.com/xlayer"
],
"documentation": [
"https://web3.okx.com/ua/xlayer/docs/developer/build-on-xlayer/about-xlayer"
],
"explorers": [
"https://okx.com/explorer/xlayer"
],
"socialMedia": [
"https://twitter.com/XLayerOfficial"
],
"bridges": [
"https://web3.okx.com/xlayer/bridge"
],
"repositories": [
"https://github.com/okx/xlayer-erigon"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
},
{
"id": "Caldera",
"type": "RaaS",
"name": "Caldera",
"description": "This project was deployed via the rollup-as-a-service provider Caldera",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Caldera"
}
}
],
"description": "ZERO Network is an L2 by the Zerion wallet team, utilizing the ZK stack and native account abstraction, allowing Zerion wallet users gasless and prioritized transactions.",
"links": {
"websites": [
"https://zero.network/"
],
"bridges": [
"https://bridge.zero.network/",
"https://app.zerion.io/bridge?outputChain=zero&inputChain=ethereum"
],
"documentation": [
"https://docs.zero.network/"
],
"explorers": [
"https://explorer.zero.network/",
"https://zero-network.calderaexplorer.xyz/"
],
"socialMedia": [
"https://x.com/ZEROdotnetwork",
"https://zero.network/blog",
"https://warpcast.com/~/channel/zero",
"https://youtube.com/@ZERO-Network-L2"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Zircuit is a universal rollup. It is based on the Optimism Bedrock architecture, employing AI to identify and stop malicious transactions at the sequencer level.",
"links": {
"websites": [
"https://zircuit.com/"
],
"bridges": [
"https://bridge.zircuit.com/",
"https://app.zircuit.com/"
],
"documentation": [
"https://docs.zircuit.com/"
],
"explorers": [
"https://explorer.zircuit.com/"
],
"repositories": [
"https://github.com/zircuit-labs"
],
"socialMedia": [
"https://x.com/ZircuitL2",
"https://discord.com/invite/zircuit",
"https://zircuit.com/blog",
"https://t.me/zircuitl2_bot"
],
"other": [
"https://rollup.codes/zircuit"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
},
{
"id": "ZKsyncLiteFork",
"type": "Fork",
"name": "Fork of ZKsync Lite",
"description": "The project is a fork of ZKsync Lite",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZKsync Lite"
}
}
],
"description": "ZKBase is an infrastructure protocol based on Zero-Knowledge (ZK) proof technology. It aims to support various projects across the Bitcoin and Ethereum networks.",
"links": {
"websites": [
"https://zkbase.org/"
],
"bridges": [
"https://zkbase.app"
],
"documentation": [
"https://en.wiki.zks.org/"
],
"explorers": [
"https://explorer.zkbase.app/"
],
"repositories": [
"https://github.com/l2labs/zkswap-contracts"
],
"socialMedia": [
"https://discord.gg/MJKtaYcYw8",
"https://twitter.com/ZKBaseOfficial",
"https://t.me/ZKSpaceOfficial"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "AppChain",
"type": "VM",
"name": "Application-specific chain",
"description": "This project is built to operate a specific application",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "AppChain"
}
},
{
"id": "EthereumCalldata",
"type": "DA",
"name": "Ethereum with calldata",
"description": "This project is posting its data to Ethereum as calldata",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as calldata"
}
],
"description": "ZKsync Lite (formerly ZKsync) is a ZK Rollup platform that supports payments, token swaps and NFT minting.",
"links": {
"websites": [
"https://zksync.io/"
],
"bridges": [
"https://lite.zksync.io/"
],
"documentation": [
"https://docs.lite.zksync.io/dev/"
],
"explorers": [
"https://zkscan.io/"
],
"repositories": [
"https://github.com/matter-labs/zksync"
],
"socialMedia": [
"https://zksync.mirror.xyz/",
"https://join.zksync.dev/",
"https://t.me/zksync",
"https://twitter.com/zksync",
"https://twitter.com/zkSyncDevs"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "ZKStack",
"type": "Stack",
"name": "Built on the ZK Stack",
"description": "The project is built on the ZK Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "ZK Stack"
}
},
{
"id": "ElasticChain",
"type": "Infra",
"name": "Part of the Elastic Chain",
"description": "The project is part of the Elastic Chain, meaning it's based on the ZK stack and uses the shared contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Elastic Chain"
}
},
{
"id": "Governance",
"type": "Other",
"name": "Governance",
"description": "This project features token voting",
"action": {
"type": "scalingFilter",
"id": "other",
"value": "Governance"
}
}
],
"description": "ZKsync Era is a general-purpose ZK Rollup with full EVM compatibility.",
"links": {
"websites": [
"https://zksync.io/",
"https://zksync.dappradar.com/"
],
"bridges": [
"https://portal.zksync.io/bridge/"
],
"documentation": [
"https://docs.zksync.io/"
],
"explorers": [
"https://explorer.zksync.io/",
"https://zksync.blockscout.com/",
"https://hyperscan.xyz/"
],
"repositories": [
"https://github.com/matter-labs/zksync-era"
],
"socialMedia": [
"https://zksync.mirror.xyz/",
"https://join.zksync.dev/",
"https://t.me/zksync",
"https://twitter.com/zksync",
"https://twitter.com/zkSyncDevs"
],
"other": [
"https://rollup.codes/zksync-era",
"https://growthepie.com/chains/zksync-era"
]
}
}
+1 -5
+1 -5
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "EthereumBlobs",
"type": "DA",
"name": "Ethereum with blobs",
"description": "This project is posting its data to Ethereum as blobs",
"action": {
"type": "publicDaHighlight",
"slug": "ethereum"
}
"description": "This project is posting its data to Ethereum as blobs"
},
{
"id": "OPStack",
"type": "Stack",
"name": "Built on OP Stack",
"description": "The project is built on the OP Stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "OP Stack"
}
},
{
"id": "Conduit",
"type": "RaaS",
"name": "Conduit",
"description": "This project was deployed via the rollup-as-a-service provider Conduit",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Conduit"
}
}
],
"description": "Zora is a fast, cost-efficient, and scalable Layer 2 built to help bring media onchain, powered by the OP Stack.",
"links": {
"websites": [
"https://zora.energy/",
"https://zora.co/"
],
"bridges": [
"https://bridge.zora.energy/"
],
"documentation": [
"https://docs.zora.co"
],
"explorers": [
"https://explorer.zora.energy/",
"https://zorascan.xyz"
],
"repositories": [
"https://github.com/ourzora/optimism"
],
"socialMedia": [
"https://twitter.com/zora",
"https://instagram.com/our.zora",
"https://zora.community"
],
"other": [
"https://growthepie.com/chains/zora"
]
}
}