{
"missing": {
"nextStage": "Stage 1",
"requirements": [
"Users' withdrawals can be censored by the permissioned operators.",
"Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring.",
"The DA verifier is upgradeable with less than 7d independent exit window."
],
"principle": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
},
"stage": "Stage 0",
"summary": [
{
"stage": "Stage 0",
"requirements": [
{
"satisfied": true,
"description": "The project self-identifies as a Validium or Optimium."
},
{
"satisfied": true,
"description": "State roots are posted to Ethereum L1."
},
{
"satisfied": true,
"description": "A complete and functional proof system (fraud or validity proofs) is deployed."
},
{
"satisfied": true,
"description": "DA is attested by a committee or external DA layer, not solely by the sequencer."
},
{
"satisfied": true,
"description": "A source-available node exists that can reconstruct the L2 state when DA is accessible. Please note that the L2BEAT team has not verified the validity of the node source code. [View code](https://github.com/celo-org/op-geth)"
}
]
},
{
"stage": "Stage 1",
"requirements": [
{
"satisfied": false,
"description": "Users' withdrawals can be censored by the permissioned operators."
},
{
"satisfied": false,
"description": "Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring."
},
{
"satisfied": true,
"description": "The Security Council is properly set up [(List of members)](https://docs.celo.org/home/protocol/security-council)."
},
{
"satisfied": true,
"description": "A secure DA verifier is integrated on L1 that checks DA attestations onchain, enabling challengers to retrieve data and construct proofs."
},
{
"satisfied": false,
"description": "The DA verifier is upgradeable with less than 7d independent exit window."
},
{
"satisfied": true,
"description": "The DA layer meets minimum decentralization: a DAC with ≥5 external members under an honest-minority assumption, or an external DA chain with an attestation verifier."
},
{
"satisfied": true,
"description": "Prover source code is published. [View code](https://github.com/succinctlabs/sp1)",
"upcoming": true
},
{
"satisfied": true,
"description": "Onchain verifiers' smart contracts (including the DA verifier) can be independently regenerated from the verifier source code.",
"upcoming": true
},
{
"satisfied": false,
"description": "Not all program sources are public or not all program hashes can be independently regenerated.",
"satisfied": true,
"description": "The sources of all programs used are public and program hashes can be independently regenerated.",
"upcoming": true
}
],
"principle": {
"satisfied": false,
"description": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
}
},
{
"stage": "Stage 2",
"requirements": [
{
"satisfied": false,
"description": "Upgrades unrelated to onchain provable bugs, including upgrades to the DA verifier, provide less than 30d to exit."
},
{
"satisfied": false,
"description": "The Security Council's actions are not confined to onchain provable bugs."
},
{
"satisfied": false,
"description": "The DA verifier (and related contracts) is upgradeable with less than 30d independent exit window."
},
{
"satisfied": false,
"description": "The DA mechanism relies on reputational security alone; no staked assets are at risk for DA misbehavior or slashable < TVS."
}
]
}
]
}
permissions+25-25
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "CeloProxyAdminOwner",
"name": "CeloProxyAdminOwner",
"description": "A Multisig with 2/2 threshold. \n* Can upgrade **with no delay**\n * Celo native asset Token [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n * CeloSuperchainConfig [via: ProxyAdmin]\n * L1ERC721Bridge [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * AnchorStateRegistry [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * L1StandardBridge [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x4092A77bAF58fef0309452cEaCb09221e556E112",
"type": "Contract",
"isVerified": true,
"name": "0x4092…E112",
"url": "https://etherscan.io/address/0x4092A77bAF58fef0309452cEaCb09221e556E112"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xC03172263409584f7860C25B6eB4985f0f6F4636",
"type": "Contract",
"isVerified": true,
"name": "Celo Security Council",
"url": "#Celo Security Council"
},
{
"address": "eth:0x9Eb44Da23433b5cAA1c87e35594D15FcEb08D34d",
"type": "Contract",
"isVerified": true,
"name": "Celo cLabs Multisig",
"url": "#Celo cLabs Multisig"
}
],
"discoveryDrivenData": true
},
{
"id": "Celo cLabs Multisig",
"name": "Celo cLabs Multisig",
"description": "A Multisig with 6/8 threshold. \nMember of CeloProxyAdminOwner.\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system ",
"accounts": [
{
"address": "eth:0x9Eb44Da23433b5cAA1c87e35594D15FcEb08D34d",
"type": "Contract",
"isVerified": true,
"name": "0x9Eb4…D34d",
"url": "https://etherscan.io/address/0x9Eb44Da23433b5cAA1c87e35594D15FcEb08D34d"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0Bd06B2b192BD9eC316f2880A0c296D9Bc3225e0",
"type": "EOA",
"isVerified": true,
"name": "0x0Bd0…25e0",
"url": "https://etherscan.io/address/0x0Bd06B2b192BD9eC316f2880A0c296D9Bc3225e0"
},
{
"address": "eth:0x21e595451bDD69a85cf946f37f5A6A356C3F875D",
"type": "EOA",
"isVerified": true,
"name": "0x21e5…875D",
"url": "https://etherscan.io/address/0x21e595451bDD69a85cf946f37f5A6A356C3F875D"
},
{
"address": "eth:0x09c0B069100F5d880a596605b94Cc9493D96e797",
"type": "EOA",
"isVerified": true,
"name": "0x09c0…e797",
"url": "https://etherscan.io/address/0x09c0B069100F5d880a596605b94Cc9493D96e797"
},
{
"address": "eth:0x812f7C111476D45998e6D0C615B41c180C362263",
"type": "EOA",
"isVerified": true,
"name": "0x812f…2263",
"url": "https://etherscan.io/address/0x812f7C111476D45998e6D0C615B41c180C362263"
},
{
"address": "eth:0x74bc9E59B52117Ccf5Ee457cFb0CBE83b339A065",
"type": "EOA",
"isVerified": true,
"name": "0x74bc…A065",
"url": "https://etherscan.io/address/0x74bc9E59B52117Ccf5Ee457cFb0CBE83b339A065"
},
{
"address": "eth:0x4D89adf3a4a71b25FB1a6D702Cf059CF5BebD02d",
"type": "EOA",
"isVerified": true,
"name": "0x4D89…D02d",
"url": "https://etherscan.io/address/0x4D89adf3a4a71b25FB1a6D702Cf059CF5BebD02d"
},
{
"address": "eth:0x8b4b85f78F799F8364198FFEd2266d3cb3EA0daE",
"type": "EOA",
"isVerified": true,
"name": "0x8b4b…0daE",
"url": "https://etherscan.io/address/0x8b4b85f78F799F8364198FFEd2266d3cb3EA0daE"
},
{
"address": "eth:0xE0024dCadff414fCb0AAfBB475e92Ccc367E1A84",
"type": "EOA",
"isVerified": true,
"name": "0xE002…1A84",
"url": "https://etherscan.io/address/0xE0024dCadff414fCb0AAfBB475e92Ccc367E1A84"
}
],
"discoveryDrivenData": true
},
{
"id": "OpFoundationUpgradeSafe",
"name": "OpFoundationUpgradeSafe",
"description": "A Multisig with 5/7 threshold. It uses the following modules: SaferSafes (A Gnosis Safe module combining LivenessModule and TimelockGuard. Provides liveness checks where a fallback owner can challenge and take over if Safe owners are unresponsive, plus optional timelock delays for transaction scheduling).\nMember of SuperchainProxyAdminOwner.\n* Can interact with SuperchainConfig\n * 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) [via: LivenessModule if the number of Optimism Security Council members falls below 8 → Optimism Security Council → Optimism Guardian Multisig]",
"accounts": [
{
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"type": "Contract",
"isVerified": true,
"name": "0x847B…9D92",
"url": "https://etherscan.io/address/0x847B5c174615B1B7fDF770882256e2D3E95b9D92"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x6419F81580343DF023E68715C6e269aFb00a2cc7",
"type": "EOA",
"isVerified": true,
"name": "0x6419…2cc7",
"url": "https://etherscan.io/address/0x6419F81580343DF023E68715C6e269aFb00a2cc7"
},
{
"address": "eth:0x3041BA32f451F5850c147805F5521AC206421623",
"type": "EOA",
"isVerified": true,
"name": "0x3041…1623",
"url": "https://etherscan.io/address/0x3041BA32f451F5850c147805F5521AC206421623"
},
{
"address": "eth:0xC2Db495f5a1F91172A361AAFA6FdE47c41de6dF5",
"type": "EOA",
"isVerified": true,
"name": "0xC2Db…6dF5",
"url": "https://etherscan.io/address/0xC2Db495f5a1F91172A361AAFA6FdE47c41de6dF5"
},
{
"address": "eth:0xBF93D4d727F7Ba1F753E1124C3e532dCb04Ea2c8",
"type": "EOA",
"isVerified": true,
"name": "0xBF93…a2c8",
"url": "https://etherscan.io/address/0xBF93D4d727F7Ba1F753E1124C3e532dCb04Ea2c8"
},
{
"address": "eth:0x4D014f3c5F33Aa9Cd1Dc29ce29618d07Ae666d15",
"type": "EOA",
"isVerified": true,
"name": "0x4D01…6d15",
"url": "https://etherscan.io/address/0x4D014f3c5F33Aa9Cd1Dc29ce29618d07Ae666d15"
},
{
"address": "eth:0x69acfE2096Dfb8d5A041eF37693553c48d9BFd02",
"type": "EOA",
"isVerified": true,
"name": "0x69ac…Fd02",
"url": "https://etherscan.io/address/0x69acfE2096Dfb8d5A041eF37693553c48d9BFd02"
},
{
"address": "eth:0xc222ab08333109243B1f4E2a80e3D0A190714AB5",
"address": "eth:0xa2A58E31C03C59e34ab4d996d811DA0C035BfDea",
"type": "EOA",
"isVerified": true,
"name": "0xc222…4AB5",
"url": "https://etherscan.io/address/0xc222ab08333109243B1f4E2a80e3D0A190714AB5"
"name": "0xa2A5…fDea",
"url": "https://etherscan.io/address/0xa2A58E31C03C59e34ab4d996d811DA0C035BfDea"
}
],
"discoveryDrivenData": true
},
{
"id": "SaferSafes",
"name": "SaferSafes",
"accounts": [
{
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"type": "Contract",
"isVerified": true,
"name": "0xA844…483a",
"url": "https://etherscan.io/address/0xA8447329e52F64AED2bFc9E7a2506F7D369f483a"
}
],
"chain": "ethereum",
"description": "A Gnosis Safe module combining LivenessModule and TimelockGuard. Provides liveness checks where a fallback owner can challenge and take over if Safe owners are unresponsive, plus optional timelock delays for transaction scheduling.\n* Can interact with SuperchainConfig\n * 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) [via: OpFoundationUpgradeSafe → LivenessModule if the number of Optimism Security Council members falls below 8 → Optimism Security Council → Optimism Guardian Multisig]",
"discoveryDrivenData": true
},
{
"id": "Optimism Security Council",
"name": "Optimism Security Council",
"description": "A Multisig with 10/13 threshold. It uses the following modules: LivenessModule (used to remove members inactive for 3mo 8d while making sure that the threshold remains above 75%. If the number of members falls below 8, the OpFoundationUpgradeSafe takes ownership of the multisig).\nMember of Optimism Guardian Multisig, SuperchainProxyAdminOwner.\n* Can interact with SuperchainConfig\n * 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) [via: Optimism Guardian Multisig]",
"accounts": [
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "0xc281…Bd03",
"url": "https://etherscan.io/address/0xc2819DC788505Aac350142A7A707BF9D03E3Bd03"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE61F12136bA47De67D15a1D59fE2f383ec5176aE",
"type": "EOA",
"isVerified": true,
"name": "0xE61F…76aE",
"url": "https://etherscan.io/address/0xE61F12136bA47De67D15a1D59fE2f383ec5176aE"
},
{
"address": "eth:0x652BC529E171847E2fFddCeA13567643C84ccB5f",
"type": "EOA",
"isVerified": true,
"name": "0x652B…cB5f",
"url": "https://etherscan.io/address/0x652BC529E171847E2fFddCeA13567643C84ccB5f"
},
{
"address": "eth:0x5c1f9E9384Ca9fE0499277F6a015a2ac0A317a81",
"type": "EOA",
"isVerified": true,
"name": "0x5c1f…7a81",
"url": "https://etherscan.io/address/0x5c1f9E9384Ca9fE0499277F6a015a2ac0A317a81"
},
{
"address": "eth:0x4A7322258c9E690e4CB8Cea6e5251443E956e61E",
"type": "EOA",
"isVerified": true,
"name": "0x4A73…e61E",
"url": "https://etherscan.io/address/0x4A7322258c9E690e4CB8Cea6e5251443E956e61E"
},
{
"address": "eth:0x3A53B4B081Eb7Cb00C46497b16Ea22e65E4Faa94",
"type": "EOA",
"isVerified": true,
"name": "0x3A53…aa94",
"url": "https://etherscan.io/address/0x3A53B4B081Eb7Cb00C46497b16Ea22e65E4Faa94"
},
{
"address": "eth:0xEF9A98511939eEe6Ec69af62082E3F2ff606877c",
"type": "EOA",
"isVerified": true,
"name": "0xEF9A…877c",
"url": "https://etherscan.io/address/0xEF9A98511939eEe6Ec69af62082E3F2ff606877c"
},
{
"address": "eth:0x6323ef2b80030f3fBc508bFc321Fc71fDB95c865",
"type": "EOA",
"isVerified": true,
"name": "0x6323…c865",
"url": "https://etherscan.io/address/0x6323ef2b80030f3fBc508bFc321Fc71fDB95c865"
},
{
"address": "eth:0xd5b735b676A043a53946C3b6F6BE28c1ECE6aC90",
"type": "EOA",
"isVerified": true,
"name": "0xd5b7…aC90",
"url": "https://etherscan.io/address/0xd5b735b676A043a53946C3b6F6BE28c1ECE6aC90"
},
{
"address": "eth:0x7ed8d9Af9eaA194D1A75C67c1475579E42289E39",
"type": "EOA",
"isVerified": true,
"name": "0x7ed8…9E39",
"url": "https://etherscan.io/address/0x7ed8d9Af9eaA194D1A75C67c1475579E42289E39"
},
{
"address": "eth:0x0aA384EB2fedD2741277A0f72909A0d7275575D7",
"type": "EOA",
"isVerified": true,
"name": "0x0aA3…75D7",
"url": "https://etherscan.io/address/0x0aA384EB2fedD2741277A0f72909A0d7275575D7"
},
{
"address": "eth:0x0a8742365a7EB0A3698293ac54357B5Ac04cefE6",
"type": "EOA",
"isVerified": true,
"name": "0x0a87…efE6",
"url": "https://etherscan.io/address/0x0a8742365a7EB0A3698293ac54357B5Ac04cefE6"
},
{
"address": "eth:0xbfA046B0bc5cEa1596be62B8b3f79f9f41f1E0d9",
"type": "EOA",
"isVerified": true,
"name": "0xbfA0…E0d9",
"url": "https://etherscan.io/address/0xbfA046B0bc5cEa1596be62B8b3f79f9f41f1E0d9"
},
{
"address": "eth:0x92827223f6b397CE9F208eE352bacA710765cACb",
"address": "eth:0xcbC7dCeb857F0b25523618cCa0A03c419a6d7eA6",
"type": "EOA",
"isVerified": true,
"name": "0x9282…cACb",
"url": "https://etherscan.io/address/0x92827223f6b397CE9F208eE352bacA710765cACb"
"name": "0xcbC7…7eA6",
"url": "https://etherscan.io/address/0xcbC7dCeb857F0b25523618cCa0A03c419a6d7eA6"
}
],
"discoveryDrivenData": true
},
{
"id": "SuperchainProxyAdminOwner",
"name": "SuperchainProxyAdminOwner",
"description": "A Multisig with 2/2 threshold. \n* Can upgrade **with no delay**\n * SuperchainConfig [via: SuperchainProxyAdmin]\n* Can interact with AddressManager\n * set and change address mappings [via: SuperchainProxyAdmin]",
"accounts": [
{
"address": "eth:0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A",
"type": "Contract",
"isVerified": true,
"name": "0x5a0A…3d2A",
"url": "https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"type": "Contract",
"isVerified": true,
"name": "OpFoundationUpgradeSafe",
"url": "#OpFoundationUpgradeSafe"
},
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "Optimism Security Council",
"url": "#Optimism Security Council"
}
],
"discoveryDrivenData": true
},
{
"id": "LivenessGuard",
"name": "LivenessGuard",
"accounts": [
{
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"type": "Contract",
"isVerified": true,
"name": "0x2442…4a25",
"url": "https://etherscan.io/address/0x24424336F04440b1c28685a38303aC33C9D14a25"
}
],
"chain": "ethereum",
"description": "Modular contract to be used together with the LivenessModule. Tracks liveness / activity of Safe owners.\n* Can interact with LivenessModule\n * can remove members of Optimism Security Council inactive for 3mo 8d ",
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "Optimism Guardian Multisig",
"name": "Optimism Guardian Multisig",
"description": "A Multisig with 1/1 threshold. It uses the following modules: DeputyPauseModule (Allows 0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module).",
"description": "A Multisig with 1/1 threshold. It uses the following modules: DeputyPauseModule (Allows 0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module).",
"accounts": [
{
"address": "eth:0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2",
"type": "Contract",
"isVerified": true,
"name": "0x09f7…dAf2",
"url": "https://etherscan.io/address/0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "Optimism Security Council",
"url": "#Optimism Security Council"
}
],
"discoveryDrivenData": true
},
{
"id": "Celo Security Council",
"name": "Celo Security Council",
"description": "A Multisig with 6/8 threshold. \nMember of CeloProxyAdminOwner.\n",
"accounts": [
{
"address": "eth:0xC03172263409584f7860C25B6eB4985f0f6F4636",
"type": "Contract",
"isVerified": true,
"name": "0xC031…4636",
"url": "https://etherscan.io/address/0xC03172263409584f7860C25B6eB4985f0f6F4636"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - Celo Docs",
"url": "https://docs.celo.org/home/protocol/security-council"
}
],
"participants": [
{
"address": "eth:0xB963047c5D875b7FE777339B1E6B61ac4df1f3e2",
"type": "EOA",
"isVerified": true,
"name": "0xB963…f3e2",
"url": "https://etherscan.io/address/0xB963047c5D875b7FE777339B1E6B61ac4df1f3e2"
},
{
"address": "eth:0x6FDb3eA186981aA32DD8e7B782d95733Ca3c13A1",
"type": "EOA",
"isVerified": true,
"name": "0x6FDb…13A1",
"url": "https://etherscan.io/address/0x6FDb3eA186981aA32DD8e7B782d95733Ca3c13A1"
},
{
"address": "eth:0xd0cE4D055d04bDA69b20815A3F796019bB68c6Db",
"type": "EOA",
"isVerified": true,
"name": "0xd0cE…c6Db",
"url": "https://etherscan.io/address/0xd0cE4D055d04bDA69b20815A3F796019bB68c6Db"
},
{
"address": "eth:0x148dfaC5dF51Ab1D7b02a3B53f1e2Da1F0A6B5Ca",
"type": "EOA",
"isVerified": true,
"name": "0x148d…B5Ca",
"url": "https://etherscan.io/address/0x148dfaC5dF51Ab1D7b02a3B53f1e2Da1F0A6B5Ca"
},
{
"address": "eth:0x5f70938aA8d2fd91EE3959998E5DdaACFb6Ffb85",
"type": "EOA",
"isVerified": true,
"name": "0x5f70…fb85",
"url": "https://etherscan.io/address/0x5f70938aA8d2fd91EE3959998E5DdaACFb6Ffb85"
},
{
"address": "eth:0xD1C635987B6Aa287361d08C6461491Fa9df087f2",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0xD1C635987B6Aa287361d08C6461491Fa9df087f2"
},
{
"address": "eth:0x2BE5E223E368E8c0f404a1f3Eb4eB09f99C8FaD8",
"type": "EOA",
"isVerified": true,
"name": "0x2BE5…FaD8",
"url": "https://etherscan.io/address/0x2BE5E223E368E8c0f404a1f3Eb4eB09f99C8FaD8"
},
{
"address": "eth:0xC91252606ff547d8B0345491CfABcCf0f6F0a29a",
"type": "EOA",
"isVerified": true,
"name": "0xC912…a29a",
"url": "https://etherscan.io/address/0xC91252606ff547d8B0345491CfABcCf0f6F0a29a"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x0cd08c7f7A96AA9635f761b49216B9eA74C5cA60",
"type": "EOA",
"isVerified": true,
"name": "0x0cd0…cA60",
"url": "https://etherscan.io/address/0x0cd08c7f7A96AA9635f761b49216B9eA74C5cA60",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"id": "Optimism-EOA-1",
"name": "Optimism EOA 1",
"accounts": [
{
"address": "eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC",
"address": "eth:0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c",
"type": "EOA",
"isVerified": true,
"name": "0x352f…F7aC",
"url": "https://etherscan.io/address/0x352f1defB49718e7Ea411687E850aA8d6299F7aC",
"displayName": "EOA 2"
"name": "0x2fA1…a87c",
"url": "https://etherscan.io/address/0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c",
"displayName": "Optimism EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SuperchainConfig\n * 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) [via: DeputyPauseModule though restricted to the SuperchainConfig's `pause()` function → Optimism Guardian Multisig]",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-8",
"name": "EOA 3 and EOA 8",
"id": "EOA-2-and-EOA-7",
"name": "EOA 2 and EOA 7",
"accounts": [
{
"address": "eth:0x0B7de3F505AD7Fc9b38207CD8E2Adc7a604BFe62",
"type": "EOA",
"isVerified": true,
"name": "0x0B7d…Fe62",
"url": "https://etherscan.io/address/0x0B7de3F505AD7Fc9b38207CD8E2Adc7a604BFe62",
"displayName": "EOA 3"
"displayName": "EOA 2"
},
{
"address": "eth:0x79D14553D6B3484F5612272B43c219A882415d33",
"type": "EOA",
"isVerified": true,
"name": "0x79D1…5d33",
"url": "https://etherscan.io/address/0x79D14553D6B3484F5612272B43c219A882415d33",
"displayName": "EOA 8"
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with AccessManager\n * Allowed to post new state roots of the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-4,-EOA-5,-EOA-6,-EOA-7,-EOA-9-and-EOA-10",
"name": "EOA 4, EOA 5, EOA 6, EOA 7, EOA 9 and EOA 10",
"id": "EOA-3,-EOA-4,-EOA-5,-EOA-6,-EOA-8-and-EOA-9",
"name": "EOA 3, EOA 4, EOA 5, EOA 6, EOA 8 and EOA 9",
"accounts": [
{
"address": "eth:0x53E8EEAAE0731CCc888513695eC1Bd792ec975Ca",
"type": "EOA",
"isVerified": true,
"name": "0x53E8…75Ca",
"url": "https://etherscan.io/address/0x53E8EEAAE0731CCc888513695eC1Bd792ec975Ca",
"displayName": "EOA 4"
"displayName": "EOA 3"
},
{
"address": "eth:0x56966549e0953e8d6E17Fcd3278b003d81f58cA8",
"type": "EOA",
"isVerified": true,
"name": "0x5696…8cA8",
"url": "https://etherscan.io/address/0x56966549e0953e8d6E17Fcd3278b003d81f58cA8",
"displayName": "EOA 5"
"displayName": "EOA 4"
},
{
"address": "eth:0x7247204E46B381149d99acF88b318713fE12c32f",
"type": "EOA",
"isVerified": true,
"name": "0x7247…c32f",
"url": "https://etherscan.io/address/0x7247204E46B381149d99acF88b318713fE12c32f",
"displayName": "EOA 6"
"displayName": "EOA 5"
},
{
"address": "eth:0x77E831A0A6a680335BB54937E085fF625dfE3f6F",
"type": "EOA",
"isVerified": true,
"name": "0x77E8…3f6F",
"url": "https://etherscan.io/address/0x77E831A0A6a680335BB54937E085fF625dfE3f6F",
"displayName": "EOA 7"
"displayName": "EOA 6"
},
{
"address": "eth:0xc6E6836CaCB6fF0a843050DB7F64bb2ab864C463",
"type": "EOA",
"isVerified": true,
"name": "0xc6E6…C463",
"url": "https://etherscan.io/address/0xc6E6836CaCB6fF0a843050DB7F64bb2ab864C463",
"displayName": "EOA 9"
"displayName": "EOA 8"
},
{
"address": "eth:0xe4ce4999b1C4C60C384AC96f370F00796ae9eC78",
"type": "EOA",
"isVerified": true,
"name": "0xe4ce…eC78",
"url": "https://etherscan.io/address/0xe4ce4999b1C4C60C384AC96f370F00796ae9eC78",
"displayName": "EOA 10"
"displayName": "EOA 9"
}
],
"chain": "ethereum",
"description": "* Can interact with AccessManager\n * Allowed to challenge or delete state roots proposed by a Proposer ",
"discoveryDrivenData": true
}
]
}
}
contracts+20-18
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x89E31965D844a309231B1f17759Ccaf1b7c09861",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xe5Dc3C0a3489b81A6F3AE3bB49bF9CcBFB85a3dB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x5852f5888f0563ac1d7e3bf2b566e63fa981394e24b9753a41416a2ba6bdbfbc",
"implementations": [
"eth:0x7b5a84F818B6fC3F079EE87c214F369062188D2A"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x911EA44d22EB903515378625dA3a0E09D2E1B074"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x9c61C5a8FF9408B83ac92571278550097A9d2BB5"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xa9c79551eA70D311f5153a27Cba12396e5128b9c"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0xe5Dc3C0a3489b81A6F3AE3bB49bF9CcBFB85a3dB"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner\n * **batcherHash**: EOA 1\n * **owner**: Celo cLabs Multisig",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x89E31965D844a309231B1f17759Ccaf1b7c09861#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0x7411775e32485632423395def2883f19e3a11c66c88c57f08d9975a927e2b166",
"implementations": [
"eth:0x6322C2f2D6a4305Fc033754d486A5A067Ee5F9b1"
]
},
{
"timestamp": 1741879583,
"transactionHash": "0x381b707419ae79c88d6fa34ec819396c80ba54f489d47d10ff85c4285b64e447",
"implementations": [
"eth:0x3Da872782f9fB696fD72Af2ec9313a56bDA6f06d"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0xBeD463769920dAc19a7E2aDf47B6C6Bb6480bD97"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x215A5fF85308A72A772F09B520dA71D3520e9aC7"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x661DfA933f77148Dc8d84b06646a2868D7ae5DeB"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
}
],
"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 42.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0xb42846aca12a846645e69e61c48c9b8de7078117c710ff124b04c18f735fbc5e",
"implementations": [
"eth:0xe8b013bEE7Bd603e2f0B4825638559d645A4C4CB"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683#code"
},
{
"name": "SuperchainConfig",
"isVerified": true,
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04"
],
"implementations": [
"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1705954799,
"transactionHash": "0x8ba0e42b89cde22310b644ed30fd44e4a348619a165a54c908e7dc341e9bbd0c",
"implementations": [
"eth:0x53c165169401764778F780a69701385eb0FF19B7"
]
},
{
"timestamp": 1718044163,
"transactionHash": "0xe361c0d4ae3aebc94b3f281ee372fbb1cbdb0c33ca8b1b35e7f3b009b2fcbdb0",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1718044163,
"transactionHash": "0xe361c0d4ae3aebc94b3f281ee372fbb1cbdb0c33ca8b1b35e7f3b009b2fcbdb0",
"implementations": [
"eth:0x53c165169401764778F780a69701385eb0FF19B7"
]
},
{
"timestamp": 1743612623,
"transactionHash": "0x5f3530e593bbac37c61dc5b7755b6a40c06c20c1a3a1b13fca5b7d00cde65c29",
"implementations": [
"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7"
]
},
{
"timestamp": 1753379243,
"transactionHash": "0x46acdce174c8d83ebe2f208d8c76c867e75617483d64c3e407f69ae2f9868716",
"implementations": [
"eth:0xCe28685EB204186b557133766eCA00334EB441E4"
]
},
{
"timestamp": 1764092795,
"transactionHash": "0xf556934cb4de1ab40a4cfba17856cd601cbc8b875b96a9ccd8ee32bcd363abf5",
"implementations": [
"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
]
}
],
"description": "Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual 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 3 months if left untouched.\n* Roles:\n * **admin**: SuperchainProxyAdmin; ultimately SuperchainProxyAdminOwner\n * **guardian**: Optimism Guardian Multisig; ultimately EOA 2, OpFoundationUpgradeSafe, Optimism Security Council, SaferSafes",
"description": "Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual 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 3 months if left untouched.\n* Roles:\n * **admin**: SuperchainProxyAdmin; ultimately SuperchainProxyAdminOwner\n * **guardian**: Optimism Guardian Multisig; ultimately OpFoundationUpgradeSafe, Optimism EOA 1, Optimism Security Council, SaferSafes",
"upgradableBy": [
{
"name": "SuperchainProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x95703e0982140D16f8ebA6d158FccEde42f04a4C#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xE45D2d835d0b2D3C7f4fEe1eaa19A068d0ba8A88"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x142804c112b7513d03962454fab1f12292cf4b4833ca1701f5122a7212476c77",
"implementations": [
"eth:0xDE47b113E4157ed15fA46c5572562aC11146c5eA"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x3d5a67747dE7E09b0d71F5d782c8b45f6307B9Fd"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x807124F75FF2120b2f26D7e6f9e39C03ee9DE212"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xA183A771B6c5F6e88cd351bBDC40E1ECD4521Cad"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0xE45D2d835d0b2D3C7f4fEe1eaa19A068d0ba8A88"
]
}
],
"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.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0x3C519816C5BdC0a0199147594F83feD4F5847f13",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x088ae685dbdd16320c9d3f99e7feea6c823156f69ab0da7dc48ce6c38498c55e",
"implementations": [
"eth:0xad5D111e961A5E451C8172034115bcc0551b6551"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x276d3730f219f7ec22274f7263180b8452B46d47"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x7f1d12fB2911EB095278085f721e644C1f675696"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3C519816C5BdC0a0199147594F83feD4F5847f13#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xfA707F45A23370d9154AF4457401274E38FA2d8A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe#code"
},
{
"name": "LivenessModule",
"isVerified": true,
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "used to remove members inactive for 3mo 8d while making sure that the threshold remains above 75%. If the number of members falls below 8, the OpFoundationUpgradeSafe takes ownership of the multisig\n* Roles:\n * **fallbackOwner**: OpFoundationUpgradeSafe if the number of Optimism Security Council members falls below 8\n * **livenessGuard**: LivenessGuard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0454092516c9A4d636d3CAfA1e82161376C8a748#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "Celo native asset Token",
"isVerified": true,
"address": "eth:0x057898f3C43F129a17517B9056D23851F124b19f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x64fE3f9201E6534D2d744c7C57D134E709131a6e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0xe145ca9f0fea9f384f7abad906b81717a0d407de37718cb9036678937c44d9f0",
"implementations": [
"eth:0x64fE3f9201E6534D2d744c7C57D134E709131a6e"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x057898f3C43F129a17517B9056D23851F124b19f#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "CeloSuperchainConfig",
"isVerified": true,
"address": "eth:0x25035d2233d099f0BA710ca1e5a3834842870C66",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xA59b2eBf8231f0e31508Bd18e9185BeB5Ab1C038"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xA59b2eBf8231f0e31508Bd18e9185BeB5Ab1C038"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x25035d2233d099f0BA710ca1e5a3834842870C66#code"
},
{
"name": "FaultDisputeGame",
"isVerified": true,
"address": "eth:0x25Bd434Aa96EE31D6661c89CF4290281f1ed856F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Logic of the dispute game. When a state root is proposed, a dispute game contract is deployed. Challengers can use such contracts to challenge the proposed state root.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x25Bd434Aa96EE31D6661c89CF4290281f1ed856F#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SuperchainProxyAdmin",
"isVerified": true,
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: SuperchainProxyAdminOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x543bA4AADBAb8f9025686Bd03993043599c6fB04#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6463dEE3828677F6270d83d45408044fc5eDB908#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x6f0E4f1EB98A52EfaCF7BE11d48B9d9d6510A906",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x149BD036f5F57D0FF4b5F102C9d46E3c0EB2C016"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x0297053983c066511596ec9542fd1d217b46039efc3d729f4e4468ecfff47b6b",
"implementations": [
"eth:0x0B3004b843dA84FE5D4C46AeB5E80F826e5CD69A"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x149BD036f5F57D0FF4b5F102C9d46E3c0EB2C016"
]
}
],
"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.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6f0E4f1EB98A52EfaCF7BE11d48B9d9d6510A906#code"
},
{
"name": "DeputyPauseModule",
"isVerified": true,
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Allows 0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module.\n* Roles:\n * **deputy**: EOA 2 though restricted to the SuperchainConfig's `pause()` function",
"description": "Allows 0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module.\n* Roles:\n * **deputy**: Optimism EOA 1 though restricted to the SuperchainConfig's `pause()` function",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x783A434532Ee94667979213af1711505E8bFE374",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: CeloProxyAdminOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x783A434532Ee94667979213af1711505E8bFE374#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0x8fE58d2168b5412Cf1Bd212cE6137f8b7300222d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"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 OPSuccinctFaultDisputeGame. Variant for chains using OPSuccinct (SP1) games instead of Cannon, which omits Cannon-specific cross-contract fields (vm, oracle, weth, challengePeriod, absolutePrestate from game).\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8fE58d2168b5412Cf1Bd212cE6137f8b7300222d#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x91FA5B653aFe81A79890A93ad83768A04cc011b4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
}
],
"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.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x91FA5B653aFe81A79890A93ad83768A04cc011b4#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xa83a2E8595b602aD98C928E9cD123c0E05C84FD9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa83a2E8595b602aD98C928E9cD123c0E05C84FD9#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0xC700d16428cF5Bfa71D91E66fA54Fc11A73f2552",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
}
],
"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.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC700d16428cF5Bfa71D91E66fA54Fc11A73f2552#code"
},
{
"name": "OPSuccinctFaultDisputeGame",
"name": "AccessManager",
"isVerified": true,
"address": "eth:0xE7bd695d6A17970A2D9dB55cfeF7F2024d630aE1",
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Logic of the dispute game. When a state root is proposed, a dispute game contract is deployed. Challengers can use such contracts to challenge the proposed state root.\n",
"description": "Contract managing access control for proposers and challengers in OPSuccinct.\n* Roles:\n * **challengers**: EOA 3, EOA 4, EOA 5, EOA 6, EOA 8, EOA 9\n * **proposers**: EOA 2, EOA 7",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE7bd695d6A17970A2D9dB55cfeF7F2024d630aE1#code"
"url": "https://etherscan.io/address/0xF59a19c5578291cB7fd22618D16281aDf76f2816#code"
},
{
"name": "AccessManager",
"name": "OPSuccinctFaultDisputeGame",
"isVerified": true,
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"address": "eth:0xfF1caC738a5263736AF258e4b3D6a4970C6351FF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract managing access control for proposers and challengers in OPSuccinct.\n* Roles:\n * **challengers**: EOA 10, EOA 4, EOA 5, EOA 6, EOA 7, EOA 9\n * **proposers**: EOA 3, EOA 8",
"description": "Logic of the dispute game. When a state root is proposed, a dispute game contract is deployed. Challengers can use such contracts to challenge the proposed state root.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF59a19c5578291cB7fd22618D16281aDf76f2816#code"
"url": "https://etherscan.io/address/0xfF1caC738a5263736AF258e4b3D6a4970C6351FF#code"
}
]
},
"escrows": [
{
"address": "0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"sinceTimestamp": 1741879559,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0x7411775e32485632423395def2883f19e3a11c66c88c57f08d9975a927e2b166",
"implementations": [
"eth:0x6322C2f2D6a4305Fc033754d486A5A067Ee5F9b1"
]
},
{
"timestamp": 1741879583,
"transactionHash": "0x381b707419ae79c88d6fa34ec819396c80ba54f489d47d10ff85c4285b64e447",
"implementations": [
"eth:0x3Da872782f9fB696fD72Af2ec9313a56bDA6f06d"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0xBeD463769920dAc19a7E2aDf47B6C6Bb6480bD97"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x215A5fF85308A72A772F09B520dA71D3520e9aC7"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x661DfA933f77148Dc8d84b06646a2868D7ae5DeB"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
}
],
"description": "Main entry point for users depositing ETH.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"sinceTimestamp": 1741879559,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xfA707F45A23370d9154AF4457401274E38FA2d8A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Main entry point for users depositing ERC20 token that do not require custom gateway.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct FDP ",
"title": "Aggregation program of OP Succinct FDP v2.1.0",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "unsuccessful",
"verificationSteps": "As shared by the Celo team, this program fixes a security issue and because of that it is not yet public. Program hash could not be regenerated.",
"hash": "0x004f4bbc8b8599a08bb3715b9a18bb53996ac81d558a0ac094f6e97c71b70377"
"programUrl": "https://github.com/celo-org/op-succinct/tree/celo/v2.1.0/programs/aggregation",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [celo-org/op-succinct](https://github.com/celo-org/op-succinct) repo: `git checkout celo/v2.1.0`. Commit hash should be `00ac9f41a19917be8add5f7b60bef5be93b5b2b7`.\n2. Make sure docker is running by running `docker ps`\n3. Reproducibly rebuild the program ELF from source: from `programs/aggregation` run `cargo prove build --elf-name aggregation-elf --docker --tag v6.1.0 --output-directory ../../elf`. The rebuilt ELF is byte-identical to the one committed in the release.\n4. From the `op-succinct` dir run `cargo run --bin config --release --features eigenda` to print the verification key hashes.\n ",
"hash": "0x00b04647b693a1024f3f6524643693ac5445fbabe5cdfcd3b2d3d468274d4be4"
},
{
"title": "Range program of OP Succinct FDP ",
"title": "Range program of OP Succinct FDP v2.1.0",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "unsuccessful",
"verificationSteps": "As shared by the Celo team, this program fixes a security issue and because of that it is not yet public. Program hash could not be regenerated.",
"hash": "0x1fffeb5a6f932e26084c284829e79973121fe5d456a7ec9029febc1308167c2c"
"programUrl": "https://github.com/celo-org/op-succinct/tree/celo/v2.1.0/programs/range/eigenda",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [celo-org/op-succinct](https://github.com/celo-org/op-succinct) repo: `git checkout celo/v2.1.0`. Commit hash should be `00ac9f41a19917be8add5f7b60bef5be93b5b2b7`.\n2. Make sure docker is running by running `docker ps`\n3. Reproducibly rebuild the program ELF from source: from `programs/range/eigenda` run `cargo prove build --elf-name eigenda-range-elf-embedded --docker --tag v6.1.0 --output-directory ../../../elf`. The rebuilt ELF is byte-identical to the one committed in the release.\n4. From the `op-succinct` dir run `cargo run --bin config --release --features eigenda` to print the verification key hashes.\n ",
"hash": "0x1dd60be45aa2e74722e16f3a7c2d3b0a3339c1b72dc4e5b513487da3528e5c94"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}