Search for projects by name or address
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.
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.
2025 Sep 09 — 2026 Sep 09
The section shows the operating costs that L2s pay to Ethereum.
2025 Sep 09 — 2026 Sep 10
This section shows how much data the project publishes to its data-availability (DA) layer over time. The project currently posts data to
Ethereum.
2025 Sep 09 — 2026 Sep 10
This section shows how "live" the project's operators are by displaying how frequently they submit transactions of the selected type. It also highlights anomalies - significant deviations from their typical schedule.
2026 Aug 10 — Sep 10
All liveness anomalies detected for this project in the last 30 days, helping you review recent downtime and availability issues.
No Tx data submissions were performed for 11m 48s (from 2026 Aug 19, 21:02 UTC until 2026 Aug 19, 21:14 UTC). These typically occur every 8m 1s on average.
No Tx data submissions were performed for 13m (from 2026 Aug 11, 18:07 UTC until 2026 Aug 11, 18:20 UTC). These typically occur every 8m 1s on average.
STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup.
All of the data needed for proof construction is published on Ethereum L1.
There is no window for users to exit in case of an unwanted upgrade since the Security Council can remove the delay on upgrades.
Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.
All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.
Katana uses the Agglayer CDK in CDK-opgeth-zkrollup configuration. This combines an OP-Succinct zk rollup base with Agglayer shared bridge interoperability. Both parts are verified in a single nested proof using the Succinct Sp1Verifier. This proof is called the pessimistic proof by Agglayer which contains 1) the bridge accounting proof proving only the secure accounting of the Agglayer shared bridge and can have 2) a reference to an ‘aggchain proof’, which can define additional programs to be proven. In the case of Katana, these are the op-succinct block range proofs as an aggregated proof proving the state transitions of the L2, resulting in a full validity proof of L2 execution and agglayer bridge accounting.
Each update to the rollup state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
Funds can be stolen if the state transition validity proof cryptography is broken or implemented incorrectly.
Funds can be stolen if A malicious state transition is finalized by activating the permissioned optimistic mode.
Funds can be stolen if the proposer routes proof verification through a malicious or faulty verifier by specifying an unsafe route id.
Funds can be frozen if the AggLayerGateway is unable to route proof verification to a valid verifier.
The pessimistic proofs that are used to prove correct accounting in the Agglayer shared bridge (minimum security guarantee) are using the SP1 zkVM by Succinct.
Funds can be stolen if the pessimistic proof cryptography is broken or implemented incorrectly.
Onchain verifier
Onchain verifier |
Name | Hash | Repository | Verification | Used in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00d6...0c89 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1f08...3b8f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x713f...fa1f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x374e...dac6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x6e38...1b53 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x7767...6f70 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x679b...7915 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00ef...cc30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x0000...b639 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00d1...578e | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

