Search

Search for projects by name or address

Metis Andromeda logo
Metis Andromeda

Badges

About

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.


  • Total Value SecuredTVS
    $29.85 M1.28%
  • Past day UOPSDaily UOPS
    0.1310.9%
  • Gas token
    METIS
  • Type
    Other

  • Purpose
    Universal
  • Chain ID
    1088

  • Tokens breakdown

    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    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.

    Why is the project listed in others?

    There are less than 5 external actors that can submit challenges

    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.


    Total
    Canonically BridgedCanonically Bridged ValueCanonical
    Natively MintedNatively Minted TokensNative
    Externally BridgedExternally Bridged ValueExternal

    ETH & derivatives
    Stablecoins
    BTC & derivatives
    Other
    Compare with other projects
    Past Day UOPS
    Past Day Ops count
    Max. UOPS
    Past day UOPS/TPS Ratio
    Compare with other projects

    The section shows the operating costs that L2s pay to Ethereum.



    Total cost
    Avg cost per L2 UOP
    Avg cost per day

    Compare with other projects

    This section shows how much data the project publishes to its data-availability (DA) layer over time. The project currently posts data toEthereumEthereum.



    Data posted
    Avg size per day
    Avg size per L2 UOP

    Compare with other projects

    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.

    No ongoing anomalies detected

    Avg. tx data subs. interval
    Avg. state updates interval
    Past 30 days anomalies
    100% normal uptime

    Last 30 day anomalies

    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.

    Learn more

    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.

    Learn more
    Sequencer failureState validationData availabilityExit windowProposer failure
    Sequencer failure
    No mechanism

    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.

    State validation
    Fraud proofs (INT)

    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.

    Data availability
    Onchain

    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..

    Exit window
    None

    There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.

    Proposer failure
    Security Council minority

    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.

    Metis Andromeda
    Metis Andromeda is not even a
    Stage 0
    project.
    The requirement for available nodeA software client that participates in the network. software is under review

    Learn more about Stages
    Please keep in mind that these stages do not reflect project security, this is an opinionated assessment of project maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal.

    All data required for proofs is published on chain

    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..

    1. Blobs batcher - Metis source code
    Learn more about the DA layer here: Ethereum logoEthereum
    State root proposals

    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.

    1. StateCommitmentChain - Etherscan source code
    Challenges

    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).

    1. DisputeGameFactory - No games are created to propose state roots

    Past upgrades

    The metrics include upgrades on the currently used proxy contracts. Historical proxy contracts and changes of such are not included.

    Count of upgrades
    7
    Last upgrade
    1y 2mo ago
    Avg upgrade interval
    1y
    2025 September 30, 17:07 UTC
    High severity
    16changes

    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.

    New and verified contracts

    + 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
    2025 September 15, 12:24 UTC
    1change

    Ignore gas price value.

    contract OVM_GasPriceOracle (metis-andromeda:0x420000000000000000000000000000000000000F) {
    +++ description: None
    values.gasPrice:
    - 3239968571
    + 3102269267
    }
    2025 September 12, 12:29 UTC
    High severity
    15changes

    - 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

    New and verified contracts

    + 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
    2025 August 14, 07:47 UTC
    22changes

    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

    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
    2025 August 06, 09:34 UTC
    11changes

    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.

    The system has a decentralized sequencer set

    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.

    1. Decentralized Sequencer - Metis documentation

    Users can't force any transaction

    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.

    1. CanonicalTransactionChain - Etherscan source code

    Regular messaging

    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).

    1. Transaction finality - Metis documentation

    EVM compatible smart contracts are supported

    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.

    1. MVM repository - Metis source code
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    Metis Security Council0xbf17…74b6

    A Multisig with 6/8 threshold.

    • Can upgrade with no delay
      • L1CrossDomainMessenger
      • LockingInfo
      • DisputeGameFactory
      • FaultProofLockingPool
      • L1StandardBridge
      • MVM_InboxSenderManager
      • StateCommitmentChain
      • LockingPool
      • DelayedWMetis
    1. Security Council members - Metis Docs
    Metis Multisig0x48fE…cF21

    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.

    • Can interact with DisputeGameFactory
      • Can create new dispute games
    Metis Security Council Minority0xAd07…3279

    A Multisig with 2/8 threshold.

    • Can interact with Lib_AddressManager
      • Can delete batches from the StateCommitmentChain
    RewardEscrowerMultisig0x6247…0947

    A Multisig with 2/4 threshold. Escrows staking rewards for Sequencers.

    • Can interact with DisputeGameFactory
      • Can create new dispute games
    • Can interact with MVM_InboxSenderManager
      • Allowed to commit transactions from the current layer to the host chain
    • Can interact with MVM_ProposerRegistry
      • Allowed to post new state rootsA cryptographic hash succinctly representing a state using a Merkle tree. of the current layer to the host chain
    • Can interact with Lib_AddressManager
      • Allowed to post new state roots of the current layer to the host chain
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    Ethereum

    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.

    • Roles:
      • admin: Metis 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.
    CanonicalTransactionChain0x56a7…e1C9

    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.

    • Roles:
      • admin: Metis 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.

    Contract acting as an escrow for METIS tokens managed by LockingPool.

    • Roles:
      • admin: ProxyAdmin; ultimately Metis 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.
    ChainStorageContainer-SCC-batches0x1073…d6f9

    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.

    • Roles:
      • admin: ProxyAdmin; ultimately Metis 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.
      • gameCreator: EOA 1, Metis Multisig
    MetisConfig0x2aA4…57Ff

    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.

    • Roles:
      • admin: ProxyAdmin; ultimately Metis 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.
    ChainStorageContainer-CTC-batches0x3847…16B7

    Storage container for CTC batches.

    FaultDisputeGame0x388D…5E21

    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.

    • Roles:
      • admin: Metis 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.
    MVM_ProposerRegistry0x5669…2E18

    The 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. Registry contains the addresses of the current active proposers for the chain.

    BondManager0x5958…0528

    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.

    PreimageOracle0x789a…BBbC

    Oracle for providing preimages.

    MVM_DiscountOracle0x7f6B…7063

    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.

    • Roles:
      • admin: Metis 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.
      • blobBatcher: EOA 2
    ProxyAdmin0x8FbB…D5C8
    • Roles:
      • owner: Metis 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.
    Lib_AddressManager0x9187…867d

    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.

    • Roles:
      • 1088_MVM_FraudVerifier: Metis 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
      • _1088_MVM_Proposer: EOA 3
    Metis Token0x9E32…ed8e

    Metis token contract.

    ChainStorageContainer-CTC-queue0xA91E…2E57

    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.

    • Roles:
      • admin: ProxyAdmin; ultimately Metis 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.

    Delayed wrapped Metis token contract.

    • Roles:
      • admin: ProxyAdmin; ultimately Metis 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.

    Metis Andromeda

    OVM_L2ToL1MessagePasser0x4200…0000
    OVM_DeployerWhitelist0x4200…0002
    MVM_ChainConfig0x4200…0005
    L2CrossDomainMessenger0x4200…0007

    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.

    Ether Token0x4200…000A
    OVM_GasPriceOracle0x4200…000F
    L2StandardBridge0x4200…0010

    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.

    OVM_SequencerFeeVault0x4200…0011
    L2StandardTokenFactory0x4200…0012
    MVM_Coinbase0xDead…0000

    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).