f66126aa (main)
and
f5f42021 (PR)
+4 -0
+4 -0
{
"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",
"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",
"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"
]
}
+19 -19
+2 -2
{
"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": [
{
"title": "LineaRollup.sol - Etherscan source code, submitBlobs() function",
"url": "https://etherscan.io/address/0xe68697690e8ff196a6abb3e1385156d87df85332#code"
}
]
}
],
"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. Note that withdrawal requests can be censored by the Sequencer. Currently, there is a general limit of 30000.0 ETH that can be withdrawn within each 1d time window. Users can (eventually, after 6 months of inactivity from the centralized Operator) exit by replacing the Operator. In such a case they need to self-propose and prove their new state on the base layer with the required software which is currently not made available.",
"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. Note that withdrawal requests can be censored by the Sequencer. Currently, there is a general limit of 10000.0 ETH that can be withdrawn within each 1d time window. Users can (eventually, after 6 months of inactivity from the centralized Operator) exit by replacing the Operator. In such a case they need to self-propose and prove their new state on the base layer with the required software which is currently not made available.",
"risks": [
{
"category": "Funds can be frozen if",
"text": "the operator censors withdrawal transaction."
}
],
"references": [
{
"title": "L1MessageService.sol - Etherscan source code, claimMessageWithProof() function",
"url": "https://etherscan.io/address/0xe68697690e8ff196a6abb3e1385156d87df85332#code#F21#L92"
},
{
"title": "LineaRollup.sol - Etherscan source code, setLivenessRecoveryOperator() function",
"url": "https://etherscan.io/address/0xe68697690e8ff196a6abb3e1385156d87df85332#code#F36#L41"
}
]
}
],
"forceTransactions": {
"name": "Users can't force any transaction",
"description": "There is no general mechanism to force the sequencer to include the transaction.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator refuses to include their transactions."
}
],
"references": []
},
"operator": {
"name": "The system has a centralized sequencer",
"description": "Only a trusted sequencer is allowed to submit transaction batches. A mechanism for users to submit their own batches is currently disabled.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
},
{
"category": "Funds can be frozen if",
"text": "the sequencer refuses to include an exit transaction.",
"isCritical": true
}
],
"references": [
{
"title": "LineaRollup.sol - Etherscan source code, onlyRole(OPERATOR_ROLE) modifier",
"url": "https://etherscan.io/address/0xe68697690e8ff196a6abb3e1385156d87df85332#code"
}
]
},
"stateDerivation": {
"nodeSoftware": "The node software ([Linea Besu](https://github.com/Consensys/linea-besu-package)) and a guide to reconstruct the state from L1 is available [here](https://docs.linea.build/network/overview/recoverable-state). Other node implementations like Nethermind, Geth or Erigon can sync too, but state derivation from L1 and Linea-specific features [are unsupported](https://docs.linea.build/get-started/how-to/run-a-node).",
"compressionScheme": "Linea uses a [bespoke lossless compression scheme](https://github.com/Consensys/linea-monorepo/blob/main/docs/architecture-description.md#blob-compressor) based on LZSS (deflate-like). It is available as a [dedicated library](https://github.com/Consensys/compress) and a [zk-decompression circuit](https://github.com/Consensys/gnark/tree/master/std/compress) in Gnark.",
"genesisState": "Is available via the official Linea docs for Linea Besu (preloaded), [Besu](https://docs.linea.build/get-started/how-to/run-a-node/besu#step-2-download-the-genesis-file-and-besu-configuration-file), [Erigon](https://docs.linea.build/get-started/how-to/run-a-node/erigon#step-2-download-the-genesis-file), [Nethermind](https://docs.linea.build/get-started/how-to/run-a-node/nethermind), [Geth](https://docs.linea.build/get-started/how-to/run-a-node/geth#step-2-download-the-genesis-file).",
"dataFormat": "Linea groups L2 blocks [into batches](https://lineascan.build/batches) which are then posted to L1 for proving. Each batch (whether sent as a blob or compressed calldata) contains L2 blocks. Blocks in turn include the [transactions with unnecessary data stripped](https://community.linea.build/t/proposal-state-reconstruction-from-l1-blobs/8038#p-22077-block-data-sent-to-l1-in-the-compressed-blob-2). More info on [the compression, packing and blob structure](https://github.com/Consensys/linea-monorepo/blob/main/docs/architecture-description.md#blob-compressor)."
},
"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": "The Linea prover code is [available on Github](https://github.com/Consensys/linea-monorepo/tree/main/prover). Linea splits proving into: **Corset** (Go + Lisp DSL) expands EVM execution traces and generates a bespoke constraint system for the zk-EVM. **gnark** (Go) ingests the expanded traces and constraint system, instantiates the circuits and produces the SNARK proof."
},
{
"title": "ZK Circuits",
"description": "The constraint system lives in the public [linea-constraints](https://github.com/Consensys/linea-constraints) repo and is authored in a Lisp-style DSL before being compiled to Go. Gnark then turns those constraints into PLONK-compatible circuits over **BN254**. Internally, Linea’s flow uses a recursive proof stack called [Vortex → Arcane → PLONK compression](https://docs.linea.build/technology/transaction-lifecycle#step-5-generating-a-zk-proof-using-transaction-data): Vortex/Arcane supply small inner proofs that are finally aggregated into a single PLONK proof that the L1 contract can verify."
},
{
"title": "Verification Keys Generation",
"description": "Linea uses a Plonk-based proof system which requires a trusted setup. The verification keys are hardcoded in the verifier contract on-chain."
},
{
"title": "Validity proofs",
"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.",
"risks": [],
"references": [
{
"title": "LineaRollup.sol - Etherscan source code, finalizeBlocks() and _verifyProof() calls",
"url": "https://etherscan.io/address/0xe68697690e8ff196a6abb3e1385156d87df85332#code#F38#L277"
},
{
"title": "PlonkVerifierMainnetFull.sol (Proof Type 0)",
"url": "https://etherscan.io/address/0xC83ed08E2262fBa264D528C749c051f8fC526897"
"url": "https://etherscan.io/address/0x218C3339ff3fea595c02Ac31Ca8A782f5028C4dc"
},
{
"title": "PlonkVerifierMainnetFull.sol (Proof Type 1)",
"url": "https://etherscan.io/address/0x0D0f070386edC441A63fB8FAe8FB937Bbd88c5Cb"
}
]
}
]
}
}
+16 -16
{
"addresses": {
"ethereum": [
{
"name": "TokenBridge",
"isVerified": true,
"address": "eth:0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6"
],
"implementations": [
"eth:0xF0e003F0dE2d583Ae28FA8cBF66aa096CdAce3ff"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1691067875,
"transactionHash": "0xbc08c4596eeee0a2e2527f03c0f2e85ec9e76e062b5f86eb435a67bca8f21122",
"implementations": [
"eth:0x6ccfD65b0b14F67259C77Ca6267104e058dDB292"
]
},
{
"timestamp": 1717588175,
"transactionHash": "0x497bdab1d3fb97eed72a55fc6e3672694195b08f949c2e0e84ea4b36428ee9c6",
"implementations": [
"eth:0xd52c09E67aF3BE0977B52b4817366e9BaB5dCFA2"
]
},
{
"timestamp": 1734357131,
"transactionHash": "0x96b88112de2e594cb763bc625cc2dcb6920825bb642eb1a62ff577f0c29f616d",
"implementations": [
"eth:0x2B6A2F8880220a66DfB9059FCB76F7dB54104a34"
]
},
{
"timestamp": 1774970807,
"transactionHash": "0x2956910285297bc330ad8b1e31f6dd7866e58c26164fe126f09a44df6a65ce9b",
"implementations": [
"eth:0xF0e003F0dE2d583Ae28FA8cBF66aa096CdAce3ff"
]
}
],
"description": "Contract used to bridge and escrow ERC-20 tokens.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Security Council\n * **allPausers**: EOA 1, Linea Security Council\n * **allUnpausers**: Linea Security Council\n * **completeTokenBridgingPausers**: Linea Security Council\n * **completeTokenBridgingUnpausers**: Linea Security Council\n * **customContractSetters**: Linea Multisig 2, Linea Security Council; ultimately Linea Security Council\n * **defaultAdmin**: Linea Security Council\n * **initiateTokenBridgingPausers**: Linea Security Council\n * **initiateTokenBridgingUnpausers**: Linea Security Council\n * **messageServiceSetters**: Linea Security Council\n * **reserveTokenRemovers**: Linea Multisig 2, Linea Security Council; ultimately Linea Security Council\n * **reserveTokenSetters**: Linea Multisig 2, Linea Security Council; ultimately Linea Security Council",
"upgradableBy": [
{
"name": "Linea Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319#code"
},
{
"name": "PlonkVerifierFull",
"isVerified": true,
"address": "eth:0x0D0f070386edC441A63fB8FAe8FB937Bbd88c5Cb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0D0f070386edC441A63fB8FAe8FB937Bbd88c5Cb#code"
},
{
"name": "PlonkVerifierFull",
"isVerified": true,
"address": "eth:0x218C3339ff3fea595c02Ac31Ca8A782f5028C4dc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x218C3339ff3fea595c02Ac31Ca8A782f5028C4dc#code"
},
{
"name": "BridgedToken",
"isVerified": true,
"address": "eth:0x36f274C1C197F277EA3C57859729398FCc8a3763",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Standard implementation used for assets that are native to the other layer and are bridged to this layer.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36f274C1C197F277EA3C57859729398FCc8a3763#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x41fAD3Df1B07B647D120D055259E474fE8046eb5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Linea Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x41fAD3Df1B07B647D120D055259E474fE8046eb5#code"
},
{
"name": "LidoStVaultYieldProvider",
"isVerified": true,
"address": "eth:0x486D8cADc10489B30b64c890aEc747F1220eEEC3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x486D8cADc10489B30b64c890aEc747F1220eEEC3#code"
},
{
"name": "L1USDCBridge",
"isVerified": true,
"address": "eth:0x504A330327A089d8364C4ab3811Ee26976d388ce",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x41fAD3Df1B07B647D120D055259E474fE8046eb5"
],
"implementations": [
"eth:0x66CFD1562d6Aa4629e9e4142662c1A403528Df00"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1691086271,
"transactionHash": "0xa93648a8d01d65bea363bc2f6e19897e42f9af999370c07cb2a0ea6a5401b6b0",
"implementations": [
"eth:0x16Db542C30fB3519D11CF8F632077c62c1a944fd"
]
},
{
"timestamp": 1693599947,
"transactionHash": "0xe752ce539119fc11af6239e8b26a79d80c9e84cec19ac6aca060f466853f5b7d",
"implementations": [
"eth:0x0eC393209674090368C592A591B25811e490BF36"
]
},
{
"timestamp": 1742155031,
"transactionHash": "0xd61b29009aa7f628ff1b04138e30ebd39805e40a2e3e4a3e43050fd8b0f75548",
"implementations": [
"eth:0x66CFD1562d6Aa4629e9e4142662c1A403528Df00"
]
}
],
"description": "L1 side of the old and now unused USDC bridge.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Security Council",
"upgradableBy": [
{
"name": "Linea Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x504A330327A089d8364C4ab3811Ee26976d388ce#code"
},
{
"name": "Delay",
"isVerified": true,
"address": "eth:0x784CCeE002E259Fc38C4b36C2D8bd8a457e55436",
"upgradeability": {
"proxyType": "gnosis safe zodiac module",
"admins": [],
"implementations": [],
"immutable": false
},
"chain": "ethereum",
"description": "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* Roles:\n * **owner**: Linea Multisig 2; ultimately Linea Security Council\n * **zodiacModule_modules**: Linea Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x784CCeE002E259Fc38C4b36C2D8bd8a457e55436#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "eth:0x971f46a2852d11D59dbF0909e837cfd06f357DeB",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A beacon with an upgradeable implementation currently set as BridgedToken. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: Linea Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x971f46a2852d11D59dbF0909e837cfd06f357DeB#code"
},
{
"name": "PlonkVerifierMainnetFull",
"isVerified": true,
"address": "eth:0xC83ed08E2262fBa264D528C749c051f8fC526897",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC83ed08E2262fBa264D528C749c051f8fC526897#code"
},
{
"name": "LineaRollup",
"isVerified": true,
"address": "eth:0xd19d4B5d358258f05D7B411E21A1460D11B0876F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6"
],
"implementations": [
"eth:0xE68697690E8ff196A6aBB3E1385156D87Df85332"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689159923,
"transactionHash": "0x3564f15a274bdc49a6ad8af161113d20a678d87efbd3d708540a9b4d026f1122",
"implementations": [
"eth:0xE8f627df6Cb02e415b2e6d6e112323BD269b4706"
]
},
{
"timestamp": 1689166667,
"transactionHash": "0x8ee4253600d68665e8d52a522d8ba7136639187b87f8079b881de9e6d1f20d2a",
"implementations": [
"eth:0xE8f627df6Cb02e415b2e6d6e112323BD269b4706"
]
},
{
"timestamp": 1689427883,
"transactionHash": "0x628efc29f5b2267f23cf613720003fafe671ee47db60b4f6610f5ae1ab838555",
"implementations": [
"eth:0x4c8d4Ce72afAA417d1F7E833725FdB4E793cd6b3"
]
},
{
"timestamp": 1691513927,
"transactionHash": "0xdff29a7f65b6bec4e8288673a5ca55e12081b4d55879e600817484f28c5a80b1",
"implementations": [
"eth:0xb32c3D0dDb0063FfB15E8a50b40cC62230D820B3"
]
},
{
"timestamp": 1707813599,
"transactionHash": "0xb4ed5b2646e45744945a4fc51da0e5e687ffe26f570b7aa3abb7b1fd4a460ea4",
"implementations": [
"eth:0xAA4b3a9515c921996Abe7930bF75Eff7466a4457"
]
},
{
"timestamp": 1711448987,
"transactionHash": "0x565c77e109aac4df41d81457bdfbdd17782d8bca9a1330c68a271c64f35d05e5",
"implementations": [
"eth:0x934Dd4C63E285551CEceF8459103554D0096c179"
]
},
{
"timestamp": 1717588175,
"transactionHash": "0x497bdab1d3fb97eed72a55fc6e3672694195b08f949c2e0e84ea4b36428ee9c6",
"implementations": [
"eth:0x53fC68bFfC03D17804e5A901DE42d1eeF2e64562"
]
},
{
"timestamp": 1730216147,
"transactionHash": "0x0970f422c80627f28916f9c5583ff6298070893debd191ead0cf39778e4bae14",
"implementations": [
"eth:0x1825242411792536469Cbb5843fd27Ce3e9e583A"
]
},
{
"timestamp": 1734357131,
"transactionHash": "0x96b88112de2e594cb763bc625cc2dcb6920825bb642eb1a62ff577f0c29f616d",
"implementations": [
"eth:0x07ddce60658A61dc1732Cacf2220FcE4A01C49B0"
]
},
{
"timestamp": 1772375135,
"transactionHash": "0xac24732952f9eea514ba28030218267575bb42dd5f713dab7c29f3d330086d8f",
"implementations": [
"eth:0x04728BF704a716C26F9EF4085013b760AC885631"
]
},
{
"timestamp": 1774970807,
"transactionHash": "0x2956910285297bc330ad8b1e31f6dd7866e58c26164fe126f09a44df6a65ce9b",
"implementations": [
"eth:0xE68697690E8ff196A6aBB3E1385156D87Df85332"
]
}
],
"description": "The main contract of the Linea zkEVM rollup. Contains state roots, the verifier addresses and manages messages between L1 and the L2. ETH deployed to the rollup contract can be transfered to a yield protocol.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Security Council\n * **defaultAdmin**: Linea Security Council\n * **ethStaker**: EOA 4, Linea Security Council\n * **livenessRecoveryOperator**: CallForwardingProxy\n * **operators**: EOA 2, EOA 3\n * **pauseAll**: EOA 1, Linea Security Council\n * **securityCouncil**: Linea Security Council\n * **yieldManagerSetter**: Linea Security Council",
"upgradableBy": [
{
"name": "Linea Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd19d4B5d358258f05D7B411E21A1460D11B0876F#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xd6B95c960779c72B8C6752119849318E5d550574",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A standard timelock with access control. The current minimum delay is 0s.\n* Roles:\n * **canceller**: Linea Security Council\n * **executor**: Linea Security Council\n * **proposer**: Linea Multisig 2, Linea Security Council; ultimately Linea Security Council\n * **timelockAdmin**: Timelock; ultimately Linea Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd6B95c960779c72B8C6752119849318E5d550574#code"
},
{
"name": "YieldManager",
"isVerified": true,
"address": "eth:0xeb63cABDd78537b9b72A2AFB573F7caa91bd8D94",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6"
],
"implementations": [
"eth:0x751236A1aFC11B7F1A7630fe87b0Bd96AC5203C4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1770742511,
"transactionHash": "0x69fb4be68a461b7953579236e33e62f1463ebf0e02e397221a35c16dadecd77a",
"implementations": [
"eth:0x751236A1aFC11B7F1A7630fe87b0Bd96AC5203C4"
]
}
],
"description": "Manages flows of ETH and staked ETH in and out of rollup contract reserves. Tracks the available ETH balance for L2 exits, configures target parameters for amount of staked ETH, communicates with yield provider adaptors.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Security Council\n * **yieldStakingManager**: Linea Security Council\n * **yieldStakingOperator**: EOA 4, Linea Security Council",
"upgradableBy": [
{
"name": "Linea Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xeb63cABDd78537b9b72A2AFB573F7caa91bd8D94#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF5058616517C068C7b8c7EbC69FF636Ade9066d6#code"
}
],
"linea": [
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "linea:0x1E1f6F22f97b4a7522D8B62e983953639239774E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "* Roles:\n * **owner**: L2Timelock",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0x1E1f6F22f97b4a7522D8B62e983953639239774E#code"
},
{
"name": "TokenBridge",
"isVerified": true,
"address": "linea:0x353012dc4a9A6cF55c941bADC267f82004A8ceB9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"linea:0x1E1f6F22f97b4a7522D8B62e983953639239774E"
],
"implementations": [
"linea:0x4a496167F187A97379e763f693A499cE1182848b"
]
},
"chain": "linea",
"pastUpgrades": [
{
"timestamp": 1691068282,
"transactionHash": "0x74e2ded3ed8dd2fd39692b053ede573c6d8205a2dcdb29a201d6320006f81404",
"implementations": [
"linea:0x2bfdf4a0d54C93a4bAF74F8DcEA8a275D8EE97a9"
]
},
{
"timestamp": 1717588517,
"transactionHash": "0x679e1f421ff3d583b75adc32bda76d9408688e9fd6897bc499baaee547711f13",
"implementations": [
"linea:0x0fFCBe98041B77BD87C38e2d0a6b473e7703444E"
]
},
{
"timestamp": 1734357983,
"transactionHash": "0xbb31a92afc2c725d0b10aaf96829db7a553041d0be10ca840d2fb82ef77119e7",
"implementations": [
"linea:0xD90ed3D4f9d11262d3D346a4369058d5B3777137"
]
},
{
"timestamp": 1774970935,
"transactionHash": "0xee1773eabf52589c20884aceed118949ea8e03afc7bfd1df008206d2d69e1b01",
"implementations": [
"linea:0x4a496167F187A97379e763f693A499cE1182848b"
]
}
],
"description": "Contract used to bridge and escrow ERC-20 tokens.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Multisig 3\n * **allPausers**: EOA 5, Linea Multisig 3\n * **allUnpausers**: Linea Multisig 3\n * **completeTokenBridgingPausers**: Linea Multisig 3\n * **completeTokenBridgingUnpausers**: Linea Multisig 3\n * **customContractSetters**: Linea Multisig 3, Linea Multisig 4\n * **defaultAdmin**: Linea Multisig 3\n * **initiateTokenBridgingPausers**: Linea Multisig 3\n * **initiateTokenBridgingUnpausers**: Linea Multisig 3\n * **messageServiceSetters**: Linea Multisig 3\n * **reserveTokenRemovers**: Linea Multisig 3, Linea Multisig 4\n * **reserveTokenSetters**: Linea Multisig 3, Linea Multisig 4",
"upgradableBy": [
{
"name": "Linea Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0x353012dc4a9A6cF55c941bADC267f82004A8ceB9#code"
},
{
"name": "L2Roles",
"isVerified": true,
"address": "linea:0x3886a948eA7b4053312c3aE31a13776144aA6239",
"upgradeability": {
"proxyType": "gnosis safe zodiac module",
"admins": [],
"implementations": [],
"immutable": false
},
"chain": "linea",
"description": "The Zodiac 'Roles' module for Safe multisigs allows defining roles that can call preconfigured targets on behalf of the Gnosis Safe.\n* Roles:\n * **pausers**: EOA 7\n * **voyageXpMinters**: EOA 8",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0x3886a948eA7b4053312c3aE31a13776144aA6239#code"
},
{
"name": "L2MessageService",
"isVerified": true,
"address": "linea:0x508Ca82Df566dCD1B0DE8296e70a96332cD644ec",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"linea:0x1E1f6F22f97b4a7522D8B62e983953639239774E"
],
"implementations": [
"linea:0x9976fD7edDb78156a002DE74c9158E884702273d"
]
},
"chain": "linea",
"pastUpgrades": [
{
"timestamp": 1688650665,
"transactionHash": "0xed74f383b9adf7473d3acd918f80cfdd9e971e861e08c82da880b0b6c3e7d5da",
"implementations": [
"linea:0x369DB650D875938252682532eA9E4Af267a7d126"
]
},
{
"timestamp": 1689173298,
"transactionHash": "0x0c07ca13444501284e8935d6cc93cde21ab6a45c6d442aae2681fe01e4106b8d",
"implementations": [
"linea:0x49B620cC5DaD8254253ADf9f769262fF15C79e8c"
]
},
{
"timestamp": 1689428479,
"transactionHash": "0x58e2af8033120299d32c2c561cb236a386565e981a14626d1b96a7d592564b66",
"implementations": [
"linea:0x89e70E2AAAD2021cEa50b1eb235B7Fe97625147d"
]
},
{
"timestamp": 1707813305,
"transactionHash": "0xcc8a117438895921a7768cef24fd55a179538956fe8e3dfdbf44181ae2eb4151",
"implementations": [
"linea:0x2c4F0ed41E356E289b5b479684006427Ec3589af"
]
},
{
"timestamp": 1711449417,
"transactionHash": "0xb50f4883ceaaecaa5c3864e17e0cedcdfbf13a8d49e2e318dbde814d7dbe1459",
"implementations": [
"linea:0x9899f25BDD0785B2b47c1Bd29711D88406c3b54D"
]
},
{
"timestamp": 1734357983,
"transactionHash": "0xbb31a92afc2c725d0b10aaf96829db7a553041d0be10ca840d2fb82ef77119e7",
"implementations": [
"linea:0x05d43713B7E333d2D54be65cE3b5F3698aB960Fd"
]
},
{
"timestamp": 1774970935,
"transactionHash": "0xee1773eabf52589c20884aceed118949ea8e03afc7bfd1df008206d2d69e1b01",
"implementations": [
"linea:0x9976fD7edDb78156a002DE74c9158E884702273d"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Multisig 3\n * **l1l2MessageSetter**: EOA 6",
"upgradableBy": [
{
"name": "Linea Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0x508Ca82Df566dCD1B0DE8296e70a96332cD644ec#code"
},
{
"name": "L2USDCBridge",
"isVerified": true,
"address": "linea:0xA2Ee6Fce4ACB62D95448729cDb781e3BEb62504A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"linea:0xcB04d0AD0D3ceA5aEc1B480957Ddb20CA47EA30c"
],
"implementations": [
"linea:0x1998108fA7993EA67a8B1a99d392a3288C5a5521"
]
},
"chain": "linea",
"pastUpgrades": [
{
"timestamp": 1691086556,
"transactionHash": "0xb50a7330132542dc795312528f39e57822236eb7d35cfcaf2616e091c378705e",
"implementations": [
"linea:0x71E4dB49008C7D7648597E8D24A8E2fD1D220B81"
]
},
{
"timestamp": 1693600112,
"transactionHash": "0xdcd89930e7456d8d80313aa109e5ab95d2455354e39e56d1ae0432f2579339d0",
"implementations": [
"linea:0x6D967F862d8c5D9E230a976AB2063eD1d4D7A43c"
]
},
{
"timestamp": 1742047419,
"transactionHash": "0xdf59afa26b1f9768cf98f2f59a55a175faa5e911501d2043e6564340d0841140",
"implementations": [
"linea:0x1998108fA7993EA67a8B1a99d392a3288C5a5521"
]
}
],
"description": "L2 side of the old and now unused USDC bridge.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Linea Multisig 3",
"upgradableBy": [
{
"name": "Linea Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xA2Ee6Fce4ACB62D95448729cDb781e3BEb62504A#code"
},
{
"name": "L2Timelock",
"isVerified": true,
"address": "linea:0xc808BfCBeD34D90fa9579CAa664e67B9A03C56ca",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "A standard timelock with access control. The current minimum delay is 0s.\n* Roles:\n * **canceller**: Linea Multisig 3\n * **executor**: Linea Multisig 3\n * **proposer**: Linea Multisig 3, Linea Multisig 4\n * **timelockAdmin**: L2Timelock; ultimately Linea Multisig 3",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xc808BfCBeD34D90fa9579CAa664e67B9A03C56ca#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "linea:0xcB04d0AD0D3ceA5aEc1B480957Ddb20CA47EA30c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "* Roles:\n * **owner**: Linea Multisig 3",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xcB04d0AD0D3ceA5aEc1B480957Ddb20CA47EA30c#code"
},
{
"name": "LineaVoyageXP",
"isVerified": true,
"address": "linea:0xd83af4fbD77f3AB65C3B1Dc4B38D7e67AEcf599A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "Voyage XP tokens are non-transferrable, soulbound tokens that are distributed to recognize the community’s contribution toward the growth of the Linea ecosystem.\n",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xd83af4fbD77f3AB65C3B1Dc4B38D7e67AEcf599A#code"
},
{
"name": "BridgedToken",
"isVerified": true,
"address": "linea:0xda8AEFCf0F9B0b81915a2C124f913e58212D49dF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "Standard implementation used for assets that are native to the other layer and are bridged to this layer.\n",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xda8AEFCf0F9B0b81915a2C124f913e58212D49dF#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "linea:0xE798695d2e78f7caeb5BbF3385433959324c02c0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "linea",
"description": "A beacon with an upgradeable implementation currently set as BridgedToken. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: Linea Multisig 3",
"discoveryDrivenData": true,
"url": "https://lineascan.build/address/0xE798695d2e78f7caeb5BbF3385433959324c02c0#code"
}
]
},
"escrows": [
{
"address": "0xd19d4B5d358258f05D7B411E21A1460D11B0876F",
"sinceTimestamp": 1689159923,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xd19d4B5d358258f05D7B411E21A1460D11B0876F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6"
],
"implementations": [
"eth:0xE68697690E8ff196A6aBB3E1385156D87Df85332"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689159923,
"transactionHash": "0x3564f15a274bdc49a6ad8af161113d20a678d87efbd3d708540a9b4d026f1122",
"implementations": [
"eth:0xE8f627df6Cb02e415b2e6d6e112323BD269b4706"
]
},
{
"timestamp": 1689166667,
"transactionHash": "0x8ee4253600d68665e8d52a522d8ba7136639187b87f8079b881de9e6d1f20d2a",
"implementations": [
"eth:0xE8f627df6Cb02e415b2e6d6e112323BD269b4706"
]
},
{
"timestamp": 1689427883,
"transactionHash": "0x628efc29f5b2267f23cf613720003fafe671ee47db60b4f6610f5ae1ab838555",
"implementations": [
"eth:0x4c8d4Ce72afAA417d1F7E833725FdB4E793cd6b3"
]
},
{
"timestamp": 1691513927,
"transactionHash": "0xdff29a7f65b6bec4e8288673a5ca55e12081b4d55879e600817484f28c5a80b1",
"implementations": [
"eth:0xb32c3D0dDb0063FfB15E8a50b40cC62230D820B3"
]
},
{
"timestamp": 1707813599,
"transactionHash": "0xb4ed5b2646e45744945a4fc51da0e5e687ffe26f570b7aa3abb7b1fd4a460ea4",
"implementations": [
"eth:0xAA4b3a9515c921996Abe7930bF75Eff7466a4457"
]
},
{
"timestamp": 1711448987,
"transactionHash": "0x565c77e109aac4df41d81457bdfbdd17782d8bca9a1330c68a271c64f35d05e5",
"implementations": [
"eth:0x934Dd4C63E285551CEceF8459103554D0096c179"
]
},
{
"timestamp": 1717588175,
"transactionHash": "0x497bdab1d3fb97eed72a55fc6e3672694195b08f949c2e0e84ea4b36428ee9c6",
"implementations": [
"eth:0x53fC68bFfC03D17804e5A901DE42d1eeF2e64562"
]
},
{
"timestamp": 1730216147,
"transactionHash": "0x0970f422c80627f28916f9c5583ff6298070893debd191ead0cf39778e4bae14",
"implementations": [
"eth:0x1825242411792536469Cbb5843fd27Ce3e9e583A"
]
},
{
"timestamp": 1734357131,
"transactionHash": "0x96b88112de2e594cb763bc625cc2dcb6920825bb642eb1a62ff577f0c29f616d",
"implementations": [
"eth:0x07ddce60658A61dc1732Cacf2220FcE4A01C49B0"
]
},
{
"timestamp": 1772375135,
"transactionHash": "0xac24732952f9eea514ba28030218267575bb42dd5f713dab7c29f3d330086d8f",
"implementations": [
"eth:0x04728BF704a716C26F9EF4085013b760AC885631"
]
},
{
"timestamp": 1774970807,
"transactionHash": "0x2956910285297bc330ad8b1e31f6dd7866e58c26164fe126f09a44df6a65ce9b",
"implementations": [
"eth:0xE68697690E8ff196A6aBB3E1385156D87Df85332"
]
}
],
"url": "https://etherscan.io/address/0xd19d4B5d358258f05D7B411E21A1460D11B0876F#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319",
"sinceTimestamp": 1691060675,
"tokens": "*",
"excludedTokens": [
"rsETH"
],
"premintedTokens": [
"LINEA"
],
"contract": {
"isVerified": true,
"address": "eth:0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6"
],
"implementations": [
"eth:0xF0e003F0dE2d583Ae28FA8cBF66aa096CdAce3ff"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1691067875,
"transactionHash": "0xbc08c4596eeee0a2e2527f03c0f2e85ec9e76e062b5f86eb435a67bca8f21122",
"implementations": [
"eth:0x6ccfD65b0b14F67259C77Ca6267104e058dDB292"
]
},
{
"timestamp": 1717588175,
"transactionHash": "0x497bdab1d3fb97eed72a55fc6e3672694195b08f949c2e0e84ea4b36428ee9c6",
"implementations": [
"eth:0xd52c09E67aF3BE0977B52b4817366e9BaB5dCFA2"
]
},
{
"timestamp": 1734357131,
"transactionHash": "0x96b88112de2e594cb763bc625cc2dcb6920825bb642eb1a62ff577f0c29f616d",
"implementations": [
"eth:0x2B6A2F8880220a66DfB9059FCB76F7dB54104a34"
]
},
{
"timestamp": 1774970807,
"transactionHash": "0x2956910285297bc330ad8b1e31f6dd7866e58c26164fe126f09a44df6a65ce9b",
"implementations": [
"eth:0xF0e003F0dE2d583Ae28FA8cBF66aa096CdAce3ff"
]
}
],
"url": "https://etherscan.io/address/0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 0s delay on code upgrades."
}
],
"zkVerifiers": [
"eth:0xC83ed08E2262fBa264D528C749c051f8fC526897",
"eth:0x218C3339ff3fea595c02Ac31Ca8A782f5028C4dc",
"eth:0x0D0f070386edC441A63fB8FAe8FB937Bbd88c5Cb"
]
}
+1 -1
{
"baseTimestamp": 1776683677,
"baseTimestamp": 1776857404,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+15 -5
+15 -5
{
"creator": "Consensys",
"projectsForTvs": [
{
"projectId": "linea",
"sinceTimestamp": 1689112800
}
],
"proofSystemInfo": "\n \n ## Description\n\n [Linea prover](https://github.com/Consensys/linea-monorepo/tree/main/prover) implements a zkEVM by creating a custom arithmetization of EVM state transition and proving it in a series of recursive SNARKs (i.e. without implementing a zkVM). The proof is wrapped into a Plonk with KZG for efficient onchain verification. Linea prover targets 128 bits of security.\n\n ## Proof system\n\n Linea prover includes Wizard-IOP framework for extending polynomial IOPs with more powerful queries, Arcane compiler of Wizard-IOP into polynomial IOP and Vortex list polynomial commitment (LPC) scheme.\n\n Wizard-IOP represents an extension of polynomial IOP with a wider range of queries, including inclusion check, permutation check, range check etc. Vortex LPC is a batchable polynomial commitment that is based on [Ligero](https://eprint.iacr.org/2022/1608) with lattice-based hash functions. To achieve succinct proof size, Linea prover performs multiple rounds of self-recursion by arithmetizing the Vortex verifier in the Wizard-IOP framework. During these rounds Plonk+KZG schemes over curves BW6, BLS12-377, and BN254 are used, creating a dependency on 3 trusted setups, see [below](#trusted-setups) for more details.\n\n ### EVM circuits\n\n This level of Linea prover produces execution proof and compression proof after several rounds of self-recursive compression. Both of these are Plonk based proofs over BLS12-377 curve.\n\n Execution proof validates the correct execution of transactions within the EVM, including knowledge of correct EVM traces, correctness of precompiles and consistency of public inputs.\n\n Compression proof verifies effective and correct compression of inputs for EVM execution circuits.\n\n ### Aggregation circuits\n\n At this stage several proofs generated by execution and compression circuits are recursively verified within the finalization (or aggregation) circuit, which also checks the “connection” of all public inputs across all circuits. It leverages a composite proof system that combines several Plonk circuits on the BW6, BLS12-377, and BN254 curve with a goal of performant recursion.\n\n ### Final wrap\n\n In the end the Linea proof is wrapped in a [gnark](https://github.com/Consensys/gnark) implementation of Plonk over BN254 curve for even more efficiency onchain. For Plonk, Aztec Ignition trusted setup ceremony is used.\n ",
"proofSystemInfo": "\n\n## Description\n\n[Linea prover](https://github.com/Consensys/linea-monorepo/tree/main/prover) implements a zkEVM by creating a custom arithmetization of EVM state transition (including precompiles) and proving it in a series of recursive SNARKs (i.e. without implementing a zkVM). The proof is wrapped into a Plonk with KZG for efficient onchain verification. Linea prover targets 128 bits of security.\n\n## Proof system\n\nLinea prover includes Wizard-IOP framework for extending polynomial IOPs with more powerful queries, Arcane compiler of Wizard-IOP into polynomial IOP and Vortex list polynomial commitment (LPC) scheme.\n\nWizard-IOP represents an extension of polynomial IOP with a wider range of queries, including inclusion check, permutation check, range check etc. Vortex LPC is a batchable polynomial commitment that is based on [Ligero](https://eprint.iacr.org/2022/1608) with lattice-based hash functions. To achieve succinct proof size, Linea prover performs multiple rounds of self-recursion by arithmetizing the Vortex verifier in the Wizard-IOP framework.\n\n[Since April 2026](https://linea.build/blog/small-fields-faster-proving-on-linea-toward-real-time-finality), the zkEVM arithmetization is done over KoalaBear 31-bit field for performance reasons, utilizing its degree 4 extension for commitment openings. During the recursive rounds Plonk+KZG schemes over curves BW6, BLS12-377, and BN254 are used, creating a dependency on 3 trusted setups, see [below](#trusted-setups) for more details.\n\nLinea prover also introduces [limitless mode](https://github.com/Consensys/linea-monorepo/tree/main/prover/backend/execution/limitless), which segments the proving process into parallelizable jobs.\n\n### EVM circuits\n\nThis level of Linea prover produces execution proof and data availability proof after several rounds of self-recursive compression. Both of these are Plonk based proofs over KoalaBear field and BLS12-377 curve.\n\nExecution proof validates the correct execution of transactions within the EVM, including knowledge of correct EVM traces, correctness of precompiles and consistency of public inputs.\n\nData availability proof links compressed blob data, decompressed payloads, and execution-data commitments for EVM execution circuits.\n\n### Aggregation circuits\n\nAt this stage several proofs generated by execution and compression circuits are recursively verified within the aggregation circuit, which also checks the “connection” of all public inputs across all circuits. It leverages a composite proof system that combines several Plonk circuits on the BW6 and BLS12-377 curves with a goal of performant recursion.\n\n### Final wrap\n\nIn the end the Linea proof is wrapped in a [gnark](https://github.com/Consensys/gnark) implementation of Plonk over BN254 curve for even more efficiency onchain. For Plonk, Aztec Ignition trusted setup ceremony is used, see [below](#trusted-setups) for more details.\n ",
"techStack": {
"zkVM": [
{
"id": "linea",
"type": "Plonk",
"name": "Linea",
"description": "Prover system of Linea written in Go, includes Vortex polynomial commitment and Arcane compiler."
},
{
"id": "EVM",
"type": "ISA",
"name": "EVM",
"description": "Instruction language for Ethereum VM."
},
{
"id": "BLS12-377",
"type": "curve",
"name": "BLS12-377",
"description": "Pairing-friendly 377-bit prime field Weierstrass elliptic curve."
},
{
"id": "BW6-761",
"type": "curve",
"name": "BW6-761",
"description": "Pairing-friendly 761-bit prime field elliptic curve introduced by Housni and Guillevic."
},
{
"id": "KoalaBear",
"type": "Field",
"name": "Koala Bear",
"description": "Prime field of order p = 2**31 - 2**24 + 1."
}
],
"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 "
},
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "Aleo",
"risk": "yellow",
"name": "Aleo stage I trusted setup",
"shortDescription": "Trusted setup for KZG commitments over BLS12-377 curve, initially run as Aleo's Stage I setup. Ceremony has 106 participants and was publicly open for participation.",
"longDescription": "\n Ceremony generated trusted setup for KZG commitments over BLS12-377 curve, it was originally run as stage I setup\n for Aleo blockchain and later reused for Linea prover. Ceremony has 106 participants.\n\n - Repo with ceremony instructions [https://github.com/AleoNet/aleo-setup](https://github.com/AleoNet/aleo-setup)\n - Link to the ceremony details: [https://setup.aleo.org](https://setup.aleo.org/)\n "
},
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "CeloPlumo",
"name": "Celo Plumo",
"risk": "yellow",
"shortDescription": "Trusted setup for KZG commitments over BW6-761 curve, initially run for Celo Plumo. Ceremony has 55 participants and was publicly open for participation.",
"longDescription": "\n Ceremony generated trusted setup for KZG commitments over BW6-761 curve, it was originally run for Celo\n Plumo and later reused for Linea prover. Ceremony has 55 participants.\n\n - Repo with ceremony instructions: [https://github.com/celo-org/snark-setup?tab=readme-ov-file](https://github.com/celo-org/snark-setup?tab=readme-ov-file)\n - Link to the ceremony details: [https://celo.org/plumo](https://celo.org/plumo) (it is broken. Archived version here: [https://web.archive.org/web/20221201203227/https://celo.org/plumo](https://web.archive.org/web/20221201203227/https://celo.org/plumo))\n - Links to ceremony transcript: [https://console.cloud.google.com/storage/browser/plumoceremonyphase1/chunks](https://console.cloud.google.com/storage/browser/plumoceremonyphase1/chunks)\n - Link to ceremony verification code: [https://github.com/Consensys/gnark-ignition-verifier/blob/feat/celo_parser/celo/main.go](https://github.com/Consensys/gnark-ignition-verifier/blob/feat/celo_parser/celo/main.go)\n "
}
],
"verifierHashes": [
{
"hash": "0x4434516bbfeb1e4fca34d295be3926880f0a918360f218ce78bbecbd6095eb6f",
"hash": "0x29483dd4b0cd0a98968ab25795ae2363ed422fe575a20f55ac331519c3e846e1",
"name": "Linea Plonk Type 0",
"sourceLink": "https://github.com/Consensys/linea-monorepo/tree/b90a3c0b6735ba39dc19356628c09c03e42c016d/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xC83ed08E2262fBa264D528C749c051f8fC526897"
"address": "eth:0x218C3339ff3fea595c02Ac31Ca8A782f5028C4dc"
}
],
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\nThe regeneration process requires approximately 1 TiB of memory and approximately 400 GiB of disk space for trusted setup files and generated artifacts. It takes around 2 hours, excluding fetching 132 GiB of trusted setup assets.\nWe have verified the steps below on an Ubuntu machine.\n\n1. Install build prerequesits: `build-essential` and the latest version of go.\n2. Optionally, set up additional swap RAM. We used:\n```\nsudo apt install zram-tools\nvim /etc/default/zramswap # set algo to zstd, % to 20 and priority to 100\nsudo systemctl stop zramswap\nsudo systemctl start zramswap\n```\n3. Check out the correct version of [linea-monorepo](https://github.com/Consensys/linea-monorepo):\n```\ngit clone https://github.com/Consensys/linea-monorepo.git\ncd linea-monorepo\ngit checkout b90a3c0b6735ba39dc19356628c09c03e42c016d\n```\n4. Download trusted setup files (132 GiB) from the L2BEAT hosting server into the `prover/prover-assets/kzgsrs` dir:\n```\ncd prover/prover-assets/kzgsrs\nwget -r -np -nH --cut-dirs=1 -R \"index.html*\" https://trusted-setup-hosting.l2beat.com/files/\n```\n5. Build the circuits and the verifier contract, this step takes several hours:\n```\n# from the linea-monorepo/provers dir\nmake setup\n```\nThe build artifacts will be places into `prover/prover-assets/6.2.1/` dir, the generated verifier smart contract could be found in `prover/prover-assets/6.2.1/emulation/Verifier.sol`.\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": "0xd92b8281296cbfe1963093c23f9fb7fef6f9debfa9115622ca412c32b848aa52",
"name": "Linea Plonk Type 1",
"sourceLink": "https://github.com/Consensys/linea-monorepo/tree/988bbce27b61a5e5a29913468d06d0a124dea8e4/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x0D0f070386edC441A63fB8FAe8FB937Bbd88c5Cb"
}
],
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"verificationSteps": "\nThe regeneration process requires approximately 1 TiB of memory and approximately 400 GiB of disk space for trusted setup files and generated artifacts. It takes around 2 hours, excluding fetching 132 GiB of trusted setup assets.\nWe have verified the steps below on an Ubuntu machine.\n\n1. Install build prerequesits: `build-essential` and the latest version of go.\n2. Optionally, set up additional swap RAM. We used:\n```\nsudo apt install zram-tools\nvim /etc/default/zramswap # set algo to zstd, % to 20 and priority to 100\nsudo systemctl stop zramswap\nsudo systemctl start zramswap\n```\n3. Check out the correct version of [linea-monorepo](https://github.com/Consensys/linea-monorepo):\n```\ngit clone https://github.com/Consensys/linea-monorepo.git\ncd linea-monorepo\ngit checkout 988bbce27b61a5e5a29913468d06d0a124dea8e4\n```\n4. Download trusted setup files (132 GiB) from the L2BEAT hosting server into the `prover/prover-assets/kzgsrs` dir:\n```\ncd prover/prover-assets/kzgsrs\nwget -r -np -nH --cut-dirs=1 -R \"index.html*\" https://trusted-setup-hosting.l2beat.com/files/\n```\n5. Build the circuits and the verifier contract, this step takes several hours:\n```\n# from the linea-monorepo/provers dir\nmake setup\n```\nThe build artifacts will be places into `prover/prover-assets/7.0.1/` dir, the generated verifier smart contract could be found in `prover/prover-assets/7.0.1/emulation/Verifier.sol`.\n ",
"description": "Custom verifier ID: SHA256 hash of all VK_... values from the smart contract, abi packed in the same order they are defined."
}
]
}
+4 -0
+4 -0
{
"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",
"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",
"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"
]
}