The regular upgrade process for all system contracts (shared and L2-specific) starts at the PolygonAdminMultisig. For the shared contracts, they schedule a transaction that targets the ProxyAdmin via the Timelock, wait for 3d and then execute the upgrade. An upgrade of the Layer 2 specific rollup- or validium contract requires first adding a new rollupType through the Timelock and the AgglayerManager (defining the new implementation and verifier contracts). Now that the rollupType is created, either the local admin or the PolygonAdminMultisig can immediately upgrade the local system contracts to it.
The PolygonSecurityCouncil can expedite the upgrade process by declaring an emergency state. This state pauses both the shared bridge and the AgglayerManager and allows for instant upgrades through the timelock. Accordingly, instant upgrades for all system contracts are possible with the cooperation of the SecurityCouncil. The emergency state has been activated 1 time(s) since inception.
Furthermore, the PolygonAdminMultisig is permissioned to manage the shared trusted aggregator (proposer and prover) for all participating Layer 2s, deactivate the emergency state, obsolete rollupTypes and manage operational parameters and fees in the AgglayerManager directly. The local admin of a specific Layer 2 can manage their chain by choosing the trusted sequencer, manage forced batches and set the data availability config. Creating new Layer 2s (of existing rollupType) is outsourced to the PolygonCreateRollupMultisig but can also be done by the PolygonAdminMultisig. Finally, it can manage SP1 verification keys for pessimistic proofs and aggchain proofs, which defines the affected chains’ state validation. Custom non-shared bridge escrows have their custom upgrade admins listed in the permissions section.
The metrics include upgrades on the currently used proxy contracts. Historical proxy contracts and changes of such are not included.
All OP-stack L1 contracts upgraded to the current OP stack release (Karst generation, same as the Superchain). The forked OptimismPortal2 still disables ETH and token bridging while allowing forced transactions. No risk related changes. Implementation diffs: - OptimismPortal2: https://disco.l2beat.com/diff/eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a/eth:0x3160738db14B27EAe2D0d1b622259010308f4C38 - SystemConfig: https://disco.l2beat.com/diff/eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED/eth:0x42Ad0173051225Ac784100e9acD43349707F4db9 - SuperchainConfig: https://disco.l2beat.com/diff/eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957/eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550 - DisputeGameFactory: https://disco.l2beat.com/diff/eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50/eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b - AnchorStateRegistry: https://disco.l2beat.com/diff/eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E/eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281 - L1CrossDomainMessenger: https://disco.l2beat.com/diff/eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0/eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0 - L1StandardBridge: https://disco.l2beat.com/diff/eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A/eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891 - L1ERC721Bridge: https://disco.l2beat.com/diff/eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9/eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e - OptimismMintableERC20Factory: https://disco.l2beat.com/diff/eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB/eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12 - DelayedWETH (new proxy, impl diff): https://disco.l2beat.com/diff/eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998/eth:0xE440CC08A71694C8229323803F59024E3144630e - PermissionedDisputeGame (replaced): https://disco.l2beat.com/diff/eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D/eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e - MIPS (replaced): https://disco.l2beat.com/diff/eth:0x6463dEE3828677F6270d83d45408044fc5eDB908/eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA - PreimageOracle (replaced): https://disco.l2beat.com/diff/eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3/eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0
All OP-stack L1 contracts upgraded to the current OP stack release (Karst generation, same as the Superchain). The forked OptimismPortal2 still disables ETH and token bridging while allowing forced transactions.
No risk related changes.
Implementation diffs:
| contract L1ERC721Bridge (eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F) [opstack/L1ERC721Bridge] { | |
| +++ description: Used to bridge ERC-721 tokens from host chain to this chain. | |
| sourceHashes.1: | |
| - | "0x1f65fda230b6d0df44e466b06418b2e12a401ef82c07521ad18d2f4ae6c70fb2" |
| + | "0xc5ed62b03fb7c1340609ace7ebb0c5bf8d43b1814b1ab4f10863bfa21d13b90b" |
| values.$implementation: | |
| - | "eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9" |
| + | "eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e" |
| values.$pastUpgrades.5: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"]] |
| values.$pastUpgrades.6: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.7: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e"]] |
| values.$upgradeCount: | |
| - | 5 |
| + | 8 |
| values.version: | |
| - | "2.9.0" |
| + | "2.9.1" |
| implementationNames.eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9: | |
| - | "L1ERC721Bridge" |
| implementationNames.eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e: | |
| + | "L1ERC721Bridge" |
| } | |
| contract ProxyAdmin (eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) [global/ProxyAdmin] { | |
| +++ description: None | |
| directlyReceivedPermissions.5: | |
| + | {"permission":"upgrade","from":"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e","role":"admin"} |
| directlyReceivedPermissions.7: | |
| - | {"permission":"upgrade","from":"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322","role":"admin"} |
| } | |
| - | Status: DELETED |
| contract PreimageOracle (eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3) [opstack/PreimageOracle] | |
| +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game. | |
| contract L1CrossDomainMessenger (eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E) [opstack/L1CrossDomainMessenger] { | |
| +++ description: Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function. | |
| sourceHashes.1: | |
| - | "0x1f2c13ad1144ce6548e578b834c33b0d65b1564aeb0d5c708ed4e7fb50535cc6" |
| + | "0x694050f95b40e6d92ee91ca0f60acb9c4a74d1b0325c33fd4bd7445fde90e806" |
| values.$implementation: | |
| - | "eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0" |
| + | "eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0" |
| values.$pastUpgrades.5: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"]] |
| values.$pastUpgrades.6: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.7: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0"]] |
| values.$upgradeCount: | |
| - | 5 |
| + | 8 |
| values.version: | |
| - | "2.11.0" |
| + | "2.11.1" |
| implementationNames.eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0: | |
| - | "L1CrossDomainMessenger" |
| implementationNames.eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0: | |
| + | "L1CrossDomainMessenger" |
| } | |
| contract OptimismPortal2 (eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) [katana/OptimismPortal2] { | |
| +++ description: Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions. | |
| sourceHashes.1: | |
| - | "0xfcecb325a86c39482f8e9d29272f25089eec0b5fbefe21444fd1ea690c911f0c" |
| + | "0xcdca45f93efdef12515a42464aa744c87143d83208163ef6a97317da454c7eac" |
| values.$implementation: | |
| - | "eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a" |
| + | "eth:0x3160738db14B27EAe2D0d1b622259010308f4C38" |
| values.$pastUpgrades.9: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x97cEbbf8959e2A5476fbe9B98A21806Ec234609B"]] |
| values.$pastUpgrades.10: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.11: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xe89F13c5ee4033B2D3cD76C9d6958eFBfe26D3C2"]] |
| values.$pastUpgrades.12: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x3160738db14B27EAe2D0d1b622259010308f4C38"]] |
| values.$upgradeCount: | |
| - | 9 |
| + | 13 |
| values.version: | |
| - | "agg3.15.0" |
| + | "5.6.1-agglayer" |
| implementationNames.eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a: | |
| - | "OptimismPortal2" |
| implementationNames.eth:0x3160738db14B27EAe2D0d1b622259010308f4C38: | |
| + | "OptimismPortal2" |
| } | |
| contract SuperchainConfig (eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811) [opstack/SuperchainConfigFake_expiry] { | |
| +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched. | |
| template: | |
| - | "opstack/SuperchainConfigNoGuard" |
| + | "opstack/SuperchainConfigFake_expiry" |
| sourceHashes.1: | |
| - | "0x5fb525d1572fb90d060d122143b915059cbff39e0298b345857fd4267d7f6b28" |
| + | "0x2cd597b7305a446a1df355e6909cbd75fe38aa045faf4876a8e5496eebc1734f" |
| description: | |
| - | "This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system. Since the OptimismPortal is not used for state root management in this setup, the guardian role and pausing may be inconsequential." |
| + | "This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched." |
| values.$implementation: | |
| - | "eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957" |
| + | "eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550" |
| values.$pastUpgrades.6: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.7: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550"]] |
| values.$upgradeCount: | |
| - | 6 |
| + | 8 |
| values.version: | |
| - | "2.4.0" |
| + | "2.4.2" |
| values.pauseExpiryFmt: | |
| + | "3mo 1d" |
| implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957: | |
| - | "SuperchainConfig" |
| implementationNames.eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550: | |
| + | "SuperchainConfig" |
| category.name: | |
| - | "Spam" |
| + | "Shared Infrastructure" |
| category.priority: | |
| - | -1 |
| + | 4 |
| fieldMeta: | |
| + | {"paused":{"severity":"HIGH"}} |
| } | |
| - | Status: DELETED |
| contract MIPS (eth:0x6463dEE3828677F6270d83d45408044fc5eDB908) [opstack/MIPS] | |
| +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute. | |
| contract L1StandardBridge (eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC) [opstack/L1StandardBridge] { | |
| +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain. | |
| sourceHashes.1: | |
| - | "0xcacd38e7b52353ad3463da40b7e7a29b028f95500a82590d2b8f8ffd26b83f6d" |
| + | "0x6469155800e1489607c8fa062550a362dfa8978885df4714ca4653e5f3d25b0c" |
| values.$implementation: | |
| - | "eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A" |
| + | "eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891" |
| values.version: | |
| - | "2.8.0" |
| + | "2.8.2" |
| implementationNames.eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A: | |
| - | "L1StandardBridge" |
| implementationNames.eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891: | |
| + | "L1StandardBridge" |
| } | |
| - | Status: DELETED |
| contract PermissionedDisputeGame (eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D) [opstack/PermissionedDisputeGame] | |
| +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger. | |
| contract OptimismMintableERC20Factory (eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E) [opstack/OptimismMintableERC20Factory] { | |
| +++ description: A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa. | |
| sourceHashes.1: | |
| - | "0x307d4cb83e682629880fe9bb874a188805e3b93cb11a2cbf80095975f1e5b04e" |
| + | "0x11b0ed6f15cabf613492a8d54c55304a17cf60f4fd94a655d7e720d4556906d0" |
| values.$implementation: | |
| - | "eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB" |
| + | "eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12" |
| values.$pastUpgrades.3: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"]] |
| values.$pastUpgrades.4: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.5: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12"]] |
| values.$upgradeCount: | |
| - | 3 |
| + | 6 |
| values.version: | |
| - | "1.10.2" |
| + | "1.11.0" |
| values.proxyAdmin: | |
| + | "eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832" |
| values.proxyAdminOwner: | |
| + | "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC" |
| implementationNames.eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB: | |
| - | "OptimismMintableERC20Factory" |
| implementationNames.eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12: | |
| + | "OptimismMintableERC20Factory" |
| } | |
| contract AnchorStateRegistry (eth:0xaA8a62563CFe4E36118ED479B5486F503b438376) [opstack/AnchorStateRegistry_post20] { | |
| +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game. This variant stores respectedGameType, retirementTimestamp, and disputeGameFinalityDelaySeconds locally and drops the legacy *FromGame fields, since the AggregateVerifier model does not expose vm()/weth()/absolutePrestate() on its game implementation. | |
| template: | |
| - | "opstack/AnchorStateRegistry_post13" |
| + | "opstack/AnchorStateRegistry_post20" |
| sourceHashes.1: | |
| - | "0xf808a203af41f7932eb8e39985e56a7c75c940a260fb17d76d1003a3793281b5" |
| + | "0x10f64124093daab87c84d97148854054f9622bf86e09e98d496f123be3368122" |
| description: | |
| - | "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame." |
| + | "Contains the latest confirmed state root that can be used as a starting point in a dispute game. This variant stores respectedGameType, retirementTimestamp, and disputeGameFinalityDelaySeconds locally and drops the legacy *FromGame fields, since the AggregateVerifier model does not expose vm()/weth()/absolutePrestate() on its game implementation." |
| values.$implementation: | |
| - | "eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E" |
| + | "eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281" |
| values.$pastUpgrades.1: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x36398155Cd17cfe804F69b233eDDA800DD4D5aA5"]] |
| values.$pastUpgrades.2: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.3: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281"]] |
| values.$upgradeCount: | |
| - | 1 |
| + | 4 |
| values.absolutePrestateFromGame: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.challengePeriodFromOracle: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.oracleFromVm: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.version: | |
| - | "3.5.0" |
| + | "3.9.0" |
| values.vmFromGame: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.wethFromGame: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.getStartingAnchorRoot: | |
| + | {"root":"0xdead000000000000000000000000000000000000000000000000000000000000","l2SequenceNumber":0} |
| fieldMeta.retirementTimestamp: | |
| + | {"severity":"HIGH"} |
| fieldMeta.disputeGameFinalityDelaySeconds: | |
| + | {"severity":"HIGH"} |
| implementationNames.eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E: | |
| - | "AnchorStateRegistry" |
| implementationNames.eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281: | |
| + | "AnchorStateRegistry" |
| usedTypes.0.arg.621: | |
| + | "AggregateVerifier" |
| usedTypes.0.arg.8: | |
| + | "FaultDisputeGame" |
| } | |
| - | Status: DELETED |
| contract DelayedWETH (eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322) [opstack/DelayedWETH] | |
| +++ description: Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds. | |
| contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) [opstack/SystemConfig] { | |
| +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address. | |
| sourceHashes.1: | |
| - | "0xaa1b3bedab4e63198240e9dea4503f0e615e4d18a545961c9f11b72143279fbc" |
| + | "0x3d8e7cdbbdbf274bba0a11a060b01d5a50e3a478683af9ec079874d1758576d6" |
| values.$implementation: | |
| - | "eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED" |
| + | "eth:0x42Ad0173051225Ac784100e9acD43349707F4db9" |
| values.$pastUpgrades.6: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xd392c27B84b1cA776528F2704BC67B82a62132d2"]] |
| values.$pastUpgrades.7: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.8: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x42Ad0173051225Ac784100e9acD43349707F4db9"]] |
| values.$upgradeCount: | |
| - | 6 |
| + | 9 |
| values.getAddresses.delayedWETH: | |
| + | "eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e" |
| values.getAddresses.opcm: | |
| + | "eth:0x6FD5B86B93A0405c1eF082ED6Ed3b28e94f022f4" |
| values.version: | |
| - | "3.11.0" |
| + | "3.14.2" |
| values.DELAYED_WETH_SLOT: | |
| + | "0x51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd58ff" |
| values.delayedWETH: | |
| + | "eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e" |
| values.isCustomGasToken: | |
| + | false |
| values.lastUsedOPCM: | |
| + | "eth:0x6FD5B86B93A0405c1eF082ED6Ed3b28e94f022f4" |
| values.lastUsedOPCMVersion: | |
| + | "7.1.17" |
| values.OPCM_SLOT: | |
| + | "0x99f45962df4bc30de8d4c3c6d1ffc0f100edce16e80c7a5768b6d55ca463ff42" |
| implementationNames.eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED: | |
| - | "SystemConfig" |
| implementationNames.eth:0x42Ad0173051225Ac784100e9acD43349707F4db9: | |
| + | "SystemConfig" |
| } | |
| contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) [GnosisSafe] { | |
| +++ description: None | |
| receivedPermissions.9: | |
| + | {"permission":"upgrade","from":"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e","role":"admin","via":[{"address":"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"}]} |
| receivedPermissions.11: | |
| - | {"permission":"upgrade","from":"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322","role":"admin","via":[{"address":"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"}]} |
| } | |
| contract DisputeGameFactory (eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe) [opstack/DisputeGameFactory_v2] { | |
| +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them. This variant exposes per-type reads only; the legacy array views (gameImpls[], initBonds[]) were removed in the new implementation. | |
| template: | |
| - | "opstack/DisputeGameFactory" |
| + | "opstack/DisputeGameFactory_v2" |
| sourceHashes.1: | |
| - | "0x7daf6049672fd2ab7dc8dd3b6287e1d0a40958346c5e2857c4616a73dcac4da6" |
| + | "0x8912e655e26f51d4384fc950df847ae65bccf1f5ec5458642402f385c3dadf78" |
| description: | |
| - | "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them." |
| + | "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them. This variant exposes per-type reads only; the legacy array views (gameImpls[], initBonds[]) were removed in the new implementation." |
| values.$implementation: | |
| - | "eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50" |
| + | "eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b" |
| values.$pastUpgrades.4: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0xc040F392E52Cb6970CA8E110c280fE24E07C5e2c"]] |
| values.$pastUpgrades.5: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"]] |
| values.$pastUpgrades.6: | |
| + | ["2026-09-01T06:51:23.000Z","0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033",["eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b"]] |
| values.$upgradeCount: | |
| - | 4 |
| + | 7 |
| values.challengerFromDGF: | |
| - | "UNRESOLVED" |
| + | "eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746" |
| values.game2000: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| values.gameImpls: | |
| - | ["eth:0x0000000000000000000000000000000000000000","eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D","eth:0x0000000000000000000000000000000000000000","eth:0x0000000000000000000000000000000000000000","eth:0x0000000000000000000000000000000000000000","eth:0x0000000000000000000000000000000000000000","eth:0x0000000000000000000000000000000000000000"] |
| values.initBonds: | |
| - | [0,0,0,0,0] |
| values.proposerFromDGF: | |
| - | "UNRESOLVED" |
| + | "eth:0x4A6f5889409Bf4Bf3Bff0Fef585D7A29FdA64258" |
| values.version: | |
| - | "1.3.0" |
| + | "1.6.1" |
| values.wethFromDGF: | |
| - | "UNRESOLVED" |
| + | "eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e" |
| +++ severity: HIGH | |
| values.game0: | |
| + | "eth:0x0000000000000000000000000000000000000000" |
| +++ severity: HIGH | |
| values.game1: | |
| + | "eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e" |
| +++ severity: HIGH | |
| values.game621: | |
| + | "eth:0x0000000000000000000000000000000000000000" |
| +++ severity: HIGH | |
| values.game8: | |
| + | "eth:0x0000000000000000000000000000000000000000" |
| values.game8Args: | |
| + | "0x" |
| values.game8Vm: | |
| + | "UNRESOLVED" |
| values.initBondGame0: | |
| + | 0 |
| values.initBondGame1: | |
| + | 0 |
| values.initBondGame621: | |
| + | 0 |
| values.initBondGame8: | |
| + | 0 |
| fieldMeta.gameImpls: | |
| - | {"severity":"HIGH"} |
| fieldMeta.game2000: | |
| - | {"severity":"HIGH"} |
| fieldMeta.game621: | |
| + | {"severity":"HIGH"} |
| fieldMeta.game0: | |
| + | {"severity":"HIGH"} |
| fieldMeta.game1: | |
| + | {"severity":"HIGH"} |
| fieldMeta.game8: | |
| + | {"severity":"HIGH"} |
| implementationNames.eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50: | |
| - | "DisputeGameFactory" |
| implementationNames.eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b: | |
| + | "DisputeGameFactory" |
| usedTypes.0: | |
| + | {"typeCaster":"SliceAddress","arg":{"offset":32}} |
| } | |
| contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.0: | |
| + | "eth:0x28260fD38F737e98F1599eCd385d4eB13C5A7A1f" |
| values.multisigThreshold: | |
| - | "2 of 10 (20%)" |
| + | "2 of 11 (18%)" |
| } | |
| + | Status: CREATED |
| contract DelayedWETH (eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e) [opstack/DelayedWETH] | |
| +++ description: Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds. | |
| + | Status: CREATED |
| contract PermissionedDisputeGame (eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e) [opstack/PermissionedDisputeGame] | |
| +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger. | |
New selected op succinct config.
New selected op succinct config.
| contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] { | |
| +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here. | |
| values.selectedOpSuccinctConfig.aggregationVkey: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "0x00d68eb096f4c731512562f7a06e6bba104dbcb959261edd3eb3ec542c200c89" |
| values.selectedOpSuccinctConfig.rangeVkeyCommitment: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "0x1f089f9d1cd3f727775788003d3e496037d3625e2e9de6e5005f1e9707ba3b8f" |
| values.selectedOpSuccinctConfig.rollupConfigHash: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "Katana OP Succinct v3.12.0 rollup config (Kona v1.6.0)" |
| +++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes. | |
| +++ severity: HIGH | |
| values.selectedOpSuccinctConfigName: | |
| - | "0xe3fbe1170998c9f380d29247864dd07f2f17367a23ae5e0fa409ebd371d97d6f" |
| + | "0x0f30c0b6846b034a146a47c5185fb9a4321df3569376773238ef30c831019190" |
| } | |
| contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.0: | |
| + | "eth:0x9402c42dB162d5a0927c032136f40Cc9C71853F2" |
| values.multisigThreshold: | |
| - | "4 of 10 (40%)" |
| + | "4 of 11 (36%)" |
| } | |
One Polygon Labs Engineering/Security Multisig signer was rotated and another removed, changing it from 2-of-8 to 2-of-7.
One Polygon Labs Engineering/Security Multisig signer was rotated and another removed, changing it from 2-of-8 to 2-of-7.
| contract Polygon Labs Engineering/Security Multisig (eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.1: | |
| - | "eth:0xe0e8e6bBDef7bbcf8dF1F5Ac0ab9906BFe991d8B" |
| + | "eth:0xFB2a738AE435610354b132c4a4ee647558f663eb" |
| values.$members.6: | |
| - | "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2" |
| values.multisigThreshold: | |
| - | "2 of 8 (25%)" |
| + | "2 of 7 (29%)" |
| } | |
4 multisig signers added.
4 multisig signers added.
| contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.0: | |
| + | "eth:0x9f02595fBFD199C4cBC02878fc9B2b2E07b0840C" |
| values.$members.1: | |
| + | "eth:0x1319279d6d54dB0883F7bAF822191c7184Db0c3d" |
| values.$members.2: | |
| + | "eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890" |
| values.$members.3: | |
| + | "eth:0x573D7a729cfcF20B81D70732d625Ae31549B8b91" |
| values.multisigThreshold: | |
| - | "2 of 6 (33%)" |
| + | "2 of 10 (20%)" |
| } | |
New op-succinct programHashes - reproduced from v3.10.0 . Add rollup config preimg and instructions to repro.
New op-succinct programHashes - reproduced from v3.10.0 . Add rollup config preimg and instructions to repro.
| contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] { | |
| +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here. | |
| values.selectedOpSuccinctConfig.aggregationVkey: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "0x0034587dfb1de8163284d39f3043f5fadfa92f9e03fb3e0315eb469c550fde40" |
| values.selectedOpSuccinctConfig.rangeVkeyCommitment: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "0x1b04822373ca65680026b5610c1edf424798421b032ef9117b2c264661de246f" |
| values.selectedOpSuccinctConfig.rollupConfigHash: | |
| - | "0x0000000000000000000000000000000000000000000000000000000000000000" |
| + | "Katana OP Succinct v3.10.0 rollup config (Kona v1.6.0)" |
| +++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes. | |
| +++ severity: HIGH | |
| values.selectedOpSuccinctConfigName: | |
| - | "0x3cb66b8472d88440173415d4d4a316b9df81ac208e63e02829f823fccbe3f547" |
| + | "0xe3fbe1170998c9f380d29247864dd07f2f17367a23ae5e0fa409ebd371d97d6f" |
| } | |
| contract Katana Steakhouse Financial / Morpho Multisig (eth:0x827e86072B06674a077f592A531dcE4590aDeCdB) [GnosisSafe] { | |
| +++ description: None | |
| values.$members.0: | |
| + | "eth:0xfc615395336aADe67fd853a0157001a215Ea1279" |
| values.multisigThreshold: | |
| - | "2 of 6 (33%)" |
| + | "2 of 7 (29%)" |
| } | |
Only a trusted sequencer is allowed to submit transaction batches. A mechanism for users to submit their own batches is currently disabled. Only a trusted proposer can propose and prove new state roots.
Funds can be frozen if the permissioned proposer fails to publish state roots to the L1.
Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly. The self-sequencing delay is configured offchain and the node source and config are unverified.
Polygon Agglayer uses a shared bridge escrow for Rollups, Validiums and external chains that opt in to participate in interoperability. Each participating chain needs to provide zk proofs to access any assets in the shared bridge. In addition to the full execution proofs that are used for the state validation of Rollups and Validiums, accounting proofs over the bridges state (Polygon calls them ‘Pessimistic Proofs’) are used by external chains (‘cdk-sovereign’ and aggchains). Using the SP1 zkVM by Succinct, projects without a full proof system on Ethereum or custom proof systems are able to share the bridge with the zkEVM Agglayer projects.
Funds can be lost if the accounting proof system for the bridge (pessimistic proofs, SP1) is implemented incorrectly.

A Multisig with 5/9 threshold.
Participants (9):
0xEB5E…EA720xAb35…235E0xf02B…D4B20xdFEd…56Da0xffbf…32380xeD44…dB370x516e…46B70x2161…d4170x8B9F…782BA Multisig with 3/5 threshold. Member of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.
The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the ‘Emergency State’. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.
A Multisig with 2/5 threshold.
A Multisig with 6/8 threshold.
Participants (8):
0xFe45…2e4b0xaF46…261D0xBDc2…FEFf0x4c16…88910x3ab9…D6220x49c1…0E860x9F7d…86A00x2188…1C28A Multisig with 3/5 threshold.
A Multisig with 2/3 threshold.
A Multisig with 2/7 threshold. Member of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.
A Multisig with 2/3 threshold.
A Multisig with 2/3 threshold.
A Multisig with 3/8 threshold. Member of Katana vaultBridge Multisig 2.
A Multisig with 1/4 threshold.
A Multisig with 2/4 threshold. Member of Safe.
A Multisig with 4/11 threshold.
Participants (11):
0x9402…53F20xcdC9…48530xA9FC…8d090x6BB4…83A60x2103…911c0x8117…E7Ac0xA073…bda20xF331…647D0xa0C6…90380xefCf…dD5C0x4D80…5BAeA Multisig with 2/6 threshold. Member of Safe.
A Multisig with 2/7 threshold. Member of Katana vaultBridge Multisig 3.
A Multisig with 2/11 threshold. Member of Safe.
A Multisig with 2/5 threshold.
A Multisig with 3/5 threshold.
Collects EIP-1559 base fees
A Multisig with 3/6 threshold.


The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.
Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions.
This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.
A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.
The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.
All supported tokens in this escrow are included in the value secured calculation.
A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the ‘global exit root’. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.
A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.
This token contract uses a standard ‘vault bridge token’ implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to Safe.
This token contract uses a standard ‘vault bridge token’ implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to Safe.
This token contract uses a standard ‘vault bridge token’ implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to Safe.
This token contract uses a standard ‘vault bridge token’ implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to Safe.
This token contract uses a standard ‘vault bridge token’ implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to Safe.
Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.
Contains the latest confirmed state root that can be used as a starting point in a dispute game. This variant stores respectedGameType, retirementTimestamp, and disputeGameFinalityDelaySeconds locally and drops the legacy *FromGame fields, since the AggregateVerifier model does not expose vm()/weth()/absolutePrestate() on its game implementation.
Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.
Extension contract of the AgglayerBridge for asset metadata…
Agglayer bridge contract. Supports interop with Ethereum and blockchains connected to Agglayer. Escrows all preminted ETH because it cannot mint on the L2. The globalExitRootManager is used as an oracle to validate bridge messages against.
Manages Layer 2 and global merkle roots (exit roots). It stores exit roots written during bridge deposits, accepts imported global exit roots from a permissioned address, and manages historical roots.
A timelock with access control. The current minimum delay is 12h.
The L2CrossDomainMessenger (L2xDM) contract sends messages from L2 to L1, and relays messages from L1 onto L2 with a system tx. In the event that a message sent from L2 to L1 is rejected for exceeding the L1 gas limit, it can be resubmitted via this contract’s replay function.
Collects the sequencer fees.
Contract used internally by the L2CrossDomainMessenger to send messages to L1. It can also be used directly as a low-level interface.
Collects the operator fees.
Contracts to register schemas for the Ethereum Attestation Service (EAS).
Contract containing the main logic for the Ethereum Attestation Service (EAS).
Utility library contract for the AgglayerBridgeL2.
The current deployment carries some associated risks:
Funds can be stolen if the contracts or their dependencies (e.g. AggLayerGateway) receive a malicious code upgrade. There is no delay on upgrades.
Name | Hash | Repository | Verification | Used in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00d6...0c89 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1f08...3b8f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x713f...fa1f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x374e...dac6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x6e38...1b53 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x7767...6f70 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x679b...7915 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00ef...cc30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x0000...b639 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00d1...578e | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||