49e04c98 (main)
and
dfa2d7ec (PR)
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -2
+4 -2
{
"addresses": {
"ethereum": [
{
"name": "Bridge",
"isVerified": true,
"address": "eth:0x19df42E085e2c3fC4497172E412057F54D9f013E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x480214c3B0707a1e083A3Ae97209FCb671471109"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0x480214c3B0707a1e083A3Ae97209FCb671471109"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x19df42E085e2c3fC4497172E412057F54D9f013E#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "eth:0x28293c7855797B0441000EF144119727f3cBCA9B",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"eth:0x7c4e8195FB560D1557C52f051dCdA4724a2894b3"
],
"implementations": [
"eth:0xD6DC5196b9E1c3fcA62CCDA876ebFFb3eDA384Ea",
"eth:0xa8Ae2ed62A978e2108a1C7CBfdb43a5CBfdd2aD0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0xD6DC5196b9E1c3fcA62CCDA876ebFFb3eDA384Ea",
"eth:0xa8Ae2ed62A978e2108a1C7CBfdb43a5CBfdd2aD0"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 3\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 3\n * **validators**: EOA 2",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x28293c7855797B0441000EF144119727f3cBCA9B#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "eth:0x8045B2aa6b823CbA8f99ef3D3404F711619d3473",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x2C381da225148f7d6390f0EE4A162F958ec40e7A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0xA9e877a129d0b77d11876184fe6eE38A7CeAffc8"
]
},
{
"timestamp": 1744043999,
"transactionHash": "0xf5f5d49d05e0d3979c352dcd9e7f81b36131a5e9ce6891fe1c51beeb251e8dcd",
"implementations": [
"eth:0x5EE6B586F1F8651dFd5432DEcd6D4dF1EbAdD203"
]
},
{
"timestamp": 1748548763,
"transactionHash": "0x976f69fdd0d71817fd2f2f2b177c3dc0b5f8a2128730cafd1bcc9b84b16b848c",
"implementations": [
"eth:0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134"
]
},
{
"timestamp": 1754634059,
"transactionHash": "0xfb159898c69ee602cf7e18b6c24e60b05cddb75a74c11050dc3600650c0ab7f0",
"implementations": [
"eth:0x2C381da225148f7d6390f0EE4A162F958ec40e7A"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3\n * **batchPosterManager**: EOA 1\n * **batchPosters**: EOA 1",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8045B2aa6b823CbA8f99ef3D3404F711619d3473#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "eth:0xB9B007aE55B81dd1498Bc500a54ad9Ae53234c9C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0xE97d5ae76694836D2e016D80469B45D7aFb2ebaB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0xE97d5ae76694836D2e016D80469B45D7aFb2ebaB"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB9B007aE55B81dd1498Bc500a54ad9Ae53234c9C#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "eth:0x7c4e8195FB560D1557C52f051dCdA4724a2894b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x31c97a0A216CCd730bd8ab3ecAA97eACbA27b11a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0x31c97a0A216CCd730bd8ab3ecAA97eACbA27b11a"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3\n * **executors**: Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7c4e8195FB560D1557C52f051dCdA4724a2894b3#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "eth:0x010aDE5d8F9DC340531140802438798C189c36E0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x74110Fb401469FEA31A10680e28c9C4c17aFdd36"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0x0e76997707dd87D80d39597e3D2253453A3A02Fc"
]
},
{
"timestamp": 1744043999,
"transactionHash": "0xf5f5d49d05e0d3979c352dcd9e7f81b36131a5e9ce6891fe1c51beeb251e8dcd",
"implementations": [
"eth:0x74110Fb401469FEA31A10680e28c9C4c17aFdd36"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x010aDE5d8F9DC340531140802438798C189c36E0#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "eth:0x190C720892d0786BF75B77B4acD21c726ea8FDEd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0xf2078f19A9322E2e0Dfd02839C7D74215F2E7512"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0xf2078f19A9322E2e0Dfd02839C7D74215F2E7512"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x190C720892d0786BF75B77B4acD21c726ea8FDEd#code"
},
{
"name": "NitroEnclaveVerifier",
"isVerified": true,
"address": "eth:0x0d1AD56885440A92799dC766D65B5C8377c60A35",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n* Roles:\n * **owner**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0d1AD56885440A92799dC766D65B5C8377c60A35#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "eth:0x269F6f6FC8177a5A8c475AE0e2487508634EC8Ed",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x1c48b5526071EB2c89ccA3F8afC061b12944eED5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0x1c48b5526071EB2c89ccA3F8afC061b12944eED5"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 3",
"upgradableBy": [
{
"name": "Caldera Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x269F6f6FC8177a5A8c475AE0e2487508634EC8Ed#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x294a1Ee119C4B2510530572481A6a50892A9ae9f",
"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/0x294a1Ee119C4B2510530572481A6a50892A9ae9f#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "eth:0x5F8FE936F629AF71e7af6C7844692f98019d6163",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5F8FE936F629AF71e7af6C7844692f98019d6163#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "eth:0x816ADa3B63F3c643fb04152eA32B58Db89aadd89",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0xe20C4d54afBbea5123728d5b7dAcD9CB3c65C39a), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x816ADa3B63F3c643fb04152eA32B58Db89aadd89#code"
},
{
"name": "EspressoSGXTEEVerifier",
"isVerified": true,
"address": "eth:0x98206aBE6bdB21765458f27F199fd813343a3C3b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies attestations of an Intel SGX TEE.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x98206aBE6bdB21765458f27F199fd813343a3C3b#code"
},
{
"name": "EspressoNitroTEEVerifier",
"isVerified": true,
"address": "eth:0x9E490ce0203d191Cae0ABF5614D561cC6fdc771f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9E490ce0203d191Cae0ABF5614D561cC6fdc771f#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "eth:0xA79305c7D5Ad6F8AF0292c863957a2488F13f0d1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA79305c7D5Ad6F8AF0292c863957a2488F13f0d1#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "eth:0xcC758349CBd99bAA7fAD0558634dAaB176c777D0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcC758349CBd99bAA7fAD0558634dAaB176c777D0#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "eth:0xd79fd59b73c814D9607aB93C4A1aDCea06F91692",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd79fd59b73c814D9607aB93C4A1aDCea06F91692#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF025D25aE360D0D33a275dF74863CCc6600E6f8E#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "eth:0xf6a307A5868eB9c4a00F5efbD1EF8462AC63783f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf6a307A5868eB9c4a00F5efbD1EF8462AC63783f#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "eth:0xFe53F58bAd7B83B01C47CC86471507911263ac91",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFe53F58bAd7B83B01C47CC86471507911263ac91#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "eth:0xFe95b1f7cf7D7D14E9e38dEE0EFE1c9D3AaA3e69",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFe95b1f7cf7D7D14E9e38dEE0EFE1c9D3AaA3e69#code"
}
]
},
"escrows": [
{
"address": "0x19df42E085e2c3fC4497172E412057F54D9f013E",
"sinceTimestamp": 1731100211,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x19df42E085e2c3fC4497172E412057F54D9f013E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF025D25aE360D0D33a275dF74863CCc6600E6f8E"
],
"implementations": [
"eth:0x480214c3B0707a1e083A3Ae97209FCb671471109"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731100211,
"transactionHash": "0xffb5df6495a1e5fed0a0d1f3664f16e7b22739ac99d29a381a722f76a825107f",
"implementations": [
"eth:0x480214c3B0707a1e083A3Ae97209FCb671471109"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x19df42E085e2c3fC4497172E412057F54D9f013E#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Nitro TEE Verifer",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/f6f9410227adc63ff5117ce3f6f7e0f155083389/crates/sp1-methods/sp1-verifier",
"description": "Verifies correctness of a single TEE attestation for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "notVerified",
"verificationStatus": "unsuccessful",
"verificationSteps": "According to Automata Network, the linked program was compiled in a non-reporducible way (without docker). The compiled binary could not be reproduced.",
"hash": "0x00e874289e8c7f42381b6220f438801d2d1478dc8230f866a31e5ceec6e93322"
},
{
"title": "Nitro TEE Aggregated Verifer",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/f6f9410227adc63ff5117ce3f6f7e0f155083389/crates/sp1-methods/sp1-aggregator",
"description": "Verifies correctness of several aggregated TEE attestations for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "notVerified",
"verificationStatus": "unsuccessful",
"verificationSteps": "According to Automata Network, the linked program was compiled in a non-reporducible way (without docker). The compiled binary could not be reproduced.",
"hash": "0x002bb66c60302a81a621d7899e3f6ee1d0db9fb1eae5d1e80e94a33cb1e24922"
}
],
"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:0x294a1Ee119C4B2510530572481A6a50892A9ae9f"
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1777546397,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -2
+4 -2
{
"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 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**: 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",
"isVerified": true,
"address": "eth:0xE7bd695d6A17970A2D9dB55cfeF7F2024d630aE1",
"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/0xE7bd695d6A17970A2D9dB55cfeF7F2024d630aE1#code"
},
{
"name": "AccessManager",
"isVerified": true,
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"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 3, EOA 4, EOA 5, EOA 6, EOA 8, EOA 9\n * **proposers**: EOA 2, EOA 7",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF59a19c5578291cB7fd22618D16281aDf76f2816#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 ",
"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": "notVerified",
"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"
},
{
"title": "Range program of OP Succinct FDP ",
"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": "notVerified",
"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"
}
],
"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"
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777545991,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777295886,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -4
+1 -1
{
"dataAvailability": [
{
"name": "Data published onchain, but state reconstruction is blocked",
"description": "Account delta data is published onchain in the form of blobs. However, a prover migration (gnark/MIMC → plonky2/Poseidon2) occurred at block 23,711,820 without publishing a state snapshot. The old gnark circuit was never open-sourced, so ~60k pre-migration blobs cannot be decoded. Without this snapshot, users cannot reconstruct the latest accounts state required for forced exits.",
"risks": [],
"references": [
{
"title": "Lighter Prover v0.0.1 (first public release, Dec 2025)",
"url": "https://github.com/elliottech/lighter-prover"
},
{
"title": "StateRootUpdate event — gnark to plonky2 migration",
"url": "https://etherscan.io/tx/0x6a50b2b00444914e5c53df2fb48404078a098f93fc3911e6fcbde1c7b6418225"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular exit",
"description": "The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is settled the funds become available for withdrawal on L1. ZK proofs are required to settle blocks. Finally the user submits an L1 transaction to claim the funds.",
"risks": [],
"references": []
},
{
"name": "Escape hatch through ZK proofs",
"description": "If the centralized operators fail to process forced transactions after the deadline, the system can be frozen (desert mode) and users are expected to exit by reconstructing the latest settled state and providing a ZK proof of balance. In practice, this is not currently possible: the desert mode circuit source code is not public, and pre-migration blob data cannot be decoded (see data availability note). Users must rely on operator cooperation to exit.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force their transactions on L1",
"description": "If the centralized operators fail to include user transactions, users can force them themselves through L1. The possible transaction types that users can force are: deposits, withdrawals, order creation, order cancellation, and burning of pool shares. If the operators do not process forced transactions within 14d, the system can be frozen (desert mode) and users can exit using the latest settled state. All open positions are settled using the latest index price.",
"risks": [],
"references": []
},
"operator": {
"name": "Centralized operators",
"description": "Only the centralized operators can submit batches and verify them with a ZK proof, i.e. advance the state of the protocol.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": []
},
"otherConsiderations": [
{
"name": "External oracles used for index prices",
"description": "Lighter uses a combination of oracles to determine index prices, with Stork as the primary source. External signatures are currently not verified and the sequencer must be trusted to truthfully report data.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the oracle prices are manipulated."
}
],
"references": [
{
"title": "Lighter docs - Fair Price Marking",
"url": "https://docs.lighter.xyz/perpetual-futures/fair-price-marking"
}
]
}
],
"stateValidation": {
"description": "Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid transactions to the previous state. This includes user transactions originating from L1 and L2, as well as internal transactions created by L2 operators. In the desert mode, valid proofs of exit must be generated. These proofs are then verified on Ethereum by a smart contract.",
"categories": [
{
"title": "Prover Architecture",
"description": "[This repo](https://github.com/elliottech/lighter-prover/tree/main) contains the circuits and prover code for normal (i.e. non-desert) operation mode of Lighter. It includes the logic to generate and verify proofs of valid state transition according to the Lighter [matching engine](https://github.com/elliottech/lighter-prover/blob/d0ff2304aea516b22f3a5223881006b6a9af1cc9/circuit/src/matching_engine.rs)."
},
{
"title": "ZK Circuits",
"description": "Lighter transition is proven with custom Plonky2 circuits, compiled into ZK Lighter Verifier and Desert Verifier. ZK Lighter verifier implements the perp DEX and spot trading logic and could be found in this [prover repo](https://github.com/elliottech/lighter-prover/tree/main/circuit/src). Desert verifier consists of circuits proving valid L2 -> L1 withdrawals in the desert mode. More details in [ZK Catalog](https://l2beat.com/zk-catalog/lighterprover#proof-system)."
},
{
"title": "Verification Keys Generation",
"description": "Lighter wraps its validity proof into a Plonk-based proof system which requires a trusted setup. The verification keys are hardcoded in the verifier contract on-chain. Lighter prover repo contains a [script](https://github.com/elliottech/lighter-prover/blob/main/build_circuits.sh) that regenerates circuits and verification keys.",
"references": [
{
"title": "ZK Lighter verifier verification keys",
"url": "https://etherscan.io/address/0xD76E5C5507C56D721BB9cE6601DCd379d09AFaD2#code#F1#L54"
"url": "https://etherscan.io/address/0x01E5D9B6Db77FAA52Fc4Db1299A0163e5DaF5F82#code#F1#L54"
},
{
"title": "Desert verifier verification keys",
"url": "https://etherscan.io/address/0xd4460475F00307845082d3a146f36661354FBc67#code#F1#L39"
}
]
}
]
},
"upgradesAndGovernance": "Regular upgrades are initiated by the \"network governor\" and executed with a 21d delay. The \"security council\" is allowed to reduce the upgrade delay to zero in case of an emergency. The security council does not currently satisfy the Stage 1 requirements. The network governor also retains the ability to add or remove validators.",
"warning": "Apr 9 2026: the desert mode circuit source code is not publicly available, and L2BEAT research found that full state reconstruction from L1 data alone is not currently feasible. A prover migration (gnark → plonky2) occurred at block 23,711,820 without publishing a state snapshot, leaving pre-migration accounts unreconstructable. Users cannot exit without operator cooperation."
}
+2 -2
{
"addresses": {
"ethereum": [
{
"name": "Lighter",
"isVerified": true,
"address": "eth:0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7",
"upgradeability": {
"proxyType": "zkLighter proxy",
"admins": [
"eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67"
],
"implementations": [
"eth:0x13d4Ed7Db9d2cF73C7A45bfA6e23aa9742e8598C",
"eth:0x22F05515497ce8D78f3898088C474403Ac9C668f"
]
},
"chain": "ethereum",
"description": "The main rollup contract. It processes L2 batches, manages token deposits and withdrawals, allows users to submit censorship-resistant L2 transactions and controls desert mode (escape hatch). Logic is split between two contracts because of code-size limits, many operations are delegated to AdditionalZKLighter.\n* Roles:\n * **admin**: UpgradeGatekeeper; ultimately Lighter Multisig 2",
"upgradableBy": [
{
"name": "Lighter Multisig 2",
"delay": "21d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7#code"
},
{
"name": "UpgradeGatekeeper",
"isVerified": true,
"address": "eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Governance contract functioning like an upgrade timelock for downstream contracts. The current delay is 21d and can be entirely skipped by Lighter Multisig.\n* Roles:\n * **getMaster**: Lighter Multisig 2\n * **securityCouncilAddress**: Lighter Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67#code"
},
{
"name": "Governance",
"isVerified": true,
"address": "eth:0xa464DA0B43f80EE3FfC4795cbbFC78472b5c81A1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67"
],
"implementations": [
"eth:0x46D3C0c01D5DAae4FE8e3f54f32901d9Fbde1f08"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Manages the list of validators and the network governor.\n* Roles:\n * **admin**: UpgradeGatekeeper; ultimately Lighter Multisig 2\n * **networkGovernor**: Lighter Multisig 2\n * **validators**: EOA 1, EOA 2, EOA 3",
"upgradableBy": [
{
"name": "Lighter Multisig 2",
"delay": "21d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa464DA0B43f80EE3FfC4795cbbFC78472b5c81A1#code"
},
{
"name": "ZkLighterVerifier",
"isVerified": true,
"address": "eth:0xac3Ce44B6ff4E402858C99D5699ff63131572BaA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67"
],
"implementations": [
"eth:0xD76E5C5507C56D721BB9cE6601DCd379d09AFaD2"
"eth:0x01E5D9B6Db77FAA52Fc4Db1299A0163e5DaF5F82"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main ZK verifier of Lighter, settles the proofs of correct L2 state transition in the case of normal rollup operation.\n* Roles:\n * **admin**: UpgradeGatekeeper; ultimately Lighter Multisig 2",
"upgradableBy": [
{
"name": "Lighter Multisig 2",
"delay": "21d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xac3Ce44B6ff4E402858C99D5699ff63131572BaA#code"
},
{
"name": "DesertVerifier",
"isVerified": true,
"address": "eth:0xd4460475F00307845082d3a146f36661354FBc67",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "ZK verifier used to verify forced exits during desert mode.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd4460475F00307845082d3a146f36661354FBc67#code"
}
]
},
"escrows": [
{
"address": "0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7",
"sinceTimestamp": 1737090335,
"tokens": [
"USDC",
"ETH",
"LIT",
"LINK",
"AAVE",
"UNI",
"SKY",
"LDO",
"AZTEC"
],
"contract": {
"isVerified": true,
"address": "eth:0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7",
"upgradeability": {
"proxyType": "zkLighter proxy",
"admins": [
"eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67"
],
"implementations": [
"eth:0x13d4Ed7Db9d2cF73C7A45bfA6e23aa9742e8598C",
"eth:0x22F05515497ce8D78f3898088C474403Ac9C668f"
]
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"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:0xD76E5C5507C56D721BB9cE6601DCd379d09AFaD2",
"eth:0x01E5D9B6Db77FAA52Fc4Db1299A0163e5DaF5F82",
"eth:0xd4460475F00307845082d3a146f36661354FBc67"
]
}
+1 -1
{
"baseTimestamp": 1777298658,
"baseTimestamp": 1777891445,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -4
+4 -4
{
"creator": "Lighter",
"projectsForTvs": [
{
"projectId": "lighter",
"sinceTimestamp": 1759356000
}
],
"proofSystemInfo": "\n## Description\n\nLighter prover is a zk proving system for Lighter L2 based on [Plonky2](https://github.com/0xPolygonZero/plonky2/tree/main) circuits. It verifies the logic for regular state transition of Lighter L2, as well as state transitions in the “desert mode” when L2 is shut down and users exit, using different sets of circuits. The circuits are proven with a STARK which is wrapped into a Plonk SNARK before settling onchain.\n\n## Proof system\n\n[Plonky2](https://github.com/0xPolygonZero/plonky2) implements a circuit aritmetization based on TurboPlonk over Goldilocks field, but it replaces KZG polynomial commitment scheme with a FRI-based polynomial testing scheme. In this way proving Plonky2 circuits requires no trusted setup, i.e. it is a STARK. \n\nHowever Lighter wraps these STARK in a [gnark](https://github.com/Consensys/gnark) implementation of Plonk over BN254 curve, which requires a trusted setup.\n\n### Circuits\n\nThe proof system operates on Lighter STF circuits and desert mode circuits. All published circuits are available [here](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit), note that the Lighter team has not published the desert circuits yet. \n\nLighter proof system defines circuits for proving all transactions, including internal, L1 and L2 transactions. The full list of available transactions that define Lighter STF can be seen [here](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/transactions). \n\nTransaction circuits use custom implementations for arithmetic operations ([bigint](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/bigint), [uint](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/uint)), cryptographic primitives ([ecdsa](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/ecdsa) on the Secp256k1 curve, [eddsa](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/eddsa) on the ECgFp5 curve, [keccak](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/keccak), [poseidon_bn128](https://github.com/elliottech/lighter-prover/tree/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/poseidon_bn128)) and other helper circuits.\n\n### Recursion\n\nLighter prover implements recursive aggregation of transaction proofs to make the whole pipeline more efficient and parallelizable. First, fixed-size blocks of consecutive transactions are processed and proven by [BlockTx circuit](https://github.com/elliottech/lighter-prover/blob/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/block_tx_constraints.rs), which can be done on separate machines. Next, arbitrary number of BlockTx proofs are aggregated into a single proof by [BlockTxChain circuit](https://github.com/elliottech/lighter-prover/blob/053ceda7c59a9a0e05997661ca5a1bb7a92bb267/circuit/src/block_tx_chain_constraints.rs), which includes continuity checks across all BlockTx proofs.\n",
"techStack": {
"snark": [
{
"id": "Plonky2",
"type": "Plonk",
"name": "Plonky2",
"description": "Toolkit for developing transparent SNARKs based on PLONK and FRI developed by Polygon Zero team."
},
{
"id": "Goldilocks",
"type": "Field",
"name": "Goldilocks",
"description": "Prime field of order p = 2**64 - 2**32 + 1."
},
{
"id": "CustomCircuits",
"type": "Other",
"name": "App-specific circuits",
"description": "This project uses custom app-specific ZK circuits."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": " \n Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \n It included 176 participants and was publicly open for participation.\n \n - Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n - Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n - Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition).\n "
}
],
"verifierHashes": [
{
"hash": "0x321c1f2ac9b466d8c7671ec325b260501541aa373a90d52e1c227452dbaf649b",
"hash": "0xc50b83a66e621b8f1bea3f5fe17dcb4c7af5706e413038b3486e233a5ae40a1a",
"name": "Lighter verifier",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xD76E5C5507C56D721BB9cE6601DCd379d09AFaD2"
"address": "eth:0x01E5D9B6Db77FAA52Fc4Db1299A0163e5DaF5F82"
}
],
"verificationStatus": "notVerified",
"verificationSteps": "The sources for the verifier circuits are not published and thus the verifier cannot be independently regenerated.",
"verificationStatus": "successful",
"verificationSteps": "\nThe verification process below is based on the `build_circuits.sh` [script](https://github.com/elliottech/lighter-prover/blob/main/build_circuits.sh) in the lighter-prover repo. It consumed around 100 GiB of memory at the peak, so we recommend rerunning it on a machine with 128 GiB of RAM.\n\nThe steps below are for Ubuntu 22.04 OS.\n\n1. Install rust, gcc, go version 1.21 and later.\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\nsudo apt update\nsudo apt install build-essential\n\n# one way to install latest go on Ubuntu 22.04\nwget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz\nsudo tar -xvf go1.21.0.linux-amd64.tar.gz\nsudo mv go /usr/local\nexport GOROOT=/usr/local/go\nexport GOPATH=$HOME/go\nexport PATH=$GOPATH/bin:$GOROOT/bin:$PATH\nsource ~/.profile\n```\n\n2. Run the correct version of the script to regenerate the keys.\n\n```\ngit clone https://github.com/elliottech/lighter-prover.git\ncd lighter-prover\ngit checkout 2bbc3089365c867826d322d3bdd4c2783466d9af\nchmod +x build_circuits.sh\n./build_circuits.sh\n```\n\nThe script will generate the `final::....sol` file that contains the verifier smart contract with the verification keys.\n",
"description": "Custom verifier ID: SHA256 hash of all VK_... values from the smart contract, abi packed in the same order they are defined."
},
{
"hash": "0xc3d58029fabf2a93d6cb9b96315c484e4bea2e238aaa081460c9027863c650e7",
"name": "Lighter Desert verifier",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xd4460475F00307845082d3a146f36661354FBc67"
}
],
"verificationStatus": "unsuccessful",
"verificationSteps": "The sources for desert verifier circuits are not published and thus the verifier cannot be independently regenerated.",
"description": "Custom verifier ID: SHA256 hash of all VK_... values from the smart contract, abi packed in the same order they are defined."
}
]
}
+61 -14
+60 -13
{
"ethereum": {
"roles": [
{
"id": "Operator",
"name": "Operator",
"description": "Allowed to prove blocks and post the corresponding transaction data.",
"accounts": [
{
"address": "eth:0x46d2F319fd42165D4318F099E143dEA8124E9E3e",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-2-and-EOA-3"
},
{
"address": "eth:0x52FF08F313A00A54e3Beffb5C4a7F7446eFb6754",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-2-and-EOA-3"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "CallForwardingProxy",
"name": "CallForwardingProxy",
"accounts": [
{
"address": "eth:0x3697bD0bC6C050135b8321F989a5316eACbF367D",
"type": "Contract",
"isVerified": true,
"name": "0x3697…367D",
"url": "https://etherscan.io/address/0x3697bD0bC6C050135b8321F989a5316eACbF367D"
}
],
"chain": "ethereum",
"description": "A public proxy contract forwarding calls to a predefined target contract (LineaRollup). Can be called by any address.\n* Can interact with LineaRollup\n * submit and finalize blocks as the Operator role when 6 months of no finalizations have passed ",
"discoveryDrivenData": true
},
{
"id": "Linea Security Council",
"name": "Linea Security Council",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with no delay**\n * TokenBridge [via: Timelock → ProxyAdmin]\n * L1USDCBridge [via: ProxyAdmin]\n * LineaRollup [via: Timelock → ProxyAdmin]\n * YieldManager [via: Timelock → ProxyAdmin]\n* Can interact with TokenBridge\n * can pause the bridge \n * can pause token bridging actions initiated from the other layer \n * can pause token bridging actions initiated from this layer \n * can prevent tokens that have not been bridged already from being bridged by assigning them a reserved status **with 3mo delay or with no delay** [via: Delay with 3mo delay → Linea Multisig 2 - or - acting directly]\n * can remove the reserved status from a token, meaning that it is allowed to be bridged again **with 3mo delay or with no delay** [via: Delay with 3mo delay → Linea Multisig 2 - or - acting directly]\n * can set custom ERC20 contracts for specific ERC20s **with 3mo delay or with no delay** [via: Delay with 3mo delay → Linea Multisig 2 - or - acting directly]\n * can set the contract used as the source of truth from crosschain messages \n * can unpause token bridging actions initiated from the other layer \n * can unpause token bridging actions initiated from this layer \n * manage all critical access control roles and permissions (full admin of the main bridge escrow) \n* Can interact with Delay\n * enable/disable the module, set delays and expiration of transactions, set the target **with 3mo delay** [via: Delay with 3mo delay → Linea Multisig 2]\n* Can interact with UpgradeableBeacon\n * change the beacon implementation \n* Can interact with LineaRollup\n * manage all critical access control roles and permissions (full admin of the rollup system) \n * pause the rollup for 2d, followed by 2d cooldown, during which the rollup cannot be paused, except by the Security Council \n * pause the rollup indefinitely \n * send ETH from the rollup bridge to the YieldManager \n * set the address of the yield manager contract that receives ETH from rollup bridge \n* Can interact with Timelock\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: Timelock]\n * propose transactions **with 3mo delay or with no delay** [via: Delay with 3mo delay → Linea Multisig 2 - or - acting directly]\n* Can interact with YieldManager\n * manage native yield staking: modify reserve parameters, set yield pools, set yield receiver addresses \n * operate native yield staking: stake and unstake, collect yield, pause and unpause, ossify yield managers ",
"accounts": [
{
"address": "eth:0x892bb7EeD71efB060ab90140e7825d8127991DD3",
"type": "Contract",
"isVerified": true,
"name": "0x892b…1DD3",
"url": "https://etherscan.io/address/0x892bb7EeD71efB060ab90140e7825d8127991DD3"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x1f0cdfb6aa74293E06f3A6D3B7958b6d36563c4f",
"type": "EOA",
"isVerified": true,
"name": "0x1f0c…3c4f",
"url": "https://etherscan.io/address/0x1f0cdfb6aa74293E06f3A6D3B7958b6d36563c4f"
},
{
"address": "eth:0x497515578b0BE54d2f0f32cF3F08B85Bf8cEB6aB",
"type": "EOA",
"address": "eth:0xD6481cC92eD746EbC679788654723Ce49D45EbeA",
"type": "Contract",
"isVerified": true,
"name": "0x4975…B6aB",
"url": "https://etherscan.io/address/0x497515578b0BE54d2f0f32cF3F08B85Bf8cEB6aB"
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0xD30373335C6d71499EE6CDcF832b5BcB731BAe8d",
"type": "EOA",
"isVerified": true,
"name": "0xD303…Ae8d",
"url": "https://etherscan.io/address/0xD30373335C6d71499EE6CDcF832b5BcB731BAe8d"
},
{
"address": "eth:0x535dE1e2A961529AA84EF208981f8cF4e7dcbdF5",
"type": "EOA",
"isVerified": true,
"name": "0x535d…bdF5",
"url": "https://etherscan.io/address/0x535dE1e2A961529AA84EF208981f8cF4e7dcbdF5"
},
{
"address": "eth:0xC263178AC471C4411abAf5c22cD4D8D67033bc82",
"type": "EOA",
"isVerified": true,
"name": "0xC263…bc82",
"url": "https://etherscan.io/address/0xC263178AC471C4411abAf5c22cD4D8D67033bc82"
},
{
"address": "eth:0x9376c137AF5124FFc39bD8940A3D88D1cd508992",
"type": "EOA",
"isVerified": true,
"name": "0x9376…8992",
"url": "https://etherscan.io/address/0x9376c137AF5124FFc39bD8940A3D88D1cd508992"
},
{
"address": "eth:0x4CB4da1D1C198E506031C0Aa8480BA8b57C0fAD4",
"type": "EOA",
"isVerified": true,
"name": "0x4CB4…fAD4",
"url": "https://etherscan.io/address/0x4CB4da1D1C198E506031C0Aa8480BA8b57C0fAD4"
},
{
"address": "eth:0x99234cd9B532F30538ac797D33c212e3B69Fd087",
"address": "eth:0x0F4df4939a6B126a088A40B4Bbf9F30337ACBFE4",
"type": "EOA",
"isVerified": true,
"name": "0x9923…d087",
"url": "https://etherscan.io/address/0x99234cd9B532F30538ac797D33c212e3B69Fd087"
"name": "0x0F4d…BFE4",
"url": "https://etherscan.io/address/0x0F4df4939a6B126a088A40B4Bbf9F30337ACBFE4"
},
{
"address": "eth:0xB4dAebe4D01f467701F95f0196fc29033c54dBcb",
"type": "EOA",
"isVerified": true,
"name": "0xB4dA…dBcb",
"url": "https://etherscan.io/address/0xB4dAebe4D01f467701F95f0196fc29033c54dBcb"
}
],
"discoveryDrivenData": true
},
{
"id": "Linea Multisig 2",
"name": "Linea Multisig 2",
"description": "A Multisig with 3/5 threshold. It uses the following modules: Delay (A simple Safe module for that can queue and execute transactions as Linea Multisig 2 after a delay of currently 3mo, if registered as a module there).\n* Can interact with TokenBridge\n * can prevent tokens that have not been bridged already from being bridged by assigning them a reserved status \n * can remove the reserved status from a token, meaning that it is allowed to be bridged again \n * can set custom ERC20 contracts for specific ERC20s \n* Can interact with Delay\n * enable/disable the module, set delays and expiration of transactions, set the target \n* Can interact with Timelock\n * propose transactions ",
"accounts": [
{
"address": "eth:0xB8F5524D73f549Cf14A0587a3C7810723f9c0051",
"type": "Contract",
"isVerified": true,
"name": "0xB8F5…0051",
"url": "https://etherscan.io/address/0xB8F5524D73f549Cf14A0587a3C7810723f9c0051"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x3acC729EdE75355EDab57aB82bEb32011cB1B079",
"type": "EOA",
"isVerified": true,
"name": "0x3acC…B079",
"url": "https://etherscan.io/address/0x3acC729EdE75355EDab57aB82bEb32011cB1B079"
},
{
"address": "eth:0x727833aB68F32a7f2ab96f15aD67336660eCBBD0",
"type": "EOA",
"isVerified": true,
"name": "0x7278…BBD0",
"url": "https://etherscan.io/address/0x727833aB68F32a7f2ab96f15aD67336660eCBBD0"
},
{
"address": "eth:0x7E55b79A01BD9125CD213Bc9F533d21Eb3bD68c5",
"type": "EOA",
"isVerified": true,
"name": "0x7E55…68c5",
"url": "https://etherscan.io/address/0x7E55b79A01BD9125CD213Bc9F533d21Eb3bD68c5"
},
{
"address": "eth:0xA9714aE1A9FBd20E1bc0BD03A1B7755aBF73A451",
"type": "EOA",
"isVerified": true,
"name": "0xA971…A451",
"url": "https://etherscan.io/address/0xA9714aE1A9FBd20E1bc0BD03A1B7755aBF73A451"
},
{
"address": "eth:0x0645A95411C3431BB2fc58Fa61BC837FFA2e12F2",
"type": "EOA",
"isVerified": true,
"name": "0x0645…12F2",
"url": "https://etherscan.io/address/0x0645A95411C3431BB2fc58Fa61BC837FFA2e12F2"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/4 threshold. \nMember of Linea Security Council.\n",
"accounts": [
{
"address": "eth:0xD6481cC92eD746EbC679788654723Ce49D45EbeA",
"type": "Contract",
"isVerified": true,
"name": "0xD648…EbeA",
"url": "https://etherscan.io/address/0xD6481cC92eD746EbC679788654723Ce49D45EbeA"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBEA0056b6d445B8c203428c51664f60B0FE42c77",
"type": "EOA",
"isVerified": true,
"name": "0xBEA0…2c77",
"url": "https://etherscan.io/address/0xBEA0056b6d445B8c203428c51664f60B0FE42c77"
},
{
"address": "eth:0xaa8fCd4955e46C0f6A58f84c5c969660b49e4CF2",
"type": "EOA",
"isVerified": true,
"name": "0xaa8f…4CF2",
"url": "https://etherscan.io/address/0xaa8fCd4955e46C0f6A58f84c5c969660b49e4CF2"
},
{
"address": "eth:0xd7dE9aDf57C6817C90FF91D49fF1Ab7c2549a1eA",
"type": "EOA",
"isVerified": true,
"name": "0xd7dE…a1eA",
"url": "https://etherscan.io/address/0xd7dE9aDf57C6817C90FF91D49fF1Ab7c2549a1eA"
},
{
"address": "eth:0xb6Ff69ac218C0a399e22660214273DB1A2cE140b",
"type": "EOA",
"isVerified": true,
"name": "0xb6Ff…140b",
"url": "https://etherscan.io/address/0xb6Ff69ac218C0a399e22660214273DB1A2cE140b"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x2532bfdc9Ba58B13358A9C5C05136d6938Bc42d0",
"type": "EOA",
"isVerified": true,
"name": "0x2532…42d0",
"url": "https://etherscan.io/address/0x2532bfdc9Ba58B13358A9C5C05136d6938Bc42d0"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenBridge\n * can pause the bridge \n* Can interact with LineaRollup\n * pause the rollup for 2d, followed by 2d cooldown, during which the rollup cannot be paused, except by the Security Council ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-3",
"name": "EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x46d2F319fd42165D4318F099E143dEA8124E9E3e",
"type": "EOA",
"isVerified": true,
"name": "0x46d2…9E3e",
"url": "https://etherscan.io/address/0x46d2F319fd42165D4318F099E143dEA8124E9E3e"
},
{
"address": "eth:0x52FF08F313A00A54e3Beffb5C4a7F7446eFb6754",
"type": "EOA",
"isVerified": true,
"name": "0x52FF…6754",
"url": "https://etherscan.io/address/0x52FF08F313A00A54e3Beffb5C4a7F7446eFb6754"
}
],
"chain": "ethereum",
"description": "* An Operator - acting directly",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0xcEE1f08Bcae342E950e88c209F7e6327ABB6d448",
"type": "EOA",
"isVerified": true,
"name": "0xcEE1…d448",
"url": "https://etherscan.io/address/0xcEE1f08Bcae342E950e88c209F7e6327ABB6d448"
}
],
"chain": "ethereum",
"description": "* Can interact with LineaRollup\n * send ETH from the rollup bridge to the YieldManager \n* Can interact with YieldManager\n * operate native yield staking: stake and unstake, collect yield, pause and unpause, ossify yield managers ",
"discoveryDrivenData": true
}
]
},
"linea": {
"roles": [],
"actors": [
{
"id": "Linea Multisig 4",
"name": "Linea Multisig 4",
"description": "A Multisig with 3/5 threshold. \n* Can interact with TokenBridge\n * can prevent tokens that have not been bridged already from being bridged by assigning them a reserved status \n * can remove the reserved status from a token, meaning that it is allowed to be bridged again \n * can set custom ERC20 contracts for specific ERC20s \n* Can interact with L2Timelock\n * propose transactions ",
"accounts": [
{
"address": "linea:0xB8F5524D73f549Cf14A0587a3C7810723f9c0051",
"type": "Contract",
"isVerified": true,
"name": "0xB8F5…0051",
"url": "https://lineascan.build/address/0xB8F5524D73f549Cf14A0587a3C7810723f9c0051"
}
],
"chain": "linea",
"references": [],
"participants": [
{
"address": "linea:0x3acC729EdE75355EDab57aB82bEb32011cB1B079",
"type": "EOA",
"isVerified": true,
"name": "0x3acC…B079",
"url": "https://lineascan.build/address/0x3acC729EdE75355EDab57aB82bEb32011cB1B079"
},
{
"address": "linea:0x727833aB68F32a7f2ab96f15aD67336660eCBBD0",
"type": "EOA",
"isVerified": true,
"name": "0x7278…BBD0",
"url": "https://lineascan.build/address/0x727833aB68F32a7f2ab96f15aD67336660eCBBD0"
},
{
"address": "linea:0x7E55b79A01BD9125CD213Bc9F533d21Eb3bD68c5",
"type": "EOA",
"isVerified": true,
"name": "0x7E55…68c5",
"url": "https://lineascan.build/address/0x7E55b79A01BD9125CD213Bc9F533d21Eb3bD68c5"
},
{
"address": "linea:0xA9714aE1A9FBd20E1bc0BD03A1B7755aBF73A451",
"type": "EOA",
"isVerified": true,
"name": "0xA971…A451",
"url": "https://lineascan.build/address/0xA9714aE1A9FBd20E1bc0BD03A1B7755aBF73A451"
},
{
"address": "linea:0x0645A95411C3431BB2fc58Fa61BC837FFA2e12F2",
"type": "EOA",
"isVerified": true,
"name": "0x0645…12F2",
"url": "https://lineascan.build/address/0x0645A95411C3431BB2fc58Fa61BC837FFA2e12F2"
}
],
"discoveryDrivenData": true
},
{
"id": "Linea Multisig 3",
"name": "Linea Multisig 3",
"description": "A Multisig with 5/9 threshold. It uses the following modules: L2Roles (The Zodiac 'Roles' module for Safe multisigs allows defining roles that can call preconfigured targets on behalf of the Gnosis Safe).\n* Can upgrade **with no delay**\n * TokenBridge [via: L2Timelock → ProxyAdmin]\n * L2MessageService [via: L2Timelock → ProxyAdmin]\n * L2USDCBridge [via: ProxyAdmin]\n* Can interact with TokenBridge\n * can pause the bridge \n * can pause token bridging actions initiated from the other layer \n * can pause token bridging actions initiated from this layer \n * can prevent tokens that have not been bridged already from being bridged by assigning them a reserved status \n * can remove the reserved status from a token, meaning that it is allowed to be bridged again \n * can set custom ERC20 contracts for specific ERC20s \n * can set the contract used as the source of truth from crosschain messages \n * can unpause token bridging actions initiated from the other layer \n * can unpause token bridging actions initiated from this layer \n * manage all critical access control roles and permissions (full admin of the main bridge escrow) \n* Can interact with L2Timelock\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: L2Timelock]\n * propose transactions \n* Can interact with UpgradeableBeacon\n * change the beacon implementation ",
"accounts": [
{
"address": "linea:0xf5cc7604a5ef3565b4D2050D65729A06B68AA0bD",
"type": "Contract",
"isVerified": true,
"name": "0xf5cc…A0bD",
"url": "https://lineascan.build/address/0xf5cc7604a5ef3565b4D2050D65729A06B68AA0bD"
}
],
"chain": "linea",
"references": [],
"participants": [
{
"address": "linea:0x1f0cdfb6aa74293E06f3A6D3B7958b6d36563c4f",
"type": "EOA",
"isVerified": true,
"name": "0x1f0c…3c4f",
"url": "https://lineascan.build/address/0x1f0cdfb6aa74293E06f3A6D3B7958b6d36563c4f"
},
{
"address": "linea:0xD30373335C6d71499EE6CDcF832b5BcB731BAe8d",
"type": "EOA",
"isVerified": true,
"name": "0xD303…Ae8d",
"url": "https://lineascan.build/address/0xD30373335C6d71499EE6CDcF832b5BcB731BAe8d"
},
{
"address": "linea:0x497515578b0BE54d2f0f32cF3F08B85Bf8cEB6aB",
"address": "linea:0xD6481cC92eD746EbC679788654723Ce49D45EbeA",
"type": "EOA",
"isVerified": true,
"name": "0x4975…B6aB",
"url": "https://lineascan.build/address/0x497515578b0BE54d2f0f32cF3F08B85Bf8cEB6aB"
"name": "0xD648…EbeA",
"url": "https://lineascan.build/address/0xD6481cC92eD746EbC679788654723Ce49D45EbeA"
},
{
"address": "linea:0x4CB4da1D1C198E506031C0Aa8480BA8b57C0fAD4",
"type": "EOA",
"isVerified": true,
"name": "0x4CB4…fAD4",
"url": "https://lineascan.build/address/0x4CB4da1D1C198E506031C0Aa8480BA8b57C0fAD4"
},
{
"address": "linea:0xB4dAebe4D01f467701F95f0196fc29033c54dBcb",
"type": "EOA",
"isVerified": true,
"name": "0xB4dA…dBcb",
"url": "https://lineascan.build/address/0xB4dAebe4D01f467701F95f0196fc29033c54dBcb"
},
{
"address": "linea:0x9376c137AF5124FFc39bD8940A3D88D1cd508992",
"type": "EOA",
"isVerified": true,
"name": "0x9376…8992",
"url": "https://lineascan.build/address/0x9376c137AF5124FFc39bD8940A3D88D1cd508992"
},
{
"address": "linea:0x535dE1e2A961529AA84EF208981f8cF4e7dcbdF5",
"type": "EOA",
"isVerified": true,
"name": "0x535d…bdF5",
"url": "https://lineascan.build/address/0x535dE1e2A961529AA84EF208981f8cF4e7dcbdF5"
},
{
"address": "linea:0xC263178AC471C4411abAf5c22cD4D8D67033bc82",
"type": "EOA",
"isVerified": true,
"name": "0xC263…bc82",
"url": "https://lineascan.build/address/0xC263178AC471C4411abAf5c22cD4D8D67033bc82"
},
{
"address": "linea:0x99234cd9B532F30538ac797D33c212e3B69Fd087",
"address": "linea:0x0F4df4939a6B126a088A40B4Bbf9F30337ACBFE4",
"type": "EOA",
"isVerified": true,
"name": "0x9923…d087",
"url": "https://lineascan.build/address/0x99234cd9B532F30538ac797D33c212e3B69Fd087"
"name": "0x0F4d…BFE4",
"url": "https://lineascan.build/address/0x0F4df4939a6B126a088A40B4Bbf9F30337ACBFE4"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "linea:0x2532bfdc9Ba58B13358A9C5C05136d6938Bc42d0",
"type": "EOA",
"isVerified": true,
"name": "0x2532…42d0",
"url": "https://lineascan.build/address/0x2532bfdc9Ba58B13358A9C5C05136d6938Bc42d0"
}
],
"chain": "linea",
"description": "* Can interact with TokenBridge\n * can pause the bridge ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "linea:0x2b0F9C76970975aec03784EFd763623757EF7652",
"type": "EOA",
"isVerified": true,
"name": "0x2b0F…7652",
"url": "https://lineascan.build/address/0x2b0F9C76970975aec03784EFd763623757EF7652"
}
],
"chain": "linea",
"description": "* Can interact with L2MessageService\n * Can anchor L1 data on the L2. A check is supposed to be added to the proof system on L1 so that it is not possible to settle if the anchor is not correct. The function is permissioned because otherwise anyone can cause a liveness failure by posting an invalid anchor ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "linea:0x453B3A4b4d64B4E6f472A306c3D4Fc318C34bbA8",
"type": "EOA",
"isVerified": true,
"name": "0x453B…bbA8",
"url": "https://lineascan.build/address/0x453B3A4b4d64B4E6f472A306c3D4Fc318C34bbA8"
}
],
"chain": "linea",
"description": "* Can interact with L2Roles\n * can pause the L2MessageService, the TokenBridge and the L2USDCBridge ",
"discoveryDrivenData": true
},
{
"id": "EOA-8",
"name": "EOA 8",
"accounts": [
{
"address": "linea:0x97643DD2dFE4dd0b64d43504BAC4ADb2923fdf7a",
"type": "EOA",
"isVerified": true,
"name": "0x9764…df7a",
"url": "https://lineascan.build/address/0x97643DD2dFE4dd0b64d43504BAC4ADb2923fdf7a"
}
],
"chain": "linea",
"description": "* Can interact with L2Roles\n * can mint XP soulbound tokens as part of the Voyage campaign ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1776857404,
"baseTimestamp": 1777891456,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -2
+4 -2
{
"addresses": {
"arbitrum": [
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d"
],
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xc326D023758d7D212d529D1E58D7f271CAe49fcf",
"arb1:0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **validators**: EOA 3",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x1d182075d07744D71E37f77f1654165f6DAFad08"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x79177caeDf321963EFed06E562017181B2e8aDC7"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0x645341A2C76cD94324cBA658c19Acca2297b619C"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607"
]
},
{
"timestamp": 1751386630,
"transactionHash": "0x6e4d22b6b61eeffdbd42e8fe52446bb966dd46592ba723bc43edaf1a7cc4f678",
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **batchPosterManager**: EOA 2\n * **batchPosters**: EOA 2",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x935239e066F4F449D87D600e6d7c1a4F24c50f97"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x3bD530a9a48F17052D5d3c30e7582Fcb42BdFD23"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x84c179B5651A762a81A490BA03D27997A5922EC1"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **executors**: Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x92ff91308F5f1036435f23c2F4F136Bb7475425d#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x235000876bd58336C802B3546Fc0250f285fCc79",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x2675b9DEb473ECaC13ddd71dF8A0Ef13FeF6a75D"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0xdec03E497222017550Fb83273d8FB4546eaDA625"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x235000876bd58336C802B3546Fc0250f285fCc79#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF#code"
},
{
"name": "NitroEnclaveVerifier",
"isVerified": true,
"address": "arb1:0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n* Roles:\n * **owner**: EOA 4",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x59CDE86f1a538a7a2329269d3704CA302DF23736",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x59CDE86f1a538a7a2329269d3704CA302DF23736#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "arb1:0x69523d25E25e5c78d828Df90459b75F189D40Cf7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x69523d25E25e5c78d828Df90459b75F189D40Cf7#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0x7E67B50d510929610f840fb09707feA01b8E457B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7E67B50d510929610f840fb09707feA01b8E457B#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0x9676D55Ccd46ce72235b16bA645008D1D3350B14",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9676D55Ccd46ce72235b16bA645008D1D3350B14#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x9e83136d4B3AD04C766591EA51712F9aEa3194C0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9e83136d4B3AD04C766591EA51712F9aEa3194C0#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0xe3b13e7b160aE4b799A7B3F9877316e717706291",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe3b13e7b160aE4b799A7B3F9877316e717706291#code"
},
{
"name": "EspressoSGXTEEVerifier",
"isVerified": true,
"address": "arb1:0xEA25045bC30ceE23A280c51020F0bBb78781A297",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an Intel SGX TEE.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEA25045bC30ceE23A280c51020F0bBb78781A297#code"
},
{
"name": "EspressoNitroTEEVerifier",
"isVerified": true,
"address": "arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xF99De72165cB3A56766e118B3a20874d4A0aCa89#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"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://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 5, EOA 6",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
}
],
"base": [
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayBase",
"isVerified": true,
"address": "base:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "BaseBlobstream",
"isVerified": true,
"address": "base:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6"
],
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710651207,
"transactionHash": "0x4549f6dd026054361c6ec3372f446d9a594205d6a2681001f4d3567ef55d8d73",
"implementations": [
"base:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724833,
"transactionHash": "0xcc77a9f79cc2dc869a5b2afcb9abe14014680e03797e00244a4580deb278eee8",
"implementations": [
"base:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698369,
"transactionHash": "0xd2efcdcc2ae2c8725a9d68bcce93edf7f4e2c5326ec75e9aea9cbdb6dfc7c6d3",
"implementations": [
"base:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166563,
"transactionHash": "0x972e1b10b3fd4c52bbd75c6215f12438b15229c9f609ad42273eb3985d8e4767",
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 7, EOA 8",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
}
],
"ethereum": [
{
"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": "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": "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": "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": "EthereumBlobstream",
"isVerified": true,
"address": "eth:0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8bF34D8df1eF0A8A7f27fC587202848E528018E6"
],
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717615307,
"transactionHash": "0xf156e666fc403369415601ab683befc8e177f698b69a4c4c313706127ec18a86",
"implementations": [
"eth:0x41a87C543EBcbD93706CF5260AD057D9eCBA1caE"
]
},
{
"timestamp": 1724698523,
"transactionHash": "0x2cbc956737b46bd304d04f3051a65e311686d35792c54c67030d0c5417e76508",
"implementations": [
"eth:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166527,
"transactionHash": "0xcc2a77da632e84e5fb17e863ec744d5f0921b70c191487179dd9e28ab855a3be",
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 10, EOA 9",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe#code"
}
]
},
"escrows": [
{
"address": "0xE1d32C985825562edAa906fAC39295370Db72195",
"sinceTimestamp": 1712019082,
"tokens": [
"MOLTEN"
],
"contract": {
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows MOLTEN sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"sinceTimestamp": 1712019098,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "Celestia Blobstream DA bridge program",
"description": "ZK-friendly implementation of Celestia Blobstream DA bridge that proves that enough Celestia validators have confirmed a given data root.",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "notVerified",
"hash": "0x00de39c136b88dfeacb832629e21a9667935bc0e74aaa21292e4f237d79d0bef"
},
{
"title": "Nitro TEE Verifer",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/f6f9410227adc63ff5117ce3f6f7e0f155083389/crates/sp1-methods/sp1-verifier",
"description": "Verifies correctness of a single TEE attestation for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "notVerified",
"verificationStatus": "unsuccessful",
"verificationSteps": "According to Automata Network, the linked program was compiled in a non-reporducible way (without docker). The compiled binary could not be reproduced.",
"hash": "0x00e874289e8c7f42381b6220f438801d2d1478dc8230f866a31e5ceec6e93322"
},
{
"title": "Nitro TEE Aggregated Verifer",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/f6f9410227adc63ff5117ce3f6f7e0f155083389/crates/sp1-methods/sp1-aggregator",
"description": "Verifies correctness of several aggregated TEE attestations for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "notVerified",
"verificationStatus": "unsuccessful",
"verificationSteps": "According to Automata Network, the linked program was compiled in a non-reporducible way (without docker). The compiled binary could not be reproduced.",
"hash": "0x002bb66c60302a81a621d7899e3f6ee1d0db9fb1eae5d1e80e94a33cb1e24922"
}
],
"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": [
"arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D"
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1777546417,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777546409,
"baseTimestamp": 1777891517,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777544162,
"baseTimestamp": 1777891441,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+6 -6
+6 -6
{
"addresses": {
"ethereum": [
{
"name": "TaikoRisc0Verifier",
"isVerified": true,
"address": "eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using RISC Zero.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b#code"
},
{
"name": "MainnetInbox",
"isVerified": true,
"address": "eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772642207,
"transactionHash": "0x7576f1179250453948b37648a748aaade28c40b33e358fa0cbe21be6b0368601",
"implementations": [
"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42"
]
}
],
"description": "The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. It manages bonds, validates batch parameters, and acts as the state machine for the L2.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"name": "TaikoSP1Verifier",
"isVerified": true,
"address": "eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using SP1.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x96337327648dcFA22b014009cf10A2D5E2F305f6#code"
},
{
"name": "MainnetVerifier",
"isVerified": true,
"address": "eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Enforces the Taiko Multiprover policy and routes to the downstream router contracts.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9cAa4948381590900FCdd8a4F06EB24138eD665d#code"
},
{
"name": "ProverWhitelist",
"isVerified": true,
"address": "eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772641607,
"transactionHash": "0x9ae9f5d95306d569099fbf42c0aa730a6b6e84e18f35e5f1a1374025597762d5",
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
}
],
"description": "Defines the whitelist of addresses allowed to prove proposals. Non-whitelisted provers must wait for the permissionless proving delay before they can submit proofs.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO\n * **proverManager**: Taiko Multisig",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
},
{
"name": "MainnetERC20Vault",
"isVerified": true,
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x109f0a0ff2b3b57f3a94bc1dd39159a7e3af9ec0141be56d49d7bb1db94279c2",
"implementations": [
"eth:0x15D9F7e12aEa18DAEF5c651fBf97567CAd4a4BEc"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xC722d9f3f8D60288589F7f67a9CFAd34d3B9bf8E"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x4F750D13005444407D44dAA30922128db0374ca1"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0xF8bdaC4E68bA2595Be8381aaa5456917e374E737"
]
},
{
"timestamp": 1718023547,
"transactionHash": "0x42a1dacf03a4032209ca4a6b922ffe2ebb34925c16a6632d8590cf3374ae59d8",
"implementations": [
"eth:0x75b5E276c5C1e9378E899cb3A87977421980Eb22"
]
},
{
"timestamp": 1719903815,
"transactionHash": "0x13f54109cb7f7507ad03562b06ea8d8b472043186e44252302583bc64acfb20b",
"implementations": [
"eth:0xa303784B0557BF1F1FB8b8abEF2B18a005722689"
]
},
{
"timestamp": 1721133959,
"transactionHash": "0xee632b50626beb2f7db84c9c7f303f29366f86dfaccd24ddd831ceac714c20e5",
"implementations": [
"eth:0x7ACFBb369a552C45d402448A4d64b9da54C3FF30"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63"
]
}
],
"description": "Shared vault for Taiko chains for bridged ERC20 tokens.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1748146475,
"transactionHash": "0x5da0579fa85d4712efb3d66c95ee884d73259ede79760d25f685e4c3c3c4c0c1",
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\nMember of Taiko Foundation Treasury Multisig.\n* Roles:\n * **admin**: DAO\n * **owner**: DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746942803,
"transactionHash": "0x8328e607699f67108c9b259225d5316a079ad52e648e6188c3fce7bf99abec38",
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DAO\n * **owner**: DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3#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": "SgxVerifier",
"isVerified": true,
"address": "eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x08568Df252ecf37D6C3eFD24f6ca3688118697F1#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 3d.\n* Roles:\n * **canceller**: EOA 2\n * **defaultAdmin**: TimelockController; ultimately EOA 2\n * **executor**: EOA 2\n * **proposer**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0b144E07A0826182B6b59788c34b32Bfa86Fb711#code"
},
{
"name": "SignerList",
"isVerified": true,
"address": "eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x584fE70fE82F728f0Fe26488857D623f3B59E070"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x584fE70fE82F728f0Fe26488857D623f3B59E070"
]
}
],
"description": "A signer list for registering agents, similar to a Multisig.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F95E6968EC1B28c794CF1aD99609431de5179c2#code"
},
{
"name": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747268759,
"transactionHash": "0x3b734f101aeef12dbbef6a43abae4176ac967c5ab8ea0194c6d890dafd6573ad",
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
}
],
"description": "Contract managing SGX attestation certificates.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261#code"
},
{
"name": "Taiko Token",
"isVerified": true,
"address": "eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714033799,
"transactionHash": "0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34",
"implementations": [
"eth:0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb"
]
},
{
"timestamp": 1715406371,
"transactionHash": "0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c",
"implementations": [
"eth:0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c"
]
},
{
"timestamp": 1716969803,
"transactionHash": "0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2",
"implementations": [
"eth:0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F"
]
},
{
"timestamp": 1717732931,
"transactionHash": "0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04",
"implementations": [
"eth:0x55833dA2962c2330ccCF043ff8037e6D2939bCF6"
]
},
{
"timestamp": 1719904547,
"transactionHash": "0xc9f468d33d8d55911e4e5b5c301ed244a5f81ab0f389d2b4f398eb5b89d417ef",
"implementations": [
"eth:0xcfe803378D79d1180EbF030455040EA6513869dF"
]
},
{
"timestamp": 1747097243,
"transactionHash": "0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95",
"implementations": [
"eth:0x87C752b0F70cAa237Edd7571B0845470A37DE040"
]
},
{
"timestamp": 1747285931,
"transactionHash": "0x986fc2c7ae945cdd358b2f2ae54364b350026f965f5861ed470f78e145f12626",
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
}
],
"description": "ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a098988600d87650Fb061FfAff08B97149Fa84D#code"
},
{
"name": "EmergencyMultisig",
"isVerified": true,
"address": "eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd#code"
},
{
"name": "EncryptionRegistry",
"isVerified": true,
"address": "eth:0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A registry for signers (of the Security Council) to appoint agents to operate on their behalf. These agents can also register their encryption keys for encrypted emergency proposal support.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1#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": "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": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550639,
"transactionHash": "0x207dec76298211a2d988b0de3e9a3f8da0edb4524a011e72f28200be08edd4c6",
"implementations": [
"eth:0xEE8FC1dbb8D345f5bF35dFb939C6f9EdC5fCDAFc"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xde1b1FBe7D721af4A56651272ef91A59B7303323"
]
},
{
"timestamp": 1715787263,
"transactionHash": "0x46a6d47c15505a1259c64d1e09353680e525b2706dd9e095e15019dda7c1b295",
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
}
],
"description": "Contract managing SGX attestation certificates.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8d7C954960a36a7596d7eA4945dDf891967ca8A3#code"
},
{
"name": "RiscZeroVerifierRouter",
"isVerified": true,
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (TimelockController).\n* Roles:\n * **owner**: TimelockController; ultimately EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319#code"
},
{
"name": "QuotaManager",
"isVerified": true,
"address": "eth:0x91f67118DD47d502B1f0C354D0611997B022f29E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xdb627bfD79e81fE42138Eb875287F94FAd5BBc64"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1715578067,
"transactionHash": "0x03df9b2af0bebae6b9a3d413c98e53ccd3c629e10010f2c1c14d1c6da630a7d7",
"implementations": [
"eth:0x49c5e5F131314Bb24b17E249960F8B12F925ef22"
]
},
{
"timestamp": 1717663871,
"transactionHash": "0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131",
"implementations": [
"eth:0xdb627bfD79e81fE42138Eb875287F94FAd5BBc64"
]
}
],
"description": "Defines withdrawal limits per token.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x91f67118DD47d502B1f0C354D0611997B022f29E#code"
},
{
"name": "OptimisticTokenVotingPlugin",
"isVerified": true,
"address": "eth:0x989E348275b659d36f8751ea1c10D146211650BE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
}
],
"description": "An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x989E348275b659d36f8751ea1c10D146211650BE#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9F9994Eb4Cb5200198FEfb470f8b50301662e696#code"
},
{
"name": "SgxVerifier",
"isVerified": true,
"address": "eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752#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": "MainnetBridge",
"isVerified": true,
"address": "eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x99673a767d36f5f3bc4af415072f97f344b6a5ec39e0d85eb799691787b1b98b",
"implementations": [
"eth:0x91d593d34f2E1904cDCe3D5290a74563F87bCF6f"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0x4A1091c2fb37D9C4a661c2384Ff539d94CCF853D"
]
},
{
"timestamp": 1716358991,
"transactionHash": "0x5a60c5815947a199cc84e1bc75539e01a202597b20c1f87bd9d02f8be6453abd",
"implementations": [
"eth:0xc71CC3B0a47149878fad337fb2ca54E546A645ba"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x02F21B4C3d4dbfF70cE851741175a727c8D782Be"
]
},
{
"timestamp": 1716958835,
"transactionHash": "0x8a380a25d03a740d9535dfc3e2fc4f6960e22d49ad88b8d85f59af4013aedf87",
"implementations": [
"eth:0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0"
]
},
{
"timestamp": 1717148087,
"transactionHash": "0xf21f6bf720767db3bc9b63ef69cacb20340bdedfb6589e6a4d11fe082dfa7bd6",
"implementations": [
"eth:0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5"
]
},
{
"timestamp": 1717481351,
"transactionHash": "0xc0ba6558642b93ee892bee0705dbcfb5130c53637e6266bfa5e3a6501167d6f2",
"implementations": [
"eth:0x3c326483EBFabCf3252205f26dF632FE83d11108"
]
},
{
"timestamp": 1717732931,
"transactionHash": "0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04",
"implementations": [
"eth:0xD28f2c26aD8bA88b0691F6BB41Ff021878052561"
]
},
{
"timestamp": 1719502583,
"transactionHash": "0x2f14829c3da1a755a74948d5716a625256ae7e2481e538b0660a8da11c84dc2e",
"implementations": [
"eth:0x40f8Be2969D0D5717768F6799c8840e5D5D603F7"
]
},
{
"timestamp": 1719903815,
"transactionHash": "0x13f54109cb7f7507ad03562b06ea8d8b472043186e44252302583bc64acfb20b",
"implementations": [
"eth:0x01E7D369a619eF1B0E92563d8737F42C09789986"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0xAc96FF285158bceBB8573D20d853e86BB2915aF3"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F"
]
}
],
"description": "Shared bridge for Taiko chains for bridged ETH.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC#code"
},
{
"name": "Multisig",
"isVerified": true,
"address": "eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7dA1C25E915438720692bC55eb3a7170cA90321#code"
},
{
"name": "L1SharedAddressManager",
"isVerified": true,
"address": "eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0xf83131446154db1fb4013c20e9468c36f71085dbdf4304f8e2ef5ac13f2e3670",
"implementations": [
"eth:0x9cA1Ab10c9fAc5153F8b78E67f03aAa69C9c6A15"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xF1cA1F1A068468E1dcF90dA6add185467de80943"
]
},
{
"timestamp": 1716722231,
"transactionHash": "0xe1ef58455de0b0331228e487d54720290ed8a73f709d2146bd43330d4a360bd3",
"implementations": [
"eth:0x9496502d7D121B3D5eF25cA6c58d4f7593398a17"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0x2f7126f78365AD54EAB26fD7faEc60435008E2fD"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449"
]
}
],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa#code"
},
{
"name": "PreconfWhitelist",
"isVerified": true,
"address": "eth:0xFD019460881e6EeC632258222393d5821029b2ac",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753275179,
"transactionHash": "0x2d127d401f9d22fd4c4f8c14773f2e98e9a3e87837f78bb1d2881a8fcb91cd59",
"implementations": [
"eth:0x86f0AeFA26A1447bbE62bd2bE1D30ff3353B88fB"
]
},
{
"timestamp": 1754913371,
"transactionHash": "0x1000b14e86d8db17931f65e877e2eb13cb3990d0a129eee1aff21ce6ba96d2cf",
"implementations": [
"eth:0x44eC275996BD69361EF062ed488882a58256CF11"
]
},
{
"timestamp": 1756244927,
"transactionHash": "0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00",
"implementations": [
"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc"
]
},
{
"timestamp": 1774964687,
"transactionHash": "0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36",
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
}
],
"description": "Contains the whitelist of addresses allowed to propose batches on L1 and issue preconfirmations. It dynamically selects a single operator for a given epoch using the Ethereum beacon block root as a source of randomness.\n* Roles:\n * **_ejectorManager**: Taiko Multisig\n * **admin**: TaikoDAOController; ultimately DAO\n * **operatorMapping**: EOA 1\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFD019460881e6EeC632258222393d5821029b2ac#code"
}
],
"taiko": [
{
"name": "Anchor",
"isVerified": true,
"address": "taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "taiko",
"description": "Immutable L2 contract that anchors L1 block details to L2 for cross-layer communication and manages EIP-1559 gas pricing for L2 operations.\n",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA#code"
},
{
"name": "DelegateController",
"isVerified": true,
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1748151239,
"transactionHash": "0x2d60398c8f22ebccc3e3dfc5771f95cb104b2ea003230444879b08d0649d01af",
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000001",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802235,
"transactionHash": "0x094dd9452d79cbd74711f2b8065566e4431a05d0727c56d2b38195e40fd62805",
"implementations": [
"taiko:0xf961854D68368cFFc86d90AEe8a19E9781dACA3e"
]
},
{
"timestamp": 1716959027,
"transactionHash": "0x0b5d6acc9c5b8ef193920246081ec5ce7268111acfc1dce1f058bea06f3953c7",
"implementations": [
"taiko:0x98C5De7670aA7d47C6c0551fAD27Bfe464A6751a"
]
},
{
"timestamp": 1717148375,
"transactionHash": "0x4605c4ce594e996bdbdb532a9aefe4fab1ea36f7e2ef63eef56a7e8033810df3",
"implementations": [
"taiko:0x0893c8821Fa358D5f3630695Ce062204814359A1"
]
},
{
"timestamp": 1717486847,
"transactionHash": "0xc77434f4e37959cdc0eac125303b78dd192d8727173373cc7a6158ca7d829dad",
"implementations": [
"taiko:0x8FB67c2C16dc8578b6d69bc668236924f4c1B0f7"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0x878E72f1d435DbACe8B9C62e084c114ffbb84791"
]
},
{
"timestamp": 1719503519,
"transactionHash": "0xd55e1edee71bd71b9bca0d3826f758a46d688b6ffdd4058fccefc98dbed70165",
"implementations": [
"taiko:0xd95435c742c01B0E982913BcA252173Ae96DF61d"
]
},
{
"timestamp": 1719806771,
"transactionHash": "0xdf0348394d5e58f801de917575aafdc1cb55533b14a6e46fd460d1437238dc02",
"implementations": [
"taiko:0x4Ca6bE8C1Ec05beFB216bAEEF9EE36997e35E98E"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
]
}
],
"description": "* Roles:\n * **admin**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000001#code"
},
{
"name": "L2AddressManager",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000006",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x0167000000000000000000000000000000000006"
]
},
"chain": "taiko",
"pastUpgrades": [],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000006#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "taiko",
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n* Roles:\n * **owner**: EOA 3",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28#code"
}
]
},
"escrows": [
{
"address": "0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"sinceTimestamp": 1714550603,
"tokens": [
"ETH"
],
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"sinceTimestamp": 1714550603,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
}
],
"programHashes": [
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0026ff63d649779a5dbc88c3359ab83399a21fb6ef9b7ec082f77a8a465806e7"
},
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x137fb1eb125de6973791186659ab83394d10fdb73e6dfb0205eef514465806e7"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x008e24716118be9594358d8882d93d5425f0827cf0a7a4fd0ea2fc4414debfe7"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x471238b0462fa56506b1b1102d93d5422f8413e7429e93f41d45f88814debfe7"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/batch.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0079682c7b5af614273de79761aaad20d1c8e1a65091388b81be836632d382f8"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/batch.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x3cb4163d56bd850967bcf2ec1aaad20d0e470d324244e22e037d06cc32d382f8"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0002ac747570512099ca19c17f5a3b9f39697e5617a19ff2f2b2464229a50c7c"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x01563a3a5c1448263943382f75a3b9f34b4bf2b05e867fcb65648c8429a50c7c"
},
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x779c032b91d0730ef13b26eafa47b32df7ebdaa4ed766d587fe905530afa2544"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x26abb0237d10e891443e2a76bd3c1f6704c1ad03c07cb2165f4afcfc64b3cee7"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x46efe5e0c74976548ee6856789fbfb4929b8f2f9118a119c57ced6e1062e727b"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0xdfbce2039ad8b78b236b5a9dceba5d8cee0d9e4638fc8f1fe11a0b2d8bfa039e"
}
],
"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",
"eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D"
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1776765734,
"baseTimestamp": 1777882868,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+73 -19
+11 -2
{
"architectureImage": "zkstack-rollup",
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "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.",
"risks": [],
"references": []
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks.",
"risks": [],
"references": [
{
"title": "Withdrawing funds - ZKsync documentation",
"url": "https://docs.zksync.io/zksync-protocol/rollup/bridging-assets"
}
]
},
{
"name": "Forced messaging",
"description": "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 from L1, including all forced withdrawals and deposits. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular message.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force any transaction via L1",
"description": "If a user is censored by the L2 Sequencer, they can try to force their transaction via an L1 queue. Right now there is no mechanism that forces L2 Sequencer to include transactions from the queue in an L2 block. The operator can implement a TransactionFilterer that censors forced transactions.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator refuses to include their transactions."
},
{
"category": "Users can be censored if",
"text": "the operator implements a TransactionFilterer, which is possible without delay."
}
],
"references": [
{
"title": "L1 - L2 interoperability - Developer's documentation",
"url": "https://docs.zksync.io/zksync-protocol/era-vm/contracts/handling-l1-l2-ops"
}
]
},
"operator": {
"name": "The system has a centralized operator",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.\n\nBatch execution is initiated by permissioned executor EOAs, but each batch also requires approval from the sufficient number of EraMultisigValidator members before it can be executed on L1.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
},
{
"category": "Users can be censored if",
"text": "the validator multisig does not approve batch execution."
}
],
"references": []
"references": [
{
"title": "EraMultisigValidator - Etherscan proxy contract",
"url": "https://etherscan.io/address/0xdC26B08F0335b68721F64001C38b05D0BC9B539d"
}
]
},
"stateDerivation": {
"nodeSoftware": "The node software is open-source, and its source code can be found [here](https://github.com/matter-labs/zksync-era).\n The main node software does not rely on Layer 1 (L1) to reconstruct the state, but you can use [this tool](https://github.com/eqlabs/zksync-state-reconstruct) for that purpose. Currently, there is no straightforward method to inject the state into the main node, but ZKsync is actively working on a solution for this.",
"compressionScheme": "Bytecodes undergo compression before deployment on Layer 1 (L1). You can find additional information on this process [here](https://github.com/matter-labs/zksync-era/blob/main/docs/src/guides/advanced/11_compression.md).",
"genesisState": "There have been neither genesis states nor regenesis.",
"dataFormat": "Details on data format can be found [here](https://github.com/matter-labs/zksync-era/blob/main/docs/src/guides/advanced/09_pubdata.md)."
},
"stateValidation": {
"description": "Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.",
"categories": [
{
"title": "Prover Architecture",
"description": "ZKsync Era proof system Boojum can be found [here](https://github.com/matter-labs/era-boojum/tree/main) and contains essential tools like the Prover, the Verifier, and other backend components. The specs of the system can be found [here](https://github.com/matter-labs/zksync-era/tree/main/prover)."
},
{
"title": "ZK Circuits",
"description": "ZKsync Era circuits are built from Boojum and are designed to replicate the behavior of the EVM. The source code can be found [here](https://github.com/matter-labs/era-zkevm_circuits/tree/main). The circuits are checked against tests that can be found [here](https://github.com/matter-labs/era-zkevm_test_harness/tree/main).",
"risks": [
{
"category": "Funds can be lost if",
"text": "the proof system is implemented incorrectly."
}
]
},
{
"title": "Verification Keys Generation",
"description": "SNARK verification keys can be generated and checked against the Ethereum verifier contract using [this tool](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri). The system requires a trusted setup."
}
]
},
"upgradesAndGovernance": "\nThere are two main paths for contract upgrades in the shared ZK stack ecosystem - standard and emergency - both converging on the shared upgrade management contract ProtocolUpgradeHandler.\nThe standard path involves a governance proposal and voting through the DAO, multiple timelock delays and finally approval by the Guardians or 6 SecurityCouncil participants.\nThe emergency path allows for contract upgrades without any delay by the EmergencyUpgradeBoard, which acts as a 3/3 Multisig between SecurityCouncil, Guardians and the FoundationMultisig.\n## Standard path\n### On ZKsync Era\nDelegates can start new proposals by reaching a threshold of 21M ZK tokens on the ZKsync Era Rollup's ZkProtocolGovernor contract.\nThis launches a 3d 'voting delay' after which the 7d voting period starts. During these first two periods, the proposal can be canceled by the proposer or if it falls below the proposing threshold.\nA proposal is only successful if it reaches both quorum (630M ZK tokens) and simple majority. When it reaches quorum, a remaining voting period of 3d is guaranteed by a potential late quorum vote extension.\nIn the successful case, it can be queued in the 0s timelock which forwards it via the Gateway to Ethereum as an L2->L1 log.\n### On Ethereum\nAfter the execution of the proposal-containing batch (3h delay), the proposal is now picked up by the ProtocolUpgradeHandler and enters the 3d 'legal veto period'.\nThis serves as a window in which a veto could be coordinated offchain, to be then enforced by non-approval of Guardians and SecurityCouncil. A threshold of 2 Guardians can extend the veto period to 7d.\nAfter this a proposal enters a *waiting* state of 1mo, from which it can be immediately approved (cancelling the delay) by 6 participants of the SecurityCouncil.\nFor the unlikely case that the Security Council does not approve here, the Guardians can instead approve the proposal, or nobody. In the two latter cases, the waiting period is enforced in full.\nA proposal cannot be actively cancelled in the ProtocolUpgradeHandler, but will expire if not approved within the waiting period. An approved proposal now enters the *pendingExecution* state for a final delay of 1d and can then be executed.\n### Other governance tracks\nThere are two other tracks of Governance also starting with DAO Delegate proposals the ZKsync Era rollup: 1) Token Program Proposals that add new minters, allocations or upgrade the ZK token and\n2) Governance Advisory Proposals that e.g. change the ZK Credo or other offchain Governance Procedures without onchain targets.\nThe protocol for these two other tracks is similar to the first part of the standard path described above (albeit having different quorum and timelock values), and not passing over to the Ethereum L1.\nFurther customizations are that the ZkFoundationMultisig can propose to the ZkTokenGovernor without a threshold and that the Guardians' L2 alias can cancel proposals in the ZkTokenGovernor and the ZkGovOpsGovernor.\n## Emergency path\nSecurityCouncil (9/12), Guardians (5/8) and ZkFoundationMultisig (3/5) form a de-facto 3/3 Multisig\nby pushing an immediate upgrade proposal through the EmergencyUpgradeBoard, which circumvents all delays and executes immediately via the ProtocolUpgradeHandler.\n## Upgrade Delays\nThe cumulative duration of the upgrade paths from the moment of a voted 'successful' proposal is 4d 3h or 8d 3h (depending on Guardians extending the LegalVetoPeriod) for Standard, 0 for Emergency and 1mo 4d for the path in which the SecurityCouncil is not approving the proposal.\n## Freezing\nThe SecurityCouncil can freeze (pause withdrawals and settlement) all chains connected to the current ChainTypeManager.\nEither for a softFreeze of 12h or a hardFreeze of 7d.\nAfter a softFreeze and / or a hardFreeze, a proposal from the EmergencyUpgradeBoard has to be passed before subsequent freezes are possible.\nOnly the SecurityCouncil can unfreeze an active freeze.\n## ZK cluster Admin and Chain Admin\nApart from the paths that can upgrade all shared implementations, the ZK stack governance system defines other roles that can modify the system:\nA single *ZK cluster Admin* role who governs parameters in the shared contracts and a *Chain Admin* role (defined in each chain-specific diamond contract) for managing parameters of each individual ZK chain that builds on the stack.\nThese chain-specific actions include critical operations like setting a transaction filterer that can censor L1 -> L2 messages, changing the DA mode, migrating the chain to a different settlement layer and standard operations like setting fee parameters and adding / removing Validators in the ValidatorTimelock.\nFor rollups, data availability on Ethereum is validated by a RollupL1DAValidator contract (or a RelayedSLDAValidator on the Gateway). Each rollup can become a permanent rollup (through their Chain Admin) which disallows DA changes to non-whitelisted sources or settlement layers in the future.\nThe source of truth for rollup-compliant DA validator contracts is the RollupDAManager contract, which is administered via the ProtocolUpgradeHandler.\nZKsync Era's Chain Admin differs from the others as it also has the above *ZK cluster Admin* role in the shared ZK stack contracts.",
"upgradesAndGovernanceImage": "zkstack"
}
+61 -16
{
"ethereum": {
"roles": [
{
"id": "Validator",
"name": "Validator",
"description": "Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract.",
"accounts": [
{
"address": "eth:0xdC26B08F0335b68721F64001C38b05D0BC9B539d",
"type": "Contract",
"isVerified": true,
"name": "EraMultisigValidator",
"url": "#EraMultisigValidator"
},
{
"address": "eth:0x882A6C2ecbAbfFc40686D599a9375ad3b35427Fd",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1-and-EOA-2"
},
{
"address": "eth:0xc75cDcBEef3aE3365ABF0217815748586F9047F1",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-1-and-EOA-2"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xECE8e30bFc92c2A8e11e6cb2e17B70868572E3f6",
"type": "Contract",
"isVerified": true,
"name": "0xECE8…E3f6",
"url": "https://etherscan.io/address/0xECE8e30bFc92c2A8e11e6cb2e17B70868572E3f6"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 9/12 threshold. \nCustom Multisig implementation that has a general threshold of 9 but also specific thresholds for upgrade approvals (6) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x66E4431266DC7E04E7d8b7FE9d2181253df7F410",
"type": "Contract",
"isVerified": true,
"name": "0x66E4…F410",
"url": "https://etherscan.io/address/0x66E4431266DC7E04E7d8b7FE9d2181253df7F410"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x13f07d9BF17615f6a17F272fe1A913168C275A66",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x13f07d9BF17615f6a17F272fe1A913168C275A66"
},
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x3888777686F0b0d8c3108fc22ad8DE9E049bE26F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x3888777686F0b0d8c3108fc22ad8DE9E049bE26F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x725065b4eB99294BaaE57AdDA9c32e42F453FA8A",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x725065b4eB99294BaaE57AdDA9c32e42F453FA8A"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B39Ea22e838B316Ea7D74e7C4B07d91D51ccA88",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B39Ea22e838B316Ea7D74e7C4B07d91D51ccA88"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "ProxyAdmin",
"name": "ProxyAdmin",
"accounts": [
{
"address": "eth:0x0D8d1be440f997bDB9CA44C0140fD12551f99BBB",
"type": "Contract",
"isVerified": true,
"name": "0x0D8d…9BBB",
"url": "https://etherscan.io/address/0x0D8d1be440f997bDB9CA44C0140fD12551f99BBB"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * EraMultisigValidator ",
"discoveryDrivenData": true
},
{
"id": "EraMultisigValidator",
"name": "EraMultisigValidator",
"description": "A Multisig with 3/8 threshold. \nA multisig wrapper around `ValidatorTimelock` that requires a threshold of approvals before batch execution can proceed, provides additional security through 2FA.\n* A Validator - acting directly",
"accounts": [
{
"address": "eth:0xdC26B08F0335b68721F64001C38b05D0BC9B539d",
"type": "Contract",
"isVerified": true,
"name": "0xdC26…539d",
"url": "https://etherscan.io/address/0xdC26B08F0335b68721F64001C38b05D0BC9B539d"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h. NOTE: This is a modified version of validatorTimelock, where a sufficient number of execution multisig members must approve a batch before execution. Multisig members are kept in a mapping.\n* A Validator - acting directly",
"references": [],
"participants": [
{
"address": "eth:0xCCEfc6dB1010af90AB0Fa0bbBd86F6D8C1627df7",
"type": "EOA",
"isVerified": true,
"name": "0xCCEf…7df7",
"url": "https://etherscan.io/address/0xCCEfc6dB1010af90AB0Fa0bbBd86F6D8C1627df7"
},
{
"address": "eth:0x6d5Cef8F3F998C47a52e27d3e28CaEcc8AdA9693",
"type": "EOA",
"isVerified": true,
"name": "0x6d5C…9693",
"url": "https://etherscan.io/address/0x6d5Cef8F3F998C47a52e27d3e28CaEcc8AdA9693"
},
{
"address": "eth:0x8ffC957cba878cDdF446574e88Cf7e1004fc953F",
"type": "EOA",
"isVerified": true,
"name": "0x8ffC…953F",
"url": "https://etherscan.io/address/0x8ffC957cba878cDdF446574e88Cf7e1004fc953F"
},
{
"address": "eth:0x548409daf1D6766929F3927D1Ca1df0A13129a6b",
"type": "EOA",
"isVerified": true,
"name": "0x5484…9a6b",
"url": "https://etherscan.io/address/0x548409daf1D6766929F3927D1Ca1df0A13129a6b"
},
{
"address": "eth:0x6D290f04A5908F0390647d9903230de3844e5cA0",
"type": "EOA",
"isVerified": true,
"name": "0x6D29…5cA0",
"url": "https://etherscan.io/address/0x6D290f04A5908F0390647d9903230de3844e5cA0"
},
{
"address": "eth:0xd3cA2aDe062d453F410b5C5cfA1B2b89879AbE1b",
"type": "EOA",
"isVerified": true,
"name": "0xd3cA…bE1b",
"url": "https://etherscan.io/address/0xd3cA2aDe062d453F410b5C5cfA1B2b89879AbE1b"
},
{
"address": "eth:0xBBBCA2805c784e59E4eC2880cE63d08C08282726",
"type": "EOA",
"isVerified": true,
"name": "0xBBBC…2726",
"url": "https://etherscan.io/address/0xBBBCA2805c784e59E4eC2880cE63d08C08282726"
},
{
"address": "eth:0xD70528Fc72fB9DAc1bE1b684ed6E3E06196f2D04",
"type": "EOA",
"isVerified": true,
"name": "0xD705…2D04",
"url": "https://etherscan.io/address/0xD70528Fc72fB9DAc1bE1b684ed6E3E06196f2D04"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x882A6C2ecbAbfFc40686D599a9375ad3b35427Fd",
"type": "EOA",
"isVerified": true,
"name": "0x882A…27Fd",
"url": "https://etherscan.io/address/0x882A6C2ecbAbfFc40686D599a9375ad3b35427Fd"
},
{
"address": "eth:0xc75cDcBEef3aE3365ABF0217815748586F9047F1",
"type": "EOA",
"isVerified": true,
"name": "0xc75c…47F1",
"url": "https://etherscan.io/address/0xc75cDcBEef3aE3365ABF0217815748586F9047F1"
}
],
"chain": "ethereum",
"description": "* A Validator - acting directly",
"description": "* Can interact with EraMultisigValidator\n * initiate batch execution on L1 if approved by enough Validator Multisig members ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1777296071,
"baseTimestamp": 1777883283,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}