Search

Search for projects by name or address

BOB logo
BOB

There are impactful changes and part of the information might be outdated.

Badges

About

BOB (Build on Bitcoin) is an OP Stack rollup that aims to natively support the Bitcoin stack. The current implementation supports a variety of canonical and external bridging for BTC-related assets and a tBTC-v2 LightRelay smart contract for verifying...


  • Total Value SecuredTVS
    $79.94 M9.28%
  • Past day UOPSDaily UOPS
    0.048.07%
  • Stage
  • Gas token
    ETH

  • Type
    Optimistic Rollup
  • Purposes
    Universal, Bitcoin DApps
  • Chain ID
    60808

  • Tokens breakdown

    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    BOB (Build on Bitcoin) is an OP Stack rollup that aims to natively support the Bitcoin stack. The current implementation supports a variety of canonical and external bridging for BTC-related assets and a tBTC-v2 LightRelay smart contract for verifying...


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

    ETH & derivatives
    Stablecoins
    BTC & derivatives
    Other

    2025 May 28 — 2026 May 28

    Past Day UOPS
    0.048.07%
    Past Day Ops count
    3.33 K
    Max. UOPS
    2.19
    2024 Dec 04
    Past day UOPS/TPS Ratio
    <1.01

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


    2025 May 28 — 2026 May 28


    Total cost
    $1.69 K
    Avg cost per L2 UOP
    $0.000522
    Avg cost per day
    $4.62

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


    2025 May 28 — 2026 May 28


    Data posted
    1.01 GiB
    Avg size per day
    2.81 MiB
    Avg size per L2 UOP
    334.30 B

    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
    96% 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 24h 13m (from 2026 May 04, 11:30 UTC until 2026 May 05, 11:43 UTC). These typically occur every 11h 50m 11s on average.

    Kona derivation bug

    2025 Dec 5th

    To fix a bug in the Kona derivation, the proof system is updated and a state root manually resolved.

    Learn more

    Proof System Intervention

    2025 Jul 24th

    A state root proposal is manually resolved after changing the finalization config.

    Learn more
    Sequencer failureState validationData availabilityExit windowProposer failure
    Sequencer failure
    Self sequence

    In the event of a sequencer failure, users can force transactions to be included in the project’s chain by sending them to L1. There can be up to a 12h delay on this operation.

    State validation
    Fraud proofs (1R, ZK)

    Fraud proofs allow actors watching the chain to prove that the state is incorrect. Single round proofs (1R) prove the validity of a state proposal, only requiring a single transaction to resolve. A fault proof eliminates a state proposal by proving that any intermediate state transition in the proposal results in a different state root. For either, a ZK proof is used.

    Data availability
    Onchain

    All of the data needed for proof construction is published on Ethereum L1.

    Exit window
    None

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

    Proposer failure
    Self propose

    The primary whitelisted proposer currently has no optimistic advantage (vanguardAdvantage = 0), so this privilege is disabled (not active). Anyone can leverage the source available zk prover to prove a fault or a conflicting valid proposal to win against the privileged proposer and/or supply a bond and make a counter proposal immediately.

    BOB
    BOB is a
    Stage 0
    Optimistic Rollup.

    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

    All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.

    1. Derivation: Batch submission - OP Mainnet specs
    2. BatchInbox - address
    3. OptimismPortal2.sol - source code, depositTransaction function
    Learn more about the DA layer here: Ethereum logoEthereum
    Node software

    The rollup node is composed of two software components: op-node, implementing consensus related logic, and op-geth, implementing execution logic. The configuration file can be found here.

    Compression scheme

    Data batches are compressed using the zlib algorithm with best compression level.

    Genesis state

    The genesis file can be found here.

    Data format

    The format specification of Sequencer’s data batches can be found here.

    A diagram of the state validation
    A diagram of the state validation
    State root proposals

    Proposers submit state roots as children of any (possibly unresolved) previous state root proposal, by calling the propose() function in the KailuaTreasury. A parent state root can have multiple conflicting children, composing a tournament. Each proposer requires to lock a bond, currently set to 0.5 ETH, that can be slashed if any proposal made by them is proven incorrect via a fault proof or a conflicting validity proof. The bond can be withdrawn once the proposer has no more pending proposals that need to be resolved and was not eliminated.

    Proposals consist of a state root and a reference to their parent and implicitly challenge any sibling proposals who have the same parent. A proposal asserts that the proposed state root constitutes a valid state transition from the parent’s state root. To offer efficient zk fault proofs, each proposal must include 3600 intermediate state commitments, each spanning 6 L2 blocks.

    Proposals target sequential tournament epochs of currently 3600 * 6 L2 blocks. A tournament with a resolved parent tournament, a single child- and no conflicting sibling proposals can be resolved after 3d.

    The Vanguard is configured with vanguardAdvantage = 0, so this advantage is currently disabled (not active) and child proposals are permissionless immediately.

    1. Sequencing - Kailua Docs
    2. Vanguard - Kailua Docs
    Challenges

    Any conflicting sibling proposals within a tournament that are made within the 3d challenge period of a proposal they are challenging, delay resolving the tournament until sufficient ZK proofs are published to leave one single tournament survivor.

    In the tree of proposed state roots, each parent node can have multiple children. These children are indirectly challenging each other in a tournament, which can only be resolved if but a single child survives. A state root can be resolved if it is the only remaining proposal due to any combination of the following elimination methods:

    1. the proposal’s challenge period of 3d has ended before a conflicting proposal was made
    2. the proposal is proven correct with a full validity proof (invalidates all conflicting proposals)
    3. a conflicting sibling proposal is proven faulty

    Proving any of the 3600 intermediate state commitments in a proposal faulty invalidates the entire proposal. Proving a proposal valid invalidates all conflicting siblings. Pruning of a tournament’s children happens strictly chronologically, which guarantees that the first faulty proposal of a given proposer is always pruned first. When pruned, an invalid proposal leads to the elimination of its proposer, which invalidates all their subsequent proposals, slashes their bond, and disallows future proposals by the same address. A slashed bond is transferred to an address chosen by the prover who caused the slashing.

    A single remaining child in a tournament can be ‘resolved’ and will be finalized and usable for withdrawals after an execution delay of 1d (time for the Guardian to manually blacklist malicious state roots).

    1. How to run a challenger - Boundless Docs
    2. Disputes - Kailua Book
    Validity proofs

    Validity proofs and fault proofs both must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.

    The Kailua state validation system is primarily optimistically resolved, so no validity proofs are required in the happy case. But two different zk proofs on unresolved state roots are possible and permissionless: The proveValidity() function proves a state root proposal’s full validity, automatically invalidating all conflicting sibling proposals. proveOutputFault() allows any actor to eliminate a state root proposal for which they can prove that any of the 3600 intermediate state transitions in the proposal are not correct. Both are zk proofs of validity, although one is used as an efficient fault proof to invalidate a single conflicting state transition.

    • Funds can be stolen if the validity proof cryptography is broken or implemented incorrectly.

    • Funds can be stolen if no challenger checks the published state.

    • Funds can be stolen if the proposer routes proof verification through a malicious or faulty verifier by specifying an unsafe route selector.

    • Funds can be frozen if a verifier needed for a given proof is paused by its permissioned owner.

    1. Kailua Proof System - Boundless Docs
    2. Verifier upgrade and deprecation - Kailua Docs
    PROVER

    Trusted Setups

    Used in

    MegaETH logoBOB logoTaiko Alethia logo

    Used in

    MegaETH logoBOB logoTaiko Alethia logo

    Program Hashes

    Name
    Hash
    Repository
    Verification
    Used in
    0x4aca...7b25
    Code unknown
    None
    BOB logo
    0x7090...2cc9
    BOB logo

    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
    47
    Last upgrade
    2mo 18d ago
    Avg upgrade interval
    2mo 24d
    2026 March 12, 13:06 UTC
    High severity
    20changes

    OptimismPortal2 and AnchorStateRegistry upgraded (same tx). proofMaturityDelaySeconds reduced from 604800 (7 days) to 86400 (1 day), disputeGameFinalityDelaySeconds from 302400 (3.5 days) to 86400 (1 day). Actual withdrawal time still depends on Kailua game resolution / proof timing. Templates still match — no new functionality, just constructor parameter changes baked into the new implementations. OptimismPortal2 diff: https://disco.l2beat.com/diff/eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202/eth:0x3C877699263119022Cdaa251058c1BAc8Fc43287 AnchorStateRegistry diff: https://disco.l2beat.com/diff/eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E/eth:0xd0216bdcC195abDF77746B6a6347CE85e2535431

    contract OptimismPortal2 (eth:0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E) {
    +++ description: The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.
    values.$implementation:
    - "eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
    + "eth:0x3C877699263119022Cdaa251058c1BAc8Fc43287"
    values.$pastUpgrades.10:
    + ["2026-03-12T10:39:35.000Z","0x0c0e889a96e766d168753f3e596af7d57a9c07f7d84fb0ba05e3d46adf61ddd8",["eth:0x3C877699263119022Cdaa251058c1BAc8Fc43287"]]
    values.$upgradeCount:
    - 10
    + 11
    values.disputeGameFinalityDelaySeconds:
    - 302400
    + 86400
    values.proofMaturityDelaySeconds:
    - 604800
    + 86400
    implementationNames.eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202:
    - "OptimismPortal2"
    implementationNames.eth:0x3C877699263119022Cdaa251058c1BAc8Fc43287:
    + "OptimismPortal2"
    }
    contract AnchorStateRegistry (eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c) {
    +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.
    values.$implementation:
    - "eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
    + "eth:0xd0216bdcC195abDF77746B6a6347CE85e2535431"
    values.$pastUpgrades.1:
    + ["2026-03-12T10:39:35.000Z","0x0c0e889a96e766d168753f3e596af7d57a9c07f7d84fb0ba05e3d46adf61ddd8",["eth:0xd0216bdcC195abDF77746B6a6347CE85e2535431"]]
    values.$upgradeCount:
    - 1
    + 2
    values.disputeGameFinalityDelaySeconds:
    - 302400
    + 86400
    implementationNames.eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E:
    - "AnchorStateRegistry"
    implementationNames.eth:0xd0216bdcC195abDF77746B6a6347CE85e2535431:
    + "AnchorStateRegistry"
    }
    2026 March 06, 10:03 UTC
    High severity
    6changes

    New KailuaGame and KailuaTreasury instances deployed with the same implementation code (identical source hashes). The ROLLUP CONFIG HASH changed (0x4910...→0x69d9...) in preparation for BOB's Jovian hardfork activation on March 12, 2026 (mainnet timestamp 1773325801). The Kailua config hash includes hardfork timestamps, so adding jovian time changes the hash. Ref: https://github.com/bob-collective/bob/pull/960. The KailuaTreasury L2 BLOCK NUMBER also advanced (29576476→29835945). KailuaGame diff: https://disco.l2beat.com/diff/eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a/eth:0x4BE239c86364eD73fc244A5F50c8ccB101a492eF KailuaTreasury diff: https://disco.l2beat.com/diff/eth:0xE99AF5F4C60E06Beb3827F4ffdD06E88c55fB895/eth:0x9B3E1661bccAF907893B71e4016c01513ae9263C

    contract DisputeGameFactory (eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079) {
    +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.
    +++ severity: HIGH
    values.game1337:
    - "eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a"
    + "eth:0x4BE239c86364eD73fc244A5F50c8ccB101a492eF"
    }
    - Status: DELETED
    contract KailuaGame (eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    - Status: DELETED
    contract KailuaTreasury (eth:0xE99AF5F4C60E06Beb3827F4ffdD06E88c55fB895)
    +++ description: Entrypoint for state root proposals. Manages bonds (currently 0.5 ETH) and tournaments for the OP Kailua state validation system, wrapping the OP stack native DisputeGameFactory. The current vanguard advantage is defined here as 0s.
    + Status: CREATED
    contract KailuaGame (eth:0x4BE239c86364eD73fc244A5F50c8ccB101a492eF)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    + Status: CREATED
    contract KailuaTreasury (eth:0x9B3E1661bccAF907893B71e4016c01513ae9263C)
    +++ description: Entrypoint for state root proposals. Manages bonds (currently 0.5 ETH) and tournaments for the OP Kailua state validation system, wrapping the OP stack native DisputeGameFactory. The current vanguard advantage is defined here as 0s.
    2026 February 26, 22:02 UTC
    High severity
    7changes

    BOB's Kailua dispute system was updated with new KailuaGame and KailuaTreasury contract instances. The DisputeGameFactory's game1337 implementation changed from 0xe4341585 to 0xe34577E7. The new KailuaTreasury (0xE99AF5F4) retains the 0.5 ETH participation bond but has no vanguard advantage set (previously 1 month). The source code change is the addition of an OP-Contracts v5 compatibility shim: an anchorStateRegistry() function that returns msg.sender , allowing withdrawals under op-contracts v5.0.0. The FPVM image ID also updated (0xf176eb82 → 0x4aca4abd), indicating a new ZK verification image for the RISC Zero prover. KailuaGame diff: https://disco.l2beat.com/diff/eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b/eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a KailuaTreasury diff: https://disco.l2beat.com/diff/eth:0x6F27A23Fc28C18EB2C268BFe1d575E051Ad94420/eth:0xE99AF5F4C60E06Beb3827F4ffdD06E88c55fB895

    - Status: DELETED
    contract KailuaTreasury (eth:0x6F27A23Fc28C18EB2C268BFe1d575E051Ad94420)
    +++ description: Entrypoint for state root proposals. Manages bonds (currently 0.5 ETH) and tournaments for the OP Kailua state validation system, wrapping the OP stack native DisputeGameFactory. The current vanguard advantage is defined here as 1mo.
    EOA (eth:0x7cB1022D30b9860C36b243E7B181A1d46f618C69) {
    +++ description: None
    receivedPermissions:
    - [{"permission":"interact","from":"eth:0x6F27A23Fc28C18EB2C268BFe1d575E051Ad94420","description":"propose new state roots before anyone else, giving a first-mover advantage on the optimistic clock.","role":".vanguard"}]
    }
    contract DisputeGameFactory (eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079) {
    +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.
    +++ severity: HIGH
    values.game1337:
    - "eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b"
    + "eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a"
    }
    - Status: DELETED
    contract KailuaGame (eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    + Status: CREATED
    contract KailuaGame (eth:0xe34577E7d8bbdf044de236B15DF132B1409ca82a)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    + Status: CREATED
    contract KailuaTreasury (eth:0xE99AF5F4C60E06Beb3827F4ffdD06E88c55fB895)
    +++ description: Entrypoint for state root proposals. Manages bonds (currently 0.5 ETH) and tournaments for the OP Kailua state validation system, wrapping the OP stack native DisputeGameFactory. The current vanguard advantage is defined here as 0s.
    2026 January 27, 16:44 UTC
    High severity
    4changes

    New KailuaGame implementation (type 1337) deployed with OP-Contracts v5 compatibility patch. The new implementation adds a mock anchorStateRegistry() function that returns msg.sender as a workaround - OP-Contracts v5 expects dispute games to have this function for withdrawal finalization. Diff: https://disco.l2beat.com/diff/eth:0x1E987CF54A39CA2AC5FdC97DCaFbbB805ef356bD/eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b

    - Status: DELETED
    contract KailuaGame (eth:0x1E987CF54A39CA2AC5FdC97DCaFbbB805ef356bD)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    contract DisputeGameFactory (eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079) {
    +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.
    +++ severity: HIGH
    values.game1337:
    - "eth:0x1E987CF54A39CA2AC5FdC97DCaFbbB805ef356bD"
    + "eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b"
    }
    + Status: CREATED
    contract KailuaGame (eth:0xe4341585B9BbC55A44C20A3C037058891e7A053b)
    +++ description: Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.
    2026 January 21, 10:01 UTC
    High severity
    165changes

    Upgraded to op-contracts v1.8.0-rc.4 (isthmus). Major version upgrades: OptimismPortal2 3.14.0 → 5.1.1, SystemConfig 2.5.0 → 3.11.0, L1CrossDomainMessenger 2.6.0 → 2.11.0, L1StandardBridge 2.3.0 → 2.8.0, L1ERC721Bridge 2.4.0 → 2.9.0, DisputeGameFactory 1.0.1 → 1.3.0. New dispute game infrastructure deployed with MIPS64, PermissionedDisputeGame, DelayedWETH, and AnchorStateRegistry at new addresses. SystemConfig maximumGasLimit increased from 200M to 500M. Notable changes specific to Bob: disputeGameFinalityDelaySeconds increased from 1 day to 3.5 days, proofMaturityDelaySeconds increased from 1 day to 7 days. SuperchainConfig upgraded to v2.4.0 with pause expiry feature (3mo 1d).

    contract ProxyAdmin (eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0) {
    +++ description: None
    directlyReceivedPermissions.1.from:
    - "eth:0x3a1D54496cf461fFc96d3b1a8A0B43B091ea3c13"
    + "eth:0x1A08BA77CB95184Ea0C31e56f199Db068eb6B35d"
    directlyReceivedPermissions.8:
    + {"permission":"upgrade","from":"eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c","role":"admin"}
    directlyReceivedPermissions.9:
    - {"permission":"upgrade","from":"eth:0xeBA14d52F1b19cA65455E5ECaB72D2FfD9e43fEF","role":"admin"}
    }
    - Status: DELETED
    contract DelayedWETH (eth:0x3a1D54496cf461fFc96d3b1a8A0B43B091ea3c13)
    +++ description: Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.
    contract L1StandardBridge (eth:0x3F6cE1b36e5120BBc59D0cFe8A5aC8b6464ac1f7) {
    +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.
    sourceHashes.1:
    - "0x4e15d99844dc5a4304c2396a66c95ec41218ea311c8e524b118fad7beed0bb53"
    + "0x0114d3af66179d6404d14360203dc6bcf404f23e2db4ee1b5848e923e131bc00"
    values.$implementation:
    - "eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A"
    + "eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A"
    values.version:
    - "2.3.0"
    + "2.8.0"
    values.initVersion:
    + 3
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    values.systemConfig:
    + "eth:0xACB886b75D76d1c8d9248cFdDfA09b70C71c5393"
    implementationNames.eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A:
    - "L1StandardBridge"
    implementationNames.eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A:
    + "L1StandardBridge"
    }
    contract OptimismMintableERC20Factory (eth:0x5557408ab14013ce9Dbb300dE0D87D386BB09cb6) {
    +++ description: A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.
    sourceHashes.1:
    - "0x9650b4bba6299e410f01a369a95a2c57e1c3ca35f0d80c13f4f59fc468f370e5"
    + "0x25bad2bdb7df4347412a48e271dea1489299460192b43b8ca52ed191b4940992"
    values.$implementation:
    - "eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
    + "eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
    values.$pastUpgrades.5:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"]]
    values.$upgradeCount:
    - 5
    + 6
    values.version:
    - "1.10.1"
    + "1.10.2"
    implementationNames.eth:0x5493f4677A186f64805fe7317D6993ba4863988F:
    - "OptimismMintableERC20Factory"
    implementationNames.eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB:
    + "OptimismMintableERC20Factory"
    }
    contract L1ERC721Bridge (eth:0x5fF93263D5181b2A826f8c51d54BC0da2d20D50a) {
    +++ description: Used to bridge ERC-721 tokens from host chain to this chain.
    sourceHashes.1:
    - "0x28669b49da3effd51f0f9424ca9cdd455c5b9327c09a40c65fc06f114a6eb837"
    + "0x75cd470a9d1c1afc343b599b1c14731f55bb36fe8a4e844ddb88a0b791918795"
    values.$implementation:
    - "eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
    + "eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
    values.$pastUpgrades.7:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x7f1d12fB2911EB095278085f721e644C1f675696"]]
    values.$pastUpgrades.8:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"]]
    values.$upgradeCount:
    - 7
    + 9
    values.version:
    - "2.4.0"
    + "2.9.0"
    values.initVersion:
    + 3
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    values.systemConfig:
    + "eth:0xACB886b75D76d1c8d9248cFdDfA09b70C71c5393"
    implementationNames.eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013:
    - "L1ERC721Bridge"
    implementationNames.eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9:
    + "L1ERC721Bridge"
    }
    contract OptimismPortal2 (eth:0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E) {
    +++ description: The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.
    sourceHashes.1:
    - "0xc483ef9e0a5ec2a0450732e743b3784de0cd3876b8fadfce14c0805a0846d26b"
    + "0xec3fef2865ee3bd465fea37851bfc490f143eba36d1e45d220832d39770aa8f2"
    values.$implementation:
    - "eth:0xB250566074B3c0f1B109A531A83f3d9B1a579273"
    + "eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
    values.$pastUpgrades.8:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x381E729FF983FA4BCEd820e7b922d79bF653B999"]]
    values.$pastUpgrades.9:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"]]
    values.$upgradeCount:
    - 8
    + 10
    values.disputeGameFinalityDelaySeconds:
    - 86400
    + 302400
    values.proofMaturityDelaySeconds:
    - 86400
    + 604800
    values.respectedGameTypeUpdatedAt:
    - 1752761915
    + 1768920023
    values.version:
    - "3.14.0"
    + "5.1.1"
    values.anchorStateRegistry:
    + "eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c"
    values.ethLockbox:
    + "eth:0x0000000000000000000000000000000000000000"
    values.initVersion:
    + 3
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    implementationNames.eth:0xB250566074B3c0f1B109A531A83f3d9B1a579273:
    - "OptimismPortal2"
    implementationNames.eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202:
    + "OptimismPortal2"
    }
    contract DisputeGameFactory (eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079) {
    +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.
    sourceHashes.1:
    - "0x85ca17941ef36ac6b28a4f8f89803d0d41ef419c47586dcd3acdb47ee9617285"
    + "0x19f3f7c7ee3977705261bfb86f826d5f97b885796f2246be7cc3e815c3e95dca"
    values.$implementation:
    - "eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
    + "eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
    values.$pastUpgrades.2:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D"]]
    values.$pastUpgrades.3:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"]]
    values.$upgradeCount:
    - 2
    + 4
    +++ severity: HIGH
    values.gameImpls.1:
    - "eth:0xe3BD00F57B44E7aa4A6C212878427c85D638702A"
    + "eth:0x15F80920C8Fec136e2A804E04f26203FF8dAd19A"
    values.version:
    - "1.0.1"
    + "1.3.0"
    values.initVersion:
    + 1
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    implementationNames.eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0:
    - "DisputeGameFactory"
    implementationNames.eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50:
    + "DisputeGameFactory"
    }
    contract SystemConfig (eth:0xACB886b75D76d1c8d9248cFdDfA09b70C71c5393) {
    +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.
    sourceHashes.1:
    - "0x921de6fc906d159fdcef862d2b9559063f5e7b9b7588fa5f33153360ddf296e7"
    + "0x09e12b8c0307a4da75a8b84ed7c88ced81e386ec09025ec5b36873b4f69614d0"
    values.$implementation:
    - "eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
    + "eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
    values.$pastUpgrades.8:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x2bFE4A5Bd5A41e9d848d843ebCDFa15954e9A557"]]
    values.$pastUpgrades.9:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"]]
    values.$upgradeCount:
    - 8
    + 10
    values.DISPUTE_GAME_FACTORY_SLOT:
    - "0x52322a25d9f59ea17656545543306b7aef62bc0cc53a0e65ccfa0c75b97aa906"
    values.getAddresses.disputeGameFactory:
    - "eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079"
    values.maximumGasLimit:
    - 200000000
    + 500000000
    values.version:
    - "2.5.0"
    + "3.11.0"
    values.daFootprintGasScalar:
    + 0
    values.guardian:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    values.initVersion:
    + 3
    values.l2ChainId:
    + 60808
    values.minBaseFee:
    + 0
    values.paused:
    + false
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    values.superchainConfig:
    + "eth:0xE925205ad05D8d612Ac205C4941CCd61Fc965C46"
    implementationNames.eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647:
    - "SystemConfig"
    implementationNames.eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED:
    + "SystemConfig"
    }
    contract Bob Multisig 1 (eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E) {
    +++ description: None
    receivedPermissions.1:
    - {"permission":"interact","from":"eth:0x3a1D54496cf461fFc96d3b1a8A0B43B091ea3c13","description":"can pull funds from the contract in case of emergency.","role":".owner"}
    receivedPermissions.4.from:
    - "eth:0x3a1D54496cf461fFc96d3b1a8A0B43B091ea3c13"
    + "eth:0x1A08BA77CB95184Ea0C31e56f199Db068eb6B35d"
    receivedPermissions.10:
    + {"permission":"upgrade","from":"eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c","role":"admin","via":[{"address":"eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"}]}
    receivedPermissions.13:
    - {"permission":"upgrade","from":"eth:0xeBA14d52F1b19cA65455E5ECaB72D2FfD9e43fEF","role":"admin","via":[{"address":"eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"}]}
    }
    - Status: DELETED
    contract PermissionedDisputeGame (eth:0xe3BD00F57B44E7aa4A6C212878427c85D638702A)
    +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.
    contract L1CrossDomainMessenger (eth:0xE3d981643b806FB8030CDB677D6E60892E547EdA) {
    +++ description: Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.
    sourceHashes.1:
    - "0x03bcdc719cb7bd0a1377c01bb50b30a6122b308f673b7d7b15a3bb8628e6bd8c"
    + "0xfa9c986019a03bd66efb7584a7064e708f6fb71956643a9d4daa2c0972a29c03"
    values.$implementation:
    - "eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B"
    + "eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
    values.$pastUpgrades.8:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0x22D12E0FAebD62d429514A65EBAe32dd316c12D6"]]
    values.$pastUpgrades.9:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"]]
    values.$upgradeCount:
    - 8
    + 10
    values.version:
    - "2.6.0"
    + "2.11.0"
    values.initVersion:
    + 3
    values.proxyAdmin:
    + "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    values.systemConfig:
    + "eth:0xACB886b75D76d1c8d9248cFdDfA09b70C71c5393"
    implementationNames.eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B:
    - "L1CrossDomainMessenger"
    implementationNames.eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0:
    + "L1CrossDomainMessenger"
    }
    contract SuperchainConfig (eth:0xE925205ad05D8d612Ac205C4941CCd61Fc965C46) {
    +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.
    template:
    - "opstack/SuperchainConfigFake"
    + "opstack/SuperchainConfigFake_expiry"
    sourceHashes.1:
    - "0x03dba37173051b02bc81487e181c791bcf1aef664c249e5d035f11f488bdd686"
    + "0x53a6b3db7f270298025bbfef7f6c77b420a9808341212fa9cf54a5e157a18567"
    description:
    - "This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system."
    + "This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched."
    values.$implementation:
    - "eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7"
    + "eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
    values.$pastUpgrades.1:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0xCe28685EB204186b557133766eCA00334EB441E4"]]
    values.$pastUpgrades.2:
    + ["2026-01-20T14:40:23.000Z","0xd025dbac937aa7bd1c53511421d35cc97c18a848ebb123cc85e910ab517a8922",["eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"]]
    values.$upgradeCount:
    - 1
    + 3
    values.GUARDIAN_SLOT:
    - "0xd30e835d3f35624761057ff5b27d558f97bd5be034621e62240e5c0b784abe68"
    values.PAUSED_SLOT:
    - "0x54176ff9944c4784e5857ec4e5ef560a462c483bf534eda43f91bb01a470b1b6"
    values.version:
    - "1.2.0"
    + "2.4.0"
    values.initVersion:
    + 2
    values.pauseExpiry:
    + 7884000
    values.pauseExpiryFmt:
    + "3mo 1d"
    values.proxyAdmin:
    + "eth:0xa70ddfb3e00fCFD083E64B200FE867104f703E1c"
    values.proxyAdminOwner:
    + "eth:0xC91482A96e9c2A104d9298D1980eCCf8C4dc764E"
    implementationNames.eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7:
    - "SuperchainConfig"
    implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957:
    + "SuperchainConfig"
    category.name:
    - "Governance"
    + "Shared Infrastructure"
    category.priority:
    - 3
    + 4
    fieldMeta:
    + {"paused":{"severity":"HIGH"}}
    }
    - Status: DELETED
    contract AnchorStateRegistry (eth:0xeBA14d52F1b19cA65455E5ECaB72D2FfD9e43fEF)
    +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.
    - Status: DELETED
    contract MIPS (eth:0xF027F4A985560fb13324e943edf55ad6F1d15Dc1)
    +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.
    + Status: CREATED
    contract PermissionedDisputeGame (eth:0x15F80920C8Fec136e2A804E04f26203FF8dAd19A)
    +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.
    + Status: CREATED
    contract DelayedWETH (eth:0x1A08BA77CB95184Ea0C31e56f199Db068eb6B35d)
    +++ description: Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.
    + Status: CREATED
    contract MIPS (eth:0x6463dEE3828677F6270d83d45408044fc5eDB908)
    +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.
    + Status: CREATED
    contract AnchorStateRegistry (eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c)
    +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.

    The system has a centralized operator

    The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.

    • MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.

    Users can force any transaction

    Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly.

    1. Sequencing Window - OP Mainnet Specs
    2. OptimismPortal2.sol - source code, depositTransaction function

    Regular exits

    The user initiates the withdrawal by submitting a regular transaction on this chain. When a state root containing such transaction is settled, the funds become available for withdrawal on L1 after 1d. Withdrawal inclusion can be proven before state root settlement, but a 1d period has to pass before it becomes actionable. The process of state root settlement takes a challenge period of at least 3d to complete. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.

    1. OptimismPortal2.sol - Etherscan source code, proveWithdrawalTransaction function
    2. OptimismPortal2.sol - Etherscan source code, finalizeWithdrawalTransaction function

    Forced messaging

    If the user experiences censorship from the operator with regular L2->L1 messaging they can submit their messages directly on L1. The system is then obliged to service this request or halt all messages, including forced withdrawals from L1 and regular messages initiated on L2. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular message.

    1. Forced withdrawal from an OP Stack blockchain

    EVM compatible smart contracts are supported

    OP stack chains are pursuing the EVM Equivalence model. No changes to smart contracts are required regardless of the language they are written in, i.e. anything deployed on L1 can be deployed on L2.

    1. Introducing EVM Equivalence
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Roles:

    SequencerEOA 1

    Allowed to commit transactions from the current layer to the host chain.

    There are impactful changes to the following permissions, and part of the information might be outdated.

    Allowed to pause withdrawals. In op stack systems with a proof system, the Guardian can also blacklist dispute games and set the respected game type (permissioned / permissionless).

    Actors:

    • Can interact with TimelockController
      • cancel queued transactions
      • execute transactions that are ready
      • manage all access control roles with 3d delay
      • propose transactions
    • Can interact with RiscZeroVerifierEmergencyStop
    • Can interact with RiscZeroVerifierEmergencyStop
    • Can interact with RiscZeroVerifierRouter
      • add/remove verifiers and the selectors they are mapped to with 3d delay
    • Can interact with RiscZeroVerifierEmergencyStop
    There are impactful changes to the following permissions, and part of the information might be outdated.
    Bob Multisig 10xC914…764E

    A Multisig with 4/6 threshold.

    • Can upgrade with no delay
      • DelayedWETH
      • L1StandardBridge
      • OptimismMintableERC20Factory
      • L1ERC721Bridge
      • OptimismPortal2
      • DisputeGameFactory
      • SystemConfig
      • AnchorStateRegistry
      • L1CrossDomainMessenger
      • SuperchainConfig
    • Can interact with SystemConfig
      • it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system
    • Can interact with AddressManager
      • set and change address mappings
    • A Guardian - acting directly
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner
    Note: Contracts presented in this section had their implementations updated since the last time our team looked at this project. The information presented may be inaccurate.
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    Ethereum

    The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    The following tokens are included in the value secured calculation:
    ETH token logo
    Can be upgraded by:

    Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
      • batcherHash: EOA 1
      • owner: Bob Multisig 1
    Can be upgraded by:
    Implementation used in:

    This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
      • guardian: Bob Multisig 1
    Can be upgraded by:
    Implementation used in:

    The main entry point to deposit ERC20 tokens from host chain to this chain.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1

    All supported tokens in this escrow are included in the value secured calculation.

    Can be upgraded by:
    Implementation used in:

    Used to bridge ERC-721 tokens from host chain to this chain.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    Implementation used in:

    Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain’s epoch gas limit, it can be resubmitted via this contract’s replay function.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    Implementation used in:

    Escrow for custom external tokens that use the canonical bridge for messaging but are governed externally.

    The following tokens are included in the value secured calculation:
    wstETH token logo
    ProxyAdmin0x0d9f…7Cd0
    • Roles:
      • owner: Bob Multisig 1
    PermissionedDisputeGame0x15F8…d19A

    Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.

    Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    Implementation used in:
    RiscZeroVerifierEmergencyStop0x1efD…D698

    A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.

    • Roles:
      • owner: EOA 2
    PreimageOracle0x1fb8…aDD3

    The PreimageOracle contract is used to load the required data from L1 for a dispute game.

    Implementation used in:
    RiscZeroGroth16Verifier0x2a09…a84D

    Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).

    Implementation used in:
    KailuaGame0x4BE2…92eF

    Implementation of the KailuaGame with type 1337. Based on this implementation, new KailuaGames are created with every new state root proposal.

    RiscZeroSetVerifier0x5005…EB85

    Set verifier contract for RISC Zero proofs (version 0.9.0). It allows verifying a whole set of proofs identified with a Merkle root at once, afterwards each individual proof could be efficiently verified just by checking Merkle inclusion against the verified root.

    A helper contract that generates OptimismMintableERC20 contracts on the network it’s deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain’s representation of a token on the host chain, or vice-versa.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    Implementation used in:

    The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.

    Implementation used in:
    RiscZeroVerifierEmergencyStop0x844D…F782

    A verifier wrapper for the RiscZeroSetVerifier that allows pausing (emergency stop) the verifier by its owner.

    • Roles:
      • owner: EOA 2
    RiscZeroVerifierRouter0x8EaB…D319

    A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (TimelockController).

    • Roles:
      • owner: TimelockController; ultimately EOA 2
    Implementation used in:
    KailuaTreasury0x9B3E…263C

    Entrypoint for state root proposals. Manages bonds (currently 0.5 ETH) and tournaments for the OP Kailua state validation system, wrapping the OP stack native DisputeGameFactory. The current vanguard advantage is defined here as 0s.

    RiscZeroVerifierEmergencyStop0x9F99…e696

    A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.

    • Roles:
      • owner: EOA 2
    Implementation used in:
    ProxyAdmin0xa70d…3E1c
    • Roles:
      • owner: Bob Multisig 1
    RiscZeroGroth16Verifier0xafB3…9df9

    Verifier contract for RISC Zero Groth16 proofs (version 2.2.0).

    Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the KailuaGame.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    There are impactful changes to the following contracts, and part of the information might be outdated.

    The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.

    • Roles:
      • admin: ProxyAdmin; ultimately Bob Multisig 1
    Can be upgraded by:
    Implementation used in:
    TimelockController0x0b14…b711

    A timelock with access control. The current minimum delay is 3d.

    • Roles:
      • canceller: EOA 2
      • defaultAdmin: TimelockController; ultimately EOA 2
      • executor: EOA 2
      • proposer: EOA 2
    Implementation used in:

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

    Program Hashes

    Name
    Hash
    Repository
    Verification
    Used in
    0x4aca...7b25
    Code unknown
    None
    BOB logo
    0x7090...2cc9
    BOB logo