Search for projects by name or address
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.
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.
The current proof system is forked from the standard permissionless OP stack proof system. Importantly, new state root proposals do not create new dispute games and although challenge requests can be made by any bonded user, creating dispute games (creator role) and deleting a state root (state deleter role) after winning a challenge is not permissionless.
Consequence: projects without a sufficiently decentralized set of challengers rely on few entities to safely update the state. A small set of challengers can collude with the proposer to finalize an invalid state, which can cause loss of funds.
Learn more about the recategorisation here.
The section shows the operating costs that L2s pay to Ethereum.
This section shows how much data the project publishes to its data-availability (DA) layer over time. The project currently posts data to
Ethereum.
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.
All liveness anomalies detected for this project in the last 30 days, helping you review recent downtime and availability issues.
No State updates were performed for 5d 7h (from 2026 Jun 13, 03:34 UTC until 2026 Jun 18, 11:05 UTC). These typically occur every 40m 16s on average.
No Tx data submissions were performed for 5d 7h (from 2026 Jun 13, 03:26 UTC until 2026 Jun 18, 11:02 UTC). These typically occur every 39m 14s on average.
No Tx data submissions were performed for 8h 19m (from 2025 Sep 02, 02:47 UTC until 2025 Sep 02, 11:06 UTC). These typically occur every 39m 14s on average.
Metis starts using blobs
2025 May 13th
Permissioned batcher is posting blobsThe data that a rollup publishes to its L1/data availability (DA) layer. They consist of the L2 transactions that are rolled up, along with some metadata. Blobs are introduced as a new transaction type within Ethereum with EIP-4844, and has rollup scaling specifically in mind. Blobs persist on Ethereum’s Beacon Chain ephemerally. to the inbox.
Data hashes posted to EOA
2023 Mar 15th
Hashes to data blobsThe data that a rollup publishes to its L1/data availability (DA) layer. They consist of the L2 transactions that are rolled up, along with some metadata. Blobs are introduced as a new transaction type within Ethereum with EIP-4844, and has rollup scaling specifically in mind. Blobs persist on Ethereum’s Beacon Chain ephemerally. are now posted to EOA address instead of CanonicalTransactionChain contract.
There is no mechanism to have transactions be included if the sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. is down or censoring. The single address acting as a sequencer on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. is not trustlessly linkable to the claim of multiple decentralized sequencers being used.
Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve.Anyone can submit challenge requests. However, permissioned actors are needed to create the challenge and to delete successfully disputed state rootsA cryptographic hash succinctly representing a state using a Merkle tree.. Additionally, the current permissioned actors (GameCreator and Security CouncilA Security Council is a sufficiently decentralized set of members that is able to upgrade a system. A properly set up Security Council consists of at least 8 members with a threshold greater than 75%. What 'sufficiently decentralized' means is fundamentally subjective and L2BEAT evaluates each case individually. A Security Council is allowed to instantly upgrade Stage 1 rollups. minority) can collude and finalize malicious state roots.
All of the data needed for proof construction is published on Ethereum L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development..
There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.
Only the whitelisted proposerIn the context of L2s, the actor that proposes a claimed state root on L1. The term is also used in the context of Ethereum to refer to the actor that proposes a new block. can update state rootsA cryptographic hash succinctly representing a state using a Merkle tree. on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development., so in the event of failure the withdrawals are frozen. The Security CouncilA Security Council is a sufficiently decentralized set of members that is able to upgrade a system. A properly set up Security Council consists of at least 8 members with a threshold greater than 75%. What 'sufficiently decentralized' means is fundamentally subjective and L2BEAT evaluates each case individually. A Security Council is allowed to instantly upgrade Stage 1 rollups. minority can be alerted to enforce censorship resistance because they own the proposer registry, controlling the active whitelisted proposer.
Transaction data is posted to Ethereum using blobsThe data that a rollup publishes to its L1/data availability (DA) layer. They consist of the L2 transactions that are rolled up, along with some metadata. Blobs are introduced as a new transaction type within Ethereum with EIP-4844, and has rollup scaling specifically in mind. Blobs persist on Ethereum’s Beacon Chain ephemerally.. Initially, data was posted to the CanonicalTransactionChain contract, then it moved to just posting hashes to an EOA address, and as of May 2025, the system uses blobs for data availabilityThe property of a rollup's data being reachable by any node retrieving the data that were rolled up and executed to reach the proposed state. Data availability (DA), specifically decoupling it from the rollup nodes themselves, is one of the preeminent factors which allows a rollup to scale securely. A rollup is faced with a decision of what to use as a DA layer to guarantee that any node can retrieve this data--permissionlessly under any circumstance. For this reason, using Ethereum for DA currently provides the strongest security guarantees. If data is stored somewhere other than a permissionless L1, then the project is not a rollup, but rather a validium or an optimium..
Dispute game contracts for state validation are deployed but not used to propose state rootsA cryptographic hash succinctly representing a state using a Merkle tree. as in standard OP Stack chains. Instead, the permissioned proposerIn the context of L2s, the actor that proposes a claimed state root on L1. The term is also used in the context of Ethereum to refer to the actor that proposes a new block. submits state roots through the appendStateBatch function in the StateCommitmentChain contract. A state root gets confirmed if the challenge periodIn optimistic rollups, the window of time wherein network participants can assert that some fraud was included in a prior block. Most optimistic rollups currently specify a challenge window of 7 days. By extending the period, there is more time for participants to guard against fraud (invalid state transitions), but also more time until withdrawals gets enabled. has passed and the state batch is not disputed.
Games can only be created on demand by the permissioned GameCreator should a dispute be requested. Users can signal the need for a dispute by bonding 4.0 METIS and calling the dispute() function of the DisputeGameFactory. If a game is not created by the GameCreator within the dispute timeout period of 2d, anyone can call disputeTimeout(). This function calls saveDisputedBatchTimeout() on the StateCommitmentChain, which marks the batch as disputed. This blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups.->L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. messaging and withdrawals for the disputed batch and any subsequent batches until the dispute is deleted. Should a game be created and resolved, disputed state batches can be marked as such in the StateCommitmentChain. Then, these flagged batches can be deleted (within the fraud proofAlso referred to as a fault proof, it is the construction of an assertion that fraud was perpetrated on an optimistic rollup. More concretely, that an invalid state transition took place according to the protocol rules. The submitter of a fraud proof would expect a reward from the optimistic rollup protocol for helping maintain the integrity of the system. window). Batches can only be deleted by the MVM_Fraud_Verifier contract address, which currently corresponds to the Metis Security Council minority.
Funds can be frozen if an invalid state root is successfully disputed but it is not deleted by the permissioned MVM_Fraud_Verifier (Metis Security Council minority).
Funds can be stolen if the GameCreator colludes with the StateDeleter to block Challenges in the proof system (CRITICAL).
The metrics include upgrades on the currently used proxy contracts. Historical proxy contracts and changes of such are not included.
Introduced MVM ProposerRegistry. https://disco.l2beat.com/diff/eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1/eth:0xA738573Ec0FD7959BfA60Aaa8a23Fe7BEC6c4Bd7
Introduced MVM_ProposerRegistry. https://disco.l2beat.com/diff/eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1/eth:0xA738573Ec0FD7959BfA60Aaa8a23Fe7BEC6c4Bd7
| contract L1CrossDomainMessenger (eth:0x081D1101855bD523bA69A9794e0217F0DB6323ff) { | |
| +++ description: The L1 Cross Domain Messenger (L1xDM) contract sends messages from L1 to Metis, and relays messages from Metis onto L1. In the event that a message sent from L1 to Metis is rejected for exceeding the Metis epoch gas limit, it can be resubmitted via this contract's replay function. | |
| values.owner: | |
| - | "eth:0xDD6FFC7D9a4Fb420b637747edc6456340d12d377" |
| + | "eth:0x0000000000000000000000000000000000000000" |
| } | |
| contract Lib_AddressManager (eth:0x918778e825747a892b17C66fe7D24C618262867d) { | |
| +++ description: Contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts. | |
| values.MVM_ProposerRegistry: | |
| - | "eth:0x0000000000000000000000000000000000000000" |
| + | "eth:0x5669d0C8C28B7E2c3d10eD246bEb042bDdd12E18" |
| } | |
| contract StateCommitmentChain (eth:0xA2FaAAC9120c1Ff75814F0c6DdB119496a12eEA6) { | |
| +++ description: The State Commitment Chain (SCC) stores a list of proposed state roots in a linked ChainStorageContainer contract. Only a permissioned state root proposer (MVM_Proposer) can submit new state roots. | |
| sourceHashes.1: | |
| - | "0x0e8553402b55057406811a803b14c4778f42fcf02523b10e695ec073a98202a9" |
| + | "0xa42c85a235f67f88b193b516224025a8c54c8fc5a0204c0f7b4fc0202b70eed0" |
| values.$implementation: | |
| - | "eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1" |
| + | "eth:0xA738573Ec0FD7959BfA60Aaa8a23Fe7BEC6c4Bd7" |
| values.MVM_PROPOSER_REGISTRY_NAME: | |
| + | "MVM_ProposerRegistry" |
| implementationNames.eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1: | |
| - | "MVM_StateCommitmentChain" |
| implementationNames.eth:0xA738573Ec0FD7959BfA60Aaa8a23Fe7BEC6c4Bd7: | |
| + | "MVM_StateCommitmentChain" |
| } | |
| EOA (eth:0xf3CEB4C2ef996CdBc95C4E18c6D0CA988CC09040) { | |
| +++ description: None | |
| receivedPermissions.0: | |
| + | {"permission":"propose","from":"eth:0x5669d0C8C28B7E2c3d10eD246bEb042bDdd12E18","role":".proposer"} |
| } | |
| contract Ether Token (metis-andromeda:0x420000000000000000000000000000000000000A) { | |
| +++ description: None | |
| values.totalSupply: | |
| - | "4804391152042712516897" |
| + | "4803274560845429809151" |
| } | |
| contract MVM_Coinbase (metis-andromeda:0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) { | |
| +++ description: None | |
| values.totalSupply: | |
| - | "6914444516037876739233851" |
| + | "6915210796933756685181355" |
| } | |
| + | Status: CREATED |
| contract MVM_ProposerRegistry (eth:0x5669d0C8C28B7E2c3d10eD246bEb042bDdd12E18) | |
| +++ description: The Proposer Registry contains the addresses of the current active proposers for the chain. | |
| + | Status: CREATED |
| contract MVM_InboxSenderManager (eth:0x8b0d1D3557aF524351FCd09eE8E7a48adcB712e0) | |
| +++ description: Container contract for designated sequencer addresses. | |
| + | Status: CREATED |
| contract OVM_L2ToL1MessagePasser (metis-andromeda:0x4200000000000000000000000000000000000000) | |
| +++ description: None | |
| + | Status: CREATED |
| contract MVM_ChainConfig (metis-andromeda:0x4200000000000000000000000000000000000005) | |
| +++ description: None | |
| + | Status: CREATED |
| contract Ether Token (metis-andromeda:0x420000000000000000000000000000000000000A) | |
| +++ description: None | |
| + | Status: CREATED |
| contract MVM_Coinbase (metis-andromeda:0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) | |
| +++ description: None | |
Ignore gas price value.
Ignore gas price value.
| contract OVM_GasPriceOracle (metis-andromeda:0x420000000000000000000000000000000000000F) { | |
| +++ description: None | |
| values.gasPrice: | |
| - | 3239968571 |
| + | 3102269267 |
| } | |
- StateCommitmentChain implementation change: https://disco.l2beat.com/diff/eth:0x49A4D7ae835eA21c919B363fa88614b61d7985E7/eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1 explicit require makes deletion only possible for batches that are already marked disputed -
StateCommitmentChain implementation change: https://disco.l2beat.com/diff/eth:0x49A4D7ae835eA21c919B363fa88614b61d7985E7/eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1 explicit require makes deletion only possible for batches that are already marked disputed
| contract Lib_AddressManager (eth:0x918778e825747a892b17C66fe7D24C618262867d) { | |
| +++ description: Contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts. | |
| values._1088_MVM_FraudVerifier: | |
| - | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| + | "eth:0xAd07701EE9348d2B9e7De061883C10574c543279" |
| values.1088_MVM_FraudVerifier: | |
| - | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| + | "eth:0xAd07701EE9348d2B9e7De061883C10574c543279" |
| } | |
| contract StateCommitmentChain (eth:0xA2FaAAC9120c1Ff75814F0c6DdB119496a12eEA6) { | |
| +++ description: The State Commitment Chain (SCC) stores a list of proposed state roots in a linked ChainStorageContainer contract. Only a permissioned state root proposer (MVM_Proposer) can submit new state roots. | |
| sourceHashes.1: | |
| - | "0xc9988c7d5840913f9a08b776cd81c6474c41bcb476822f537b3763d33f8e30e3" |
| + | "0x0e8553402b55057406811a803b14c4778f42fcf02523b10e695ec073a98202a9" |
| values.$implementation: | |
| - | "eth:0x49A4D7ae835eA21c919B363fa88614b61d7985E7" |
| + | "eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1" |
| implementationNames.eth:0x49A4D7ae835eA21c919B363fa88614b61d7985E7: | |
| - | "MVM_StateCommitmentChain" |
| implementationNames.eth:0x9334EE2D4CEAe693D4D6aAc8371043bcCEECDCe1: | |
| + | "MVM_StateCommitmentChain" |
| } | |
| contract Metis Security Council (eth:0xbf1752DE62d825aF0634F514226F881a449874b6) { | |
| +++ description: None | |
| receivedPermissions.0: | |
| - | {"permission":"stateDeleterMetis","from":"eth:0x918778e825747a892b17C66fe7D24C618262867d","description":"Can delete batches from the StateCommitmentChain.","role":".1088_MVM_FraudVerifier"} |
| } | |
| contract OVM_GasPriceOracle (metis-andromeda:0x420000000000000000000000000000000000000F) { | |
| +++ description: None | |
| values.gasPrice: | |
| - | 3148134044 |
| + | 3239968571 |
| } | |
| + | Status: CREATED |
| contract Metis Security Council Minority (eth:0xAd07701EE9348d2B9e7De061883C10574c543279) | |
| +++ description: None | |
| + | Status: CREATED |
| contract OVM_DeployerWhitelist (metis-andromeda:0x4200000000000000000000000000000000000002) | |
| +++ description: None | |
| + | Status: CREATED |
| contract L2CrossDomainMessenger (metis-andromeda:0x4200000000000000000000000000000000000007) | |
| +++ description: 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. | |
| + | Status: CREATED |
| contract OVM_GasPriceOracle (metis-andromeda:0x420000000000000000000000000000000000000F) | |
| +++ description: None | |
| + | Status: CREATED |
| contract L2StandardBridge (metis-andromeda:0x4200000000000000000000000000000000000010) | |
| +++ description: The L2StandardBridge contract is the main entry point to deposit or withdraw ERC20 tokens from L2 to L1. This contract can store any token. | |
| + | Status: CREATED |
| contract OVM_SequencerFeeVault (metis-andromeda:0x4200000000000000000000000000000000000011) | |
| +++ description: None | |
| + | Status: CREATED |
| contract L2StandardTokenFactory (metis-andromeda:0x4200000000000000000000000000000000000012) | |
| +++ description: None | |
Most admins and owners moved to new Multisig ('Metis Multisig 2'). Metis has not published signers of this new 6/8 but they plan to make it a Security Council. Compare disco for the ~5 critical roles still held by the old multisig ('Metis Multisig'). - MVM CanonicalTransaction admin - DisputeGameFactory gamecreator - MVM L2ChainManagerOnL1 admin - Lib AddressManager manager - MVM Verifier admin security council reference: https://docs.metis.io/andromeda/network/council
Most admins and owners moved to new Multisig (‘Metis Multisig 2’). Metis has not published signers of this new 6/8 but they plan to make it a Security Council.
Compare disco for the ~5 critical roles still held by the old multisig (‘Metis Multisig’).
security council reference: https://docs.metis.io/andromeda/network/council
| contract L1CrossDomainMessenger (0x081D1101855bD523bA69A9794e0217F0DB6323ff) { | |
| +++ description: The L1 Cross Domain Messenger (L1xDM) contract sends messages from L1 to Metis, and relays messages from Metis onto L1. In the event that a message sent from L1 to Metis is rejected for exceeding the Metis epoch gas limit, it can be resubmitted via this contract's replay function. | |
| values.$admin: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract LockingInfo (0x0fe382b74C3894B65c10E5C12ae60Bbd8FAf5b48) { | |
| +++ description: Contract acting as an escrow for METIS tokens managed by LockingPool. | |
| values.owner: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract DisputeGameFactory (0x1C2f0A08762f0aD4598fB5de8f9D6626a4e4aeE3) { | |
| +++ description: Factory contract for creating dispute games. Unlike in standard OP Stack chains, games are not created to propose state roots. Instead, games are created on demand by the permissioned `GameCreator` only should a dispute arise. | |
| values.accessControl.DEFAULT_ADMIN_ROLE.members.0: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract FaultProofLockingPool (0x2CA48fF3bBC59Bff859543E63233116ecdA3DCBb) { | |
| +++ description: The FaultProofLockingPool is a contract that allows sequencers to lock their funds for a certain period of time. The contract is used in the Metis protocol to ensure that sequencers have enough funds to cover the potential losses from disputes. It currently has a balance of 0 METIS. | |
| values.owner: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract L1StandardBridge (0x3980c9ed79d2c191A89E02Fa3529C60eD6e9c04b) { | |
| +++ description: Main entry point for users depositing ERC20 tokens and ETH that do not require custom gateway. | |
| values.$admin: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract Metis Multisig (0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21) { | |
| +++ description: Can pause, censor, instantly upgrade the bridge and upgrade other critical contracts in the system. | |
| receivedPermissions.1: | |
| - | {"permission":"stateDeleterMetis","from":"eth:0x918778e825747a892b17C66fe7D24C618262867d","description":"Can delete batches from the StateCommitmentChain.","role":".1088_MVM_FraudVerifier"} |
| receivedPermissions.2: | |
| - | {"permission":"upgrade","from":"eth:0x081D1101855bD523bA69A9794e0217F0DB6323ff","role":"admin"} |
| receivedPermissions.3: | |
| - | {"permission":"upgrade","from":"eth:0x0fe382b74C3894B65c10E5C12ae60Bbd8FAf5b48","role":"admin","via":[{"address":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8"}]} |
| receivedPermissions.4: | |
| - | {"permission":"upgrade","from":"eth:0x1C2f0A08762f0aD4598fB5de8f9D6626a4e4aeE3","role":"admin","via":[{"address":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8"}]} |
| receivedPermissions.5: | |
| - | {"permission":"upgrade","from":"eth:0x2CA48fF3bBC59Bff859543E63233116ecdA3DCBb","role":"admin","via":[{"address":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8"}]} |
| receivedPermissions.6: | |
| - | {"permission":"upgrade","from":"eth:0x3980c9ed79d2c191A89E02Fa3529C60eD6e9c04b","role":"admin"} |
| receivedPermissions.8: | |
| - | {"permission":"upgrade","from":"eth:0xA2FaAAC9120c1Ff75814F0c6DdB119496a12eEA6","role":"admin"} |
| receivedPermissions.9: | |
| - | {"permission":"upgrade","from":"eth:0xD54c868362C2098E0E46F12E7D924C6A332952Dd","role":"admin","via":[{"address":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8"}]} |
| receivedPermissions.12: | |
| - | {"permission":"upgrade","from":"eth:0xfA947f70c3509d5b70A606e871aE0C85397D0738","role":"admin","via":[{"address":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8"}]} |
| directlyReceivedPermissions: | |
| - | [{"permission":"act","from":"eth:0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8","role":".owner"}] |
| } | |
| contract ProxyAdmin (0x8FbB8D00f7621B68F219B0B18738F07aF513D5C8) { | |
| +++ description: None | |
| values.owner: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract Lib_AddressManager (0x918778e825747a892b17C66fe7D24C618262867d) { | |
| +++ description: Contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts. | |
| values._1088_MVM_FraudVerifier: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| values.1088_MVM_FraudVerifier: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| values.owner: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract StateCommitmentChain (0xA2FaAAC9120c1Ff75814F0c6DdB119496a12eEA6) { | |
| +++ description: The State Commitment Chain (SCC) stores a list of proposed state roots in a linked ChainStorageContainer contract. Only a permissioned state root proposer (MVM_Proposer) can submit new state roots. | |
| values.$admin: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| contract LockingPool (0xD54c868362C2098E0E46F12E7D924C6A332952Dd) { | |
| +++ description: Contract allowing users to lock tokens to apply to become a sequencer, receive rewards, unlock tokens to exit the sequencer, reward distribution. | |
| values.owner: | |
| - | "eth:0x48fE1f85ff8Ad9D088863A42Af54d06a1328cF21" |
| + | "eth:0xbf1752DE62d825aF0634F514226F881a449874b6" |
| } | |
| + | Status: CREATED |
| contract Metis Security Council (0xbf1752DE62d825aF0634F514226F881a449874b6) | |
| +++ description: None | |
New dispute game, no diff: https://disco.l2beat.com/diff/eth:0xD362F83945118dC953924Da1E30D7029b9Cf113d/eth:0x388DEfE576077257074F77c727aA5F2e3B815E21 the state that we can see also did not change. all other changes are config related (i checked manually).
New dispute game, no diff: https://disco.l2beat.com/diff/eth:0xD362F83945118dC953924Da1E30D7029b9Cf113d/eth:0x388DEfE576077257074F77c727aA5F2e3B815E21
the state that we can see also did not change.
all other changes are config related (i checked manually).
| contract L1CrossDomainMessenger (0x081D1101855bD523bA69A9794e0217F0DB6323ff) { | |
| +++ description: The L1 Cross Domain Messenger (L1xDM) contract sends messages from L1 to Metis, and relays messages from Metis onto L1. In the event that a message sent from L1 to Metis is rejected for exceeding the Metis epoch gas limit, it can be resubmitted via this contract's replay function. | |
| values.$pastUpgrades.1: | |
| + | ["2025-07-23T04:50:23.000Z","0xcbea695d784f8a5c4a51baebf910f7c3f449b48d690b52c937ec1dc1d5458e2b",["eth:0xc1Ce5240B42AB158027095f658d530F9989b414F"]] |
| values.$upgradeCount: | |
| - | 1 |
| + | 2 |
| } | |
| contract DisputeGameFactory (0x1C2f0A08762f0aD4598fB5de8f9D6626a4e4aeE3) { | |
| +++ description: Factory contract for creating dispute games. Unlike in standard OP Stack chains, games are not created to propose state roots. Instead, games are created on demand by the permissioned `GameCreator` only should a dispute arise. | |
| values.$pastUpgrades.2: | |
| + | ["2025-07-23T04:50:23.000Z","0xcbea695d784f8a5c4a51baebf910f7c3f449b48d690b52c937ec1dc1d5458e2b",["eth:0x61B220bbfeF9A94163764928B039d85e94A509d9"]] |
| values.$upgradeCount: | |
| - | 2 |
| + | 3 |
| values.accessControl.GAME_CREATOR_ROLE.members.1: | |
| + | "eth:0xAaaAA9A2e72753cE09915fee7c0AFa6f34745799" |
| values.gameCreator.1: | |
| + | "eth:0xAaaAA9A2e72753cE09915fee7c0AFa6f34745799" |
| values.gameImpls.0: | |
| - | "eth:0xD362F83945118dC953924Da1E30D7029b9Cf113d" |
| + | "eth:0x388DEfE576077257074F77c727aA5F2e3B815E21" |
| } | |
| contract FaultProofLockingPool (0x2CA48fF3bBC59Bff859543E63233116ecdA3DCBb) { | |
| +++ description: The FaultProofLockingPool is a contract that allows sequencers to lock their funds for a certain period of time. The contract is used in the Metis protocol to ensure that sequencers have enough funds to cover the potential losses from disputes. It currently has a balance of 0 METIS. | |
| values.$pastUpgrades.2: | |
| + | ["2025-07-23T04:50:23.000Z","0xcbea695d784f8a5c4a51baebf910f7c3f449b48d690b52c937ec1dc1d5458e2b",["eth:0x1061528C33b8034952fb7355cC481e193b29FCa6"]] |
| values.$upgradeCount: | |
| - | 2 |
| + | 3 |
| } | |
| - | Status: DELETED |
| contract FaultDisputeGame (0xD362F83945118dC953924Da1E30D7029b9Cf113d) | |
| +++ description: Contract for handling fault disputes (should games be created). Successfully disputed batches are marked as disputed to the StateCommitmentChain. | |
| + | Status: CREATED |
| contract FaultDisputeGame (0x388DEfE576077257074F77c727aA5F2e3B815E21) | |
| +++ description: Contract for handling fault disputes (should games be created). Successfully disputed batches are marked as disputed to the StateCommitmentChain. | |
As of April 2024 Metis uses a permissioned sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. pool running a Tendermint consensusAn agreement on the latest and correct state of a blockchain. Unlike L1 blockchains which coordinate participating nodes with consensus rules, rollups rely on L1s for reaching consensus by checking the state of the rollup smart contract deployed thereon.. Once consensus is reached on a blockAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over., an MPC address is used to submit a block hashA fixed-length fingerprint of variable-size input, produced by a hash function. to Ethereum. The infrastructure to manage the MPC is offchain and not trustless because Ethereum does not verify the validity of MPC address.
MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.
There is no general mechanism to force the sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. to include the transaction.
Users can be censored if the operator refuses to include their transactions.
The user initiates L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups.->L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. messages by submitting a regular transaction on this chain. When the blockAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. containing that transaction is settled, the message becomes available for processing on L1. The process of block finalization usually takes several days to complete.
Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL).
Metis uses the Optimistic Virtual Machine (OVM) 2.0 to execute transactions.
Funds can be lost if there are mistakes in the highly complex OVM implementation.

A Multisig with 6/8 threshold.
A Multisig with 4/9 threshold. Can pause, censor, instantly upgrade the bridgeA message-passing protocol between two blockchains. At its most basic, a token bridge consists of a smart contract which can escrow funds on one side of the bridge, and instruct the release or minting of corresponding assets on the other side, but bridges could also support arbitrary messages. How these instructions are validated is a critical factor in assessing the trust assumptions of a bridge. and upgrade other critical contracts in the system.
A Multisig with 2/8 threshold.
A Multisig with 2/4 threshold. Escrows staking rewards for Sequencers.


The L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. Cross Domain Messenger (L1xDM) contract sends messages from L1 to Metis, and relays messages from Metis onto L1. In the event that a message sent from L1 to Metis is rejected for exceeding the Metis epoch gas limitThe maximum amount of gas a transaction or block may consume., it can be resubmitted via this contract’s replay function.
The Canonical Transaction Chain (CTC) contract is an append-only log of transactions which must be applied to the OVM state. Given that transactions batch hashes are sent to an EOA address, it allows any account to enqueue() a transaction, which the SequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. must eventually append to the rollupA blockchain that inherits consensus and data availability from another blockchain called L1. Rollups enable trust minimized bridges with the base layer via proof systems, either optimistic or zero-knowledge. A rollup without a bridge, or without considering the bridge, is called a sovereign rollup. state.
The State Commitment Chain (SCC) stores a list of proposed state rootsA cryptographic hash succinctly representing a state using a Merkle tree. in a linked ChainStorageContainer contract. Only a permissioned state root proposerIn the context of L2s, the actor that proposes a claimed state root on L1. The term is also used in the context of Ethereum to refer to the actor that proposes a new block. (MVM_Proposer) can submit new state roots.
Contract acting as an escrow for METIS tokens managed by LockingPool.
Storage container for SCC batches.
Factory contract for creating dispute games. Unlike in standard OP Stack chains, games are not created to propose state rootsA cryptographic hash succinctly representing a state using a Merkle tree.. Instead, games are created on demand by the permissioned GameCreator only should a dispute arise.
Contract used to manage configuration of global Metis values.
The FaultProofLockingPool is a contract that allows sequencers to lock their funds for a certain period of time. The contract is used in the Metis protocol to ensure that sequencers have enough funds to cover the potential losses from disputes. It currently has a balance of 0 METIS.
Storage container for CTC batches.
Contract for handling fault disputes (should games be created). Successfully disputed batches are marked as disputed to the StateCommitmentChain.
Main entry point for users depositing ERC20 tokens and ETH that do not require custom gateway.
The Bond Manager contract will handle deposits in the form of an ERC20 token from bonded Proposers. It will also handle the accounting of gasA virtual fuel used to execute smart contracts on a rollup. The EVM (or other VM within the rollup) uses an accounting mechanism to correspond the consumption of gas to the consumption of computing resources, and to limit the consumption of computing resources. costs spent by a VerifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. during the course of a challenge. In the event of a successful challenge, the faulty ProposerIn the context of L2s, the actor that proposes a claimed state root on L1. The term is also used in the context of Ethereum to refer to the actor that proposes a new block.’s bond will be slashed, and the Verifier’s gas costs will be refunded. Current mock implementation allows only OVM_Proposer to propose new state rootsA cryptographic hash succinctly representing a state using a Merkle tree.. No slashing is implemented.
Oracle for providing preimages.
Oracle specifying user fees for sending L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. -> Metis messages and other parameters for cross-chain communication.
Container contract for designated sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. addresses.
Contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibilityThe degree to which a rollup can make use of existing patterns, code, and tooling from another blockchain or development environment. Today, this typically refers to how well rollups and developers thereon can make use of the Ethereum Virtual Machine, existing smart contracts, and other Ethereum infrastructure. with several older contracts.
Metis token contract.
Storage container for CTC queue.
Contract allowing users to lock tokens to apply to become a sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs., receive rewards, unlock tokens to exit the sequencer, reward distribution.
Delayed wrapped Metis token contract.
The L2CrossDomainMessenger (L2xDM) contract sends messages from L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. to L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development., 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 limitThe maximum amount of gas a transaction or block may consume., it can be resubmitted via this contract’s replay function.
The L2StandardBridge contract is the main entry point to deposit or withdraw ERC20 tokens from L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. to L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.. This contract can store any token.
The current deployment carries some associated risks:
Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).