26382144 (main)
and
3666c6d1 (PR)
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1777451715,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+92 -263
+4 -26
{
"badges": [
{
"id": "EVM",
"type": "VM",
"name": "EVM",
"description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "EVM"
}
},
{
"id": "DAC",
"id": "CustomDA",
"type": "DA",
"name": "Data Availability Committee",
"description": "There is a Data Availability Committee that provides/attests to data availability",
"name": "Custom DA solution",
"description": "This project is using a custom DA solution",
"action": {
"type": "selfDaHighlight"
}
},
{
"id": "CDKErigon",
"type": "Stack",
"name": "Built on the CDK Erigon stack",
"description": "The project is built using the multistack Agglayer CDK, and is based on the Erigon stack",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "Agglayer CDK"
}
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
},
{
"id": "Zeeve",
"type": "RaaS",
"name": "Zeeve",
"description": "This project was deployed via the rollup-as-a-service provider Zeeve",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Zeeve"
}
}
],
"description": "Pentagon Chain is a zkEVM blockchain powered by Agglayer and secured by Ethereum. It is dedicated to mainstream adoption of Web3 gaming, DeFi, and SocialFi.",
"description": "Pentagon Chain is a blockchain powered by Agglayer and validated by a multisig. It is dedicated to mainstream adoption of Web3 gaming, DeFi, and SocialFi.",
"links": {
"websites": [
"https://pentagon.games/pentagon-chain"
],
"bridges": [
"https://bridge.pentagon.games"
],
"explorers": [
"https://explorer.pentagon.games"
],
"socialMedia": [
"https://x.com/pentagonchain",
"https://discord.gg/pentagongamesXP",
"https://youtube.com/@PentagonGamesXP",
"https://linkedin.com/company/pentagongames",
"https://x.com/pentagongamesxp",
"https://t.me/PentagonGamesXP"
]
}
}
+20 -11
{
"capability": "universal",
"daLayer": [
"DAC"
"None"
],
"hostChain": {
"id": "ethereum",
"slug": "ethereum",
"name": "Ethereum"
},
"infrastructure": "Agglayer",
"layer": "layer2",
"proofSystem": {
"type": "Validity",
"zkCatalogId": "zkprover"
},
"purposes": [
"Universal",
"Gaming"
],
"raas": "Zeeve",
"reasonsForBeingOther": [
{
"label": "Small DAC",
"shortDescription": "There are less than 5 external actors that can attest data availability",
"description": "Projects without a sufficiently decentralized data availability committee rely on few entities to safely attest data availability on Ethereum. A small set of entities can collude with the proposer to finalize an unavailable state, which can cause loss of funds."
"label": "No DA bridge",
"shortDescription": "There is no data availability bridge",
"description": "Projects without a data availability bridge fully rely on single entities (the sequencer) to honestly rely available data roots on Ethereum. A malicious sequencer can collude with the proposer to finalize an unavailable state, which can cause loss of funds."
},
{
"label": "No proofs",
"shortDescription": "The proof system isn't fully functional",
"description": "Projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds."
},
{
"label": "No DA bridge",
"shortDescription": "There is no data availability bridge",
"description": "Projects without a data availability bridge fully rely on single entities (the sequencer) to honestly rely available data roots on Ethereum. A malicious sequencer can collude with the proposer to finalize an unavailable state, which can cause loss of funds."
},
{
"label": "No proofs",
"shortDescription": "The proof system isn't fully functional",
"description": "Projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds."
}
],
"stacks": [
"Agglayer CDK"
],
"stage": "Not applicable",
"type": "Other",
"vm": [
"EVM"
]
"vm": []
}
+9 -16
{
"self": {
"stateValidation": {
"value": "Validity proofs (ST, SN)",
"description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup.",
"sentiment": "good",
"orderHint": null,
"executionDelay": 0,
"secondLine": "No execution delay"
"value": "None",
"description": "Currently the system permits invalid state roots. 'Pessimistic' proofs only validate the bridge accounting.",
"sentiment": "bad",
"orderHint": null
},
"dataAvailability": {
"value": "External (DAC)",
"description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data.",
"sentiment": "bad",
"orderHint": 1
"value": "External",
"description": "Proof construction and state derivation rely fully on data that is NOT published onchain.",
"sentiment": "bad"
},
"exitWindow": {
"value": "None",
"description": "Even though there is a 3d Timelock for upgrades, there are no forced transactions and thus no way to exit during operator censorship or downtime.",
"description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": -1,
"warning": {
"value": "The Security Council can remove the delay on upgrades.",
"sentiment": "bad"
}
"orderHint": 0
},
"sequencerFailure": {
"value": "No mechanism",
"description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled.",
"sentiment": "bad"
},
"proposerFailure": {
"value": "Cannot withdraw",
"description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.",
"sentiment": "bad",
"orderHint": null
}
}
}
+7 -7
[
{
"layer": {
"value": "DAC",
"sentiment": "warning",
"description": "The data is posted off chain and a Data Availability Committee (DAC) is responsible for protecting and supplying it."
"value": "None",
"sentiment": "bad",
"description": "The data is not posted to any data availability layer."
},
"bridge": {
"value": "1/1 DAC Members",
"value": "None",
"sentiment": "bad",
"description": "There is a threshold of 1/1 members that must sign and attest that the data is correct and available.",
"orderHint": -0.01
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "Transaction data"
"value": "None"
}
}
]
+15 -72
{
"architectureImage": "agglayer-validium",
"architectureImage": "agglayer-pessimistic",
"dataAvailability": [
{
"name": "Data is not stored on chain",
"description": "Transaction data is kept off-chain. Bridge accounting is protected by pessimistic proofs while L2 state transitions are not proven on Ethereum.",
"risks": [],
"references": []
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks.",
"risks": [],
"references": [
{
"title": "AgglayerBridge.sol - source code, claimAsset function",
"url": "https://etherscan.io/address/0x66E0120e3c965552a89AcC37b03f762624baC5Ad#code"
}
]
}
],
"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": [
{
"title": "Validium.sol - source code, forceBatchAddress address",
"url": "https://etherscan.io/address/0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F#code"
}
]
"references": []
},
"operator": {
"name": "The system has a centralized sequencer",
"description": "Only a trusted sequencer is allowed to submit transaction batches.",
"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": "Validium.sol - source code, onlyTrustedSequencer modifier",
"url": "https://etherscan.io/address/0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F#code"
}
]
},
"otherConsiderations": [
{
"name": "Shared bridge and Pessimistic Proofs",
"description": "Polygon Agglayer uses a shared bridge escrow for Rollups, Validiums and external chains that opt in to participate in interoperability. Each participating chain needs to provide zk proofs to access any assets in the shared bridge. In addition to the full execution proofs that are used for the state validation of Rollups and Validiums, accounting proofs over the bridges state (Polygon calls them 'Pessimistic Proofs') are used by external chains (cdk-erigon-sovereign and cdk-opgeth-sovereign variants). Using the SP1 zkVM by Succinct, even projects without a full proof system on Ethereum are able to share the bridge with any other Aggchain without adding additional trust assumptions.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the accounting proof system for the bridge (pessimistic proofs, SP1) is implemented incorrectly."
},
{
"category": "Funds can be stolen if",
"text": "the operator manipulates the L2 state, which is not validated on Ethereum.",
"isCritical": true
}
],
"references": [
{
"title": "Pessimistic Proof - Polygon Knowledge Layer",
"url": "https://docs.polygon.technology/cdk/concepts/pessimistic-proofs"
},
{
"title": "Etherscan: AgglayerManager.sol - verifyPessimisticTrustedAggregator() function",
"url": "https://etherscan.io/address/0x15cAF18dEd768e3620E0f656221Bf6B400ad2618#code#F1#L1300"
}
]
}
],
"stateDerivation": {
"nodeSoftware": "Node software can be found [here](https://github.com/0xPolygonHermez/zkevm-node) and [here](https://github.com/0xPolygonHermez/cdk-erigon). The cdk-erigon node is the more recent implementation.",
"compressionScheme": "No compression scheme is used.",
"genesisState": "The genesis state, whose corresponding root is accessible as Batch 0 root in the `_legacyBatchNumToStateRoot` variable of AgglayerManager, is available [here](https://github.com/agglayer/agglayer-contracts/blob/0d0e69a6f299e273343461f6350343cf4b048269/deployment/genesis.json).",
"dataFormat": "The trusted sequencer batches transactions according to the specifications documented [here](https://docs.polygon.technology/tools/zkevm/architecture/protocol/transaction-life-cycle/transaction-batching/). Only /signed hashes of batches are posted to the Validium contract."
},
"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": "Polygon zkEVM proof system PIL-STARK can be found [here](https://github.com/0xPolygonHermez/pil-stark)."
},
{
"title": "ZK Circuits",
"description": "Polygon zkEVM circuits are built from PIL (polynomial identity language) and are designed to replicate the behavior of the EVM. The source code can be found [here](https://github.com/0xPolygonHermez/zkevm-rom).",
"risks": [
{
"category": "Funds can be lost if",
"text": "the proof system is implemented incorrectly."
}
]
},
{
"title": "Verification Keys Generation",
"description": "SNARK verification keys can be generated and checked against the Ethereum verifier contract using [this guide](https://github.com/0xPolygonHermez/zkevm-contracts/blob/main/verifyMainnetDeployment/verifyMainnetProofVerifier.md). The system requires a trusted setup."
},
{
"title": "Pessimistic Proofs",
"description": "The pessimistic proofs that are used to prove correct accounting in the Agglayer shared bridge are using the [SP1 zkVM by Succinct](https://github.com/succinctlabs/sp1)."
},
{
"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": "AgglayerManager.sol - source code, _verifyAndRewardBatches function",
"url": "https://etherscan.io/address/0x15cAF18dEd768e3620E0f656221Bf6B400ad2618#code"
}
]
}
]
},
"upgradesAndGovernance": "\nThe regular upgrade process for shared system contracts and L2-specific validium contracts starts at the PolygonAdminMultisig. For the shared contracts, they schedule a transaction that targets the ProxyAdmin via the Timelock, wait for 3d and then execute the upgrade. An upgrade of the Layer 2 specific validium contract requires first adding a new rollupType through the Timelock and the AgglayerManager (defining the new implementation and verifier contracts). Now that the rollupType is created, either the local admin or the PolygonAdminMultisig can immediately upgrade the local system contracts to it. Chains using pessimistic proofs often have completely sovereign upgrade paths from the ones described here, but the shared contracts still remain relevant to them because they use them as escrow.\n\nThe PolygonSecurityCouncil can expedite the upgrade process by declaring an emergency state. This state pauses both the shared bridge and the AgglayerManager and allows for instant upgrades through the timelock. Accordingly, instant upgrades for all system contracts are possible with the cooperation of the SecurityCouncil. The emergency state has been activated 1 time(s) since inception.\n\nFurthermore, the PolygonAdminMultisig is permissioned to manage the shared trusted aggregator (proposer and prover) for all participating Layer 2s, deactivate the emergency state, obsolete rollupTypes and manage operational parameters and fees in the AgglayerManager directly. The local admin of a specific Aggchain can manage their chain by choosing the trusted sequencer, manage forced batches and set the data availability config. For sovereign chains using pessimistic proofs they can manage any proof logic that might be used on top of the minimal pessimistic one. Creating new Layer 2s (of existing rollupType) is outsourced to the PolygonCreateRollupMultisig but can also be done by the PolygonAdminMultisig. Custom non-shared bridge escrows have their custom upgrade admins listed in the permissions section.",
"upgradesAndGovernanceImage": "agglayer"
}
+1 -58
{
"dac": {
"requiredMembers": 1,
"membersCount": 1
},
"description": "Set of parties responsible for signing and attesting to the availability of data.",
"risks": {
"committeeSecurity": {
"value": "1/1",
"sentiment": "bad",
"description": "The committee does not meet basic security standards, either due to insufficient size, lack of member diversity, or poorly defined threshold parameters. The system lacks an effective DA bridge and it is reliant on the assumption of an honest sequencer, creating significant risks to data integrity and availability.",
"orderHint": -0.01
},
"upgradeability": {
"value": "No delay",
"sentiment": "bad",
"description": "There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed."
},
"relayerFailure": {
"value": "No mechanism",
"sentiment": "bad",
"description": "The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity."
},
"economicSecurity": {
"value": {
"value": "None",
"sentiment": "bad",
"description": "There are no onchain assets at risk of being slashed in case of a data withholding attack, and the committee members are not publicly known."
},
"adjustSecurityRisk": false
},
"fraudDetection": {
"value": "None",
"sentiment": "bad",
"description": "There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer."
}
},
"technology": {
"description": "\n## Architecture\n\n\nPolygon CDK validiums utilize a data availability solution that relies on a Data Availability Committee (DAC) to ensure data integrity and manage off-chain transaction data. \nThis architecture comprises the following components:\n- **Operator**: A trusted entity that collects transactions, computes hash values for the transaction batch, and then requests and collects signatures from Committee members.\n- **Data Availability Committee (DAC)**: A group of nodes responsible for validating batch data against the hash values provided by the operator (sequencer), ensuring the data accurately represents the transactions.\n- **PolygonCommittee Contract**: Contract responsible for managing the data committee members list.\n\nEach DAC node independently validates the batch data, ensuring it matches the received hash values. \nUpon successful validation, DAC members store the hash values locally and generate signatures endorsing the batch's integrity. \nThe sequencer collects these signatures and submits the transactions batch hash together with the aggregated signature on Ethereum.\nThe PolygonCommittee contract is used during batch sequencing to verify that the signature posted by the sequencer was signed off by the DAC members stored in the contract.\n\n## DA Bridge Architecture\n\n\nThe DA commitments are posted to the destination chain through the sequencer inbox, using the inbox as a DA bridge.\nThe DA commitment consists of a data availability message provided as transaction input, made up of a byte array containing the signatures and all the addresses of the committee in ascending order.\nThe sequencer distributes the data and collects signatures from Committee members offchain. Only the DA message is posted by the sequencer to the destination chain inbox (the DA bridge).\nA separate contract, the PolygonCommittee contract, is used to manage the committee members list and verify the signatures before accepting the DA commitment.\n ",
"risks": [
{
"category": "Funds can be lost if",
"text": "a malicious committee signs a data availability attestation for an unavailable transaction batch."
},
{
"category": "Funds can be lost if",
"text": "the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades."
}
],
"references": [
{
"title": "Polygon CDK Validium Documentation",
"url": "https://docs.polygon.technology/cdk/architecture/cdk-validium/#data-availability-committee-dac"
}
]
},
"type": "Data Availability Committee"
}
null
+5 -21
{
"ethereum": {
"roles": [
{
"id": "Sequencer",
"name": "Sequencer",
"description": "Allowed to commit transactions from the current layer to the host chain.",
"accounts": [
{
"address": "eth:0x02c7D29a0eA1dce127F75daa254F7aDab1EE9bb2",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-2"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
},
{
"id": "Trusted Aggregator (Proposer)",
"name": "Trusted Aggregator (Proposer)",
"description": "Permissioned to post new state roots and global exit roots accompanied by ZK proofs.",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3-and-EOA-4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "EOA 4",
"url": "#EOA-3-and-EOA-4"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8499B48896660D549b3A55e6c68a3169B5f9B382",
"type": "EOA",
"isVerified": true,
"name": "0x8499…B382",
"url": "https://etherscan.io/address/0x8499B48896660D549b3A55e6c68a3169B5f9B382"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]\n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches \n * sole address that can force batches \n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments ",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x02c7D29a0eA1dce127F75daa254F7aDab1EE9bb2",
"address": "eth:0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471",
"type": "EOA",
"isVerified": true,
"name": "0x02c7…9bb2",
"url": "https://etherscan.io/address/0x02c7D29a0eA1dce127F75daa254F7aDab1EE9bb2"
"name": "0x34Da…f471",
"url": "https://etherscan.io/address/0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471"
}
],
"chain": "ethereum",
"description": "* A Sequencer - acting directly",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb"
}
],
"chain": "ethereum",
"description": "* A trusted Aggregator - acting directly",
"discoveryDrivenData": true
}
]
}
}
+30 -51
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B9671dB83CfcB4508bF361942488C5cA2b1286D#code"
},
{
"name": "Validium",
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0xb1714954bBc0162A36FB44934F3216aCE81C40d7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740743363,
"transactionHash": "0x351a86bec0a58f513f88024a6a845b25bce736ed78da4ef1c7cda90a717dd61e",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
}
],
"description": "The main system contract defining the Pentagon Games Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 1\n * **trustedSequencer**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb1714954bBc0162A36FB44934F3216aCE81C40d7#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0xC89AB4F5AEEe5cfbC34F8EEFA7B17414CC9391aE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1a26Fc326860bb2fbBa0ebc4f63F9349b254C00e"
],
"implementations": [
"eth:0xae5A7c682e4D531b1e2e264AcF71B9761748459a"
]
},
"chain": "ethereum",
"pastUpgrades": [
},
{
"timestamp": 1741254587,
"transactionHash": "0x99170a72a7fae5f222229ebf94e54391c4757e93203f61909fc882ff293c5dfd",
"timestamp": 1777640915,
"transactionHash": "0x5ec0f7293eb1ef1149a55aea2a4845d0b905fd808ffa05cd7f949c7ff2ed86e2",
"implementations": [
"eth:0xae5A7c682e4D531b1e2e264AcF71B9761748459a"
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 1/1).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"description": "System contract defining the Pentagon Games Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC89AB4F5AEEe5cfbC34F8EEFA7B17414CC9391aE#code"
"url": "https://etherscan.io/address/0xb1714954bBc0162A36FB44934F3216aCE81C40d7#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 3, EOA 4\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1a26Fc326860bb2fbBa0ebc4f63F9349b254C00e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1a26Fc326860bb2fbBa0ebc4f63F9349b254C00e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"PC"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "\n Prepare:\n \n 1. Install cargo make: `cargo install --debug --locked cargo-make`\n 2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n 3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n \n Verify:\n \n 1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n 2. Make sure docker is running by running `docker ps`\n 3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n 4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n 5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf\n ",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.\n ",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
]
}
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+6 -6
+2 -2
{
"self": {
"stateValidation": {
"value": "None",
"description": "Currently the system permits invalid state roots. More details in project overview.",
"sentiment": "bad",
"orderHint": null
},
"dataAvailability": {
"value": "PoS network",
"description": "Data is guaranteed to be available by an external proof of stake network of validators. On Ethereum, DA is attested via signed block headers.",
"sentiment": "warning"
},
"exitWindow": {
"value": "None",
"description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": 0
},
"sequencerFailure": {
"value": "Enqueue via L1",
"description": "Users can submit transactions to an L1 queue, but can't force them. The sequencers cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencers censor or are down, they are so for everyone. In Polygon PoS, the sequencers network corresponds to the PoS validators network, which is composed of 104 members.",
"description": "Users can submit transactions to an L1 queue, but can't force them. The sequencers cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencers censor or are down, they are so for everyone. In Polygon PoS, the sequencers network corresponds to the PoS validators network, which is composed of 103 members.",
"sentiment": "warning"
},
"proposerFailure": {
"value": "Cannot withdraw",
"description": "The PoS network is composed of 104 validators. Blocks are included in the chain only if signed by 2/3+1 of the network stake. It's currently not possible to join the set if the validator cap is reached. The current validator cap is set to 105. In the event of a failure in reaching consensus, withdrawals are frozen.",
"description": "The PoS network is composed of 103 validators. Blocks are included in the chain only if signed by 2/3+1 of the network stake. It's currently not possible to join the set if the validator cap is reached. The current validator cap is set to 105. In the event of a failure in reaching consensus, withdrawals are frozen.",
"sentiment": "warning"
}
}
}
+1 -1
[
{
"layer": {
"value": "Polygon PoS DA",
"sentiment": "warning",
"description": "The data is guaranteed to be available by Polygon proof of stake validators. On Ethereum, the data is indirectly referenced in the signed block header."
},
"bridge": {
"value": "104 validators",
"value": "103 validators",
"sentiment": "warning",
"description": "The bridge verifies that at least 2/3+1 of the Polygon PoS stake has signed off on the checkpoint. The StakeManager contract is the source of truth for the current validator set."
},
"mode": {
"value": "Transaction data"
}
}
]
+2 -2
{
"addresses": {
"ethereum": [
{
"name": "RootChain",
"isVerified": true,
"address": "eth:0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x536c55cFe4892E581806e10b38dFE8083551bd03"
],
"immutable": false
},
"chain": "ethereum",
"description": "Contract storing Polygon PoS chain checkpoints. Note that validity of these checkpoints is not verified, it is assumed to be valid if signed by 2/3 of the Polygon Validators.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287#code"
},
{
"name": "StateSender",
"isVerified": true,
"address": "eth:0x28e4F3a7f651294B9564800b2D01f35189A5bFbE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Smart contract allowing whitelisted addresses to send messages to contracts on Polygon PoS chain.",
"url": "https://etherscan.io/address/0x28e4F3a7f651294B9564800b2D01f35189A5bFbE#code"
},
{
"name": "RootChainManager",
"isVerified": true,
"address": "eth:0xA0c68C638235ee32657e8f720a23ceC1bFc77C77",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598436550,
"transactionHash": "0x1457a23862a321795074e16b0e48a9a9d90bcdd480c35061a20b8ad977e55617",
"implementations": [
"eth:0xD4888faB8bd39A663B63161F5eE1Eae31a25B653"
]
},
{
"timestamp": 1605685682,
"transactionHash": "0xbacffdae190eb0d874ee203c3b9724675ba2ec9bd3e4718e3f10ddf6a3829750",
"implementations": [
"eth:0x0BfF34272aF650632236703a3D6d8e3c133421Cb"
]
},
{
"timestamp": 1611341408,
"transactionHash": "0x818eaf233a292714599882e5de3d254de791a15c5d5d2033d6f61e5ba1f76e18",
"implementations": [
"eth:0x4015ccad9218b109d3339B356392C6EE8438e5d0"
]
},
{
"timestamp": 1614166940,
"transactionHash": "0x8d16d130b5625edf8f807ce8c02303fa7a09154c4127e38b5c7e612658e67272",
"implementations": [
"eth:0xEcFdefe1D67f93d3C154B67FD9d4ba62aB820DeA"
]
},
{
"timestamp": 1619610767,
"transactionHash": "0x54f5399ff524598d12940be626bbfe5a407f288981f2ed7912f42a51da160516",
"implementations": [
"eth:0x296AC8fb39279BbcFF6eDc9FddF1d2f4aEa1631b"
]
},
{
"timestamp": 1628155648,
"transactionHash": "0x481ab61601843d6186c15a98f078ab273cf654b476e62a96d25fbe5ab3fcdf08",
"implementations": [
"eth:0x7CfA0f105a4922E89666D7D63689d9C9b1eA7a19"
]
},
{
"timestamp": 1632639667,
"transactionHash": "0x8e3021aef9032d2bf227d7b767d066ba56b38426551091a8367249b152e548d0",
"implementations": [
"eth:0x6866FE89723713282BF6aB2fb8f03b0ee1833ABE"
]
},
{
"timestamp": 1632639667,
"transactionHash": "0x8e3021aef9032d2bf227d7b767d066ba56b38426551091a8367249b152e548d0",
"implementations": [
"eth:0x6aBB753C1893194DE4a83c6e8B4EadFc105Fd5f5"
]
},
{
"timestamp": 1661067643,
"transactionHash": "0x537afb3b705a7458e31ea0b4ec7e317dbad36645460676ff6171fac0516093a0",
"implementations": [
"eth:0x37D26DC2890b35924b40574BAc10552794771997"
]
},
{
"timestamp": 1724602307,
"transactionHash": "0x0524bb8a888d645cfd326c307cf4503d6fa859add7f36433aac7410e1a8727d0",
"implementations": [
"eth:0x1633012a2cB27eFBC2944f2E43b9197Bc3964359"
]
},
{
"timestamp": 1724756543,
"transactionHash": "0xf81d8f7db4694015fc14426465cc2936dc03e3a07da3a879dcea009ef2cf384a",
"implementations": [
"eth:0x8F372f5404514cec63A3F88BAac772Cc620F2281"
]
},
{
"timestamp": 1730734727,
"transactionHash": "0xa6a8a4e53e07aaca3a49c554781538762a1457b47b82e3f4a0edd54b18676f7d",
"implementations": [
"eth:0x639f13D5f30B47c792b6851238c05D0b623C77DE"
]
},
{
"timestamp": 1756213871,
"transactionHash": "0xfd9678899c41baea6024682e80529ab4971f2ec9c3a36bd074d15e7a3a095718",
"implementations": [
"eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa"
]
}
],
"description": "Main configuration contract to manage tokens, token types, escrows (predicates) for given token types. It also serves as an entry point for deposits and withdrawals effectively acting as a token router.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xA0c68C638235ee32657e8f720a23ceC1bFc77C77#code"
},
{
"name": "StakeManager",
"isVerified": true,
"address": "eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0x3AD88467E40399dc6Ae10427f8B0842348d9076c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1594902721,
"transactionHash": "0x8ea380d0c2c5c3ae9758aa459f6420eeb02aa25f38a5e1c4c471574780119f31",
"implementations": [
"eth:0x9a6bC66Ce2E008D59654bc0053Ce2d01f09C8B90"
]
},
{
"timestamp": 1603799035,
"transactionHash": "0xa7c483e80f2b9cf86703aca7d2b6ee8251b10f7ecc271f954bb05d89abef0a1d",
"implementations": [
"eth:0xf58Ec2F599EC32f2aE104984F41C1fB1377ECEBa"
]
},
{
"timestamp": 1616775849,
"transactionHash": "0x8f97d868f67d22169634a7033183b2cdaef15be181748a4e9d5e5a822b94384d",
"implementations": [
"eth:0xB955EE20A7F1D6F9bD68805e6EefE2cBc5d8220D"
]
},
{
"timestamp": 1616778324,
"transactionHash": "0xaf367e1e4e24042e20ce96416275d4224cdc5d92a2c9b56a61ac812f4213c3ab",
"implementations": [
"eth:0xd8EeB76bf9FEc7Efe3772383d5f38fd02243E56C"
]
},
{
"timestamp": 1624021689,
"transactionHash": "0xa939d22dafe9a2c271fc4a1cee1dadd3a79f5694b4ab9cf5341a8de0bc7b8373",
"implementations": [
"eth:0xd6F5c46d4E1a02f9D145cEe41d2F8AF30D8d2d76"
]
},
{
"timestamp": 1643183231,
"transactionHash": "0xed78a9b4198f37563e5ba20f2596eb04400dca7ec921b8de3cfa014cead6629f",
"implementations": [
"eth:0x644A0A4a4a9892f57Af7dFF1Db23cE2A235A255e"
]
},
{
"timestamp": 1668529703,
"transactionHash": "0xa60b52f74a37a43795e7e04abb7de4059e5f32e54e80d197128d0b3de5cd46b9",
"implementations": [
"eth:0xbA9Ac3C9983a3e967f0f387c75cCbD38Ad484963"
]
},
{
"timestamp": 1725467495,
"transactionHash": "0x74d19c35b5b4e6be7946db761b9365e3feb2c1914ae281ac7f6943c4d36e4bd5",
"implementations": [
"eth:0x97a3500083348A147F419b8a65717909762c389f"
]
},
{
"timestamp": 1730734727,
"transactionHash": "0xa6a8a4e53e07aaca3a49c554781538762a1457b47b82e3f4a0edd54b18676f7d",
"implementations": [
"eth:0x3AD88467E40399dc6Ae10427f8B0842348d9076c"
]
}
],
"description": "Main configuration contract to manage stakers and their voting power and validate checkpoint signatures.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908#code"
},
{
"name": "StakingInfo",
"isVerified": true,
"address": "eth:0xa59C847Bd5aC0172Ff4FE912C5d29E5A71A7512B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contains logging and getter functions about staking on Polygon.",
"url": "https://etherscan.io/address/0xa59C847Bd5aC0172Ff4FE912C5d29E5A71A7512B#code"
},
{
"name": "Registry",
"isVerified": true,
"address": "eth:0x33a02E6cC863D393d6Bf231B697b82F6e499cA71",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Maintains the addresses of the contracts used in the system.",
"url": "https://etherscan.io/address/0x33a02E6cC863D393d6Bf231B697b82F6e499cA71#code"
},
{
"name": "DepositManager",
"isVerified": true,
"address": "eth:0x401F6c983eA34274ec46f84D70b31C151321188b",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0xb00aa68b87256E2F22058fB2Ba3246EEc54A44fc"
],
"immutable": false
},
"chain": "ethereum",
"description": "Contract to deposit and escrow ETH, ERC20 or ERC721 tokens. Currently only used for POL.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x401F6c983eA34274ec46f84D70b31C151321188b#code"
},
{
"name": "WithdrawManager",
"isVerified": true,
"address": "eth:0x2A88696e0fFA76bAA1338F2C74497cC013495922",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x6F8a42cf6f3CE657B66A9d5849f1251dE7a35168"
],
"immutable": false
},
"chain": "ethereum",
"description": "Contract handling users' withdrawal finalization for tokens escrowed in DepositManager.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x2A88696e0fFA76bAA1338F2C74497cC013495922#code"
},
{
"name": "ERC20PredicateBurnOnly",
"isVerified": true,
"address": "eth:0x626fb210bf50e201ED62cA2705c16DE2a53DC966",
"address": "eth:0x4EeA1780c06709D7FA0BCaA6D0f1aB29673586c0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract used to initiate ERC20 token withdrawals. The function to handle Plasma proofs is empty, meaning exits cannot be challenged.",
"url": "https://etherscan.io/address/0x626fb210bf50e201ED62cA2705c16DE2a53DC966#code"
"url": "https://etherscan.io/address/0x4EeA1780c06709D7FA0BCaA6D0f1aB29673586c0#code"
},
{
"name": "ERC721PredicateBurnOnly",
"isVerified": true,
"address": "eth:0x36C2503d53C6948331144b85D1e74a3B96731d1b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract used to initiate ERC721 token withdrawals. The function to handle Plasma proofs is empty, meaning exits cannot be challenged.",
"url": "https://etherscan.io/address/0x36C2503d53C6948331144b85D1e74a3B96731d1b#code"
},
{
"name": "EventsHub",
"isVerified": true,
"address": "eth:0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0x0672777617CAA1E778083a4f74eBC997262C9EdD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1616774484,
"transactionHash": "0xa059a7a9e6d3a970d4c560decf0a819ffb712d5b0042f65a4a1d7fa288bc2aea",
"implementations": [
"eth:0x762540dB57aBdB6d32E5B5b8856986C0418A3b82"
]
},
{
"timestamp": 1638425391,
"transactionHash": "0x56107de4b0cfb9f1e22a05f4f4e3b6b18331288256f68001c2a90f0c4a43ce5f",
"implementations": [
"eth:0x0672777617CAA1E778083a4f74eBC997262C9EdD"
]
}
],
"description": "Contains events used by other contracts in the system.",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b#code"
},
{
"name": "ExitNFT",
"isVerified": true,
"address": "eth:0xDF74156420Bd57ab387B195ed81EcA36F9fABAca",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "NFTs used to represent a withdrawal in the withdrawal PriorityQueue (Only used for tokens initially deposited via DepositManager).",
"url": "https://etherscan.io/address/0xDF74156420Bd57ab387B195ed81EcA36F9fABAca#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract enforcing delay on code upgrades. The current delay is 0s.",
"url": "https://etherscan.io/address/0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf#code"
}
]
},
"escrows": [
{
"address": "0x401F6c983eA34274ec46f84D70b31C151321188b",
"sinceTimestamp": 1590850640,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x401F6c983eA34274ec46f84D70b31C151321188b",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0xb00aa68b87256E2F22058fB2Ba3246EEc54A44fc"
],
"immutable": false
},
"chain": "ethereum",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x401F6c983eA34274ec46f84D70b31C151321188b#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf",
"sinceTimestamp": 1598436664,
"tokens": "*",
"premintedTokens": [
"TRADE"
],
"contract": {
"isVerified": true,
"address": "eth:0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598436681,
"transactionHash": "0xd7497c770cd4812ca146b91a14ba1bac4198ff8dc7b9e5c3444906d297f275a1",
"implementations": [
"eth:0xC760DefB87E5194E62b282c2a76CBCe4766d7345"
]
},
{
"timestamp": 1605685682,
"transactionHash": "0xbacffdae190eb0d874ee203c3b9724675ba2ec9bd3e4718e3f10ddf6a3829750",
"implementations": [
"eth:0x608669d4914Eec1E20408Bc4c9eFFf27BB8cBdE5"
]
},
{
"timestamp": 1724602307,
"transactionHash": "0x0524bb8a888d645cfd326c307cf4503d6fa859add7f36433aac7410e1a8727d0",
"implementations": [
"eth:0xb774EBbeF817390483FEA5bEd0F0cB0EDEBE4065"
]
},
{
"timestamp": 1724756543,
"transactionHash": "0xf81d8f7db4694015fc14426465cc2936dc03e3a07da3a879dcea009ef2cf384a",
"implementations": [
"eth:0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB"
]
},
{
"timestamp": 1756213871,
"transactionHash": "0xfd9678899c41baea6024682e80529ab4971f2ec9c3a36bd074d15e7a3a095718",
"implementations": [
"eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6"
]
}
],
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x9923263fA127b3d1484cFD649df8f1831c2A74e4",
"sinceTimestamp": 1613100777,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x9923263fA127b3d1484cFD649df8f1831c2A74e4",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0x94D40724d6aA4AB313065006E4bA8CA448dcDfae"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1613101382,
"transactionHash": "0x7e108d7b6c1a76278a8270dceaeff6ac65029a12cef33d12b6b83c848f5a8609",
"implementations": [
"eth:0xFdc26CDA2d2440d0E83CD1DeE8E8bE48405806DC"
]
},
{
"timestamp": 1632639667,
"transactionHash": "0x8e3021aef9032d2bf227d7b767d066ba56b38426551091a8367249b152e548d0",
"implementations": [
"eth:0x0f92D459B20D21F6bf9E02056EA9165d3f78bA62"
]
},
{
"timestamp": 1724602307,
"transactionHash": "0x0524bb8a888d645cfd326c307cf4503d6fa859add7f36433aac7410e1a8727d0",
"implementations": [
"eth:0xab00328234bC22430c78847094A68a6836574fFB"
]
},
{
"timestamp": 1724756543,
"transactionHash": "0xf81d8f7db4694015fc14426465cc2936dc03e3a07da3a879dcea009ef2cf384a",
"implementations": [
"eth:0x94D40724d6aA4AB313065006E4bA8CA448dcDfae"
]
}
],
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x9923263fA127b3d1484cFD649df8f1831c2A74e4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30",
"sinceTimestamp": 1598437971,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30",
"upgradeability": {
"proxyType": "Polygon proxy",
"admins": [
"eth:0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf"
],
"implementations": [
"eth:0xeB185ED8f664D105903EF434E5becd214a8AC874"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598438008,
"transactionHash": "0x9c64c32cd9c5ce9902b43fda233d5a9aa7a40659521c2a2e440831269b65758c",
"implementations": [
"eth:0xb6a508B418d49080Ce4AE4F140e585A0f95C1326"
]
},
{
"timestamp": 1605685682,
"transactionHash": "0xbacffdae190eb0d874ee203c3b9724675ba2ec9bd3e4718e3f10ddf6a3829750",
"implementations": [
"eth:0x499a865ac595e6167482d2bd5A224876baB85ab4"
]
},
{
"timestamp": 1632639667,
"transactionHash": "0x8e3021aef9032d2bf227d7b767d066ba56b38426551091a8367249b152e548d0",
"implementations": [
"eth:0x54006763154c764da4AF42a8c3cfc25Ea29765D5"
]
},
{
"timestamp": 1724602307,
"transactionHash": "0x0524bb8a888d645cfd326c307cf4503d6fa859add7f36433aac7410e1a8727d0",
"implementations": [
"eth:0x3129B90fB7bF58A0B36226f2e6547B89C0BbdE42"
]
},
{
"timestamp": 1724756543,
"transactionHash": "0xf81d8f7db4694015fc14426465cc2936dc03e3a07da3a879dcea009ef2cf384a",
"implementations": [
"eth:0xeB185ED8f664D105903EF434E5becd214a8AC874"
]
}
],
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x21ada4D8A799c4b0ADF100eB597a6f1321bCD3E4",
"sinceTimestamp": 1627373890,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x21ada4D8A799c4b0ADF100eB597a6f1321bCD3E4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"upgradableBy": [
{
"name": "PolygonMultisig",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x21ada4D8A799c4b0ADF100eB597a6f1321bCD3E4#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xa45b966996374E9e65ab991C6FE4Bfce3a56DDe8",
"sinceTimestamp": 1590840981,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xa45b966996374E9e65ab991C6FE4Bfce3a56DDe8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0xa45b966996374E9e65ab991C6FE4Bfce3a56DDe8#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
}
+1 -1
{
"baseTimestamp": 1776866125,
"baseTimestamp": 1777964012,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+275 -74
+1 -1
{
"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 blobs. This ensures that it will be available for enough time.",
"references": [],
"risks": []
}
],
"exitMechanisms": [
{
"name": "Regular exit",
"description": "The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is finalized the funds become available for withdrawal on L1. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force any transaction via L1",
"description": "Users can submit a blob reference containing a standalone transaction by calling the `saveForcedInclusion()` function on the `MainnetInbox` contract.\n Once any forced inclusion has been queued for 9m 36s, whitelisted proposers cannot submit new proposals unless they process all due forced inclusions.\n If the oldest queued forced inclusion is still ignored for 1d 1h, proposing becomes permissionless and anyone can include it.",
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, saveForcedInclusion function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, propose function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
}
],
"risks": []
},
"operator": {
"name": "The system uses whitelist-based sequencing and proving",
"description": "The system uses a whitelist-based sequencing mechanism to allow for fast preconfirmations on the L2. On the L1, whitelisted preconfirmers can propose Taiko L2 data to the MainnetInbox contract.\n The whitelist is managed by the `PreconfWhitelist` contract, which currently has 1 active operators registered.\n Forced inclusions become mandatory after 9m 36s and proposing becomes permissionless after 1d 1h if the queue is still ignored.\n Proving is controlled separately by `ProverWhitelist`, which currently has 1 whitelisted prover.\n Non-whitelisted actors must wait 5d after an unproven proposal before the whitelist is dropped. MainnetInbox currently sets minBond=0 and livenessBond=0.\n Currently, proving a proposal requires SGX (Geth), plus either SGX (Reth), SP1, or RISC0.",
"description": "The system uses a whitelist-based sequencing mechanism to allow for fast preconfirmations on the L2. On the L1, whitelisted preconfirmers can propose Taiko L2 data to the MainnetInbox contract.\n The whitelist is managed by the `PreconfWhitelist` contract, which currently has 3 active operators registered.\n Forced inclusions become mandatory after 9m 36s and proposing becomes permissionless after 1d 1h if the queue is still ignored.\n Proving is controlled separately by `ProverWhitelist`, which currently has 1 whitelisted prover.\n Non-whitelisted actors must wait 5d after an unproven proposal before the whitelist is dropped. MainnetInbox currently sets minBond=0 and livenessBond=0.\n Currently, proving a proposal requires SGX (Geth), plus either SGX (Reth), SP1, or RISC0.",
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, propose function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, prove function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "PreconfWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149#code"
},
{
"title": "ProverWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
}
],
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
]
},
"stateValidation": {
"categories": [
{
"title": "Validity proofs",
"description": "Taiko uses a multi-proof system to validate state transitions. The system requires two proofs among four available verifiers: SGX (Geth), SGX (Reth), SP1, and RISC0. The use of SGX (Geth) is mandatory, while the other three can be used interchangeably. This means that a proposal range can be proven without providing a ZK proof if SGX (Geth) and SGX (Reth) are used together. New proposals target a proof submission cadence of 4h. Proving is currently centralized behind ProverWhitelist with 1 whitelisted prover. Non-whitelisted actors must wait 5d before the whitelist is dropped, and MainnetInbox currently sets minBond=0 and livenessBond=0. The multi-proof system allows detecting bugs in the verifiers if they produce different results for the same proposal range. If such a bug is detected, the system gets automatically paused.",
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, getConfig function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, prove function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "ProverWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a malicious block is proven by compromised SGX instances."
}
]
}
]
}
}
+72 -32
{
"ethereum": {
"roles": [
{
"id": "Sequencer",
"name": "Sequencer",
"description": "Allowed to commit transactions from the current layer to the host chain.",
"accounts": [
{
"address": "eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d",
"address": "eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1"
"url": "#EOA-1,-EOA-2-and-EOA-3"
},
{
"address": "eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-1,-EOA-2-and-EOA-3"
},
{
"address": "eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-1,-EOA-2-and-EOA-3"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "DAO",
"name": "DAO",
"accounts": [
{
"address": "eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261",
"type": "Contract",
"isVerified": true,
"name": "0x9CDf…f261",
"url": "https://etherscan.io/address/0x9CDf589C941ee81D75F34d3755671d614f7cf261"
}
],
"chain": "ethereum",
"description": "The main contract and entrypoint of the Aragon-based DAO governance framework. Fine-grained DAO permissions, proposals, voting and thresholds are configured here.\n* Can upgrade **with no delay**\n * AutomataDcapV3Attestation [via: TaikoDAOController]\n * Taiko Token [via: TaikoDAOController]\n * MainnetInbox [via: TaikoDAOController]\n * TaikoDAOController \n * AutomataDcapV3Attestation [via: TaikoDAOController]\n * QuotaManager [via: TaikoDAOController]\n * MainnetERC20Vault [via: TaikoDAOController]\n * SignalServiceForkRouter [via: TaikoDAOController]\n * MainnetBridge [via: TaikoDAOController]\n * ProverWhitelist [via: TaikoDAOController]\n * L1SharedAddressManager [via: TaikoDAOController]\n * TaikoDAOController \n * PreconfWhitelist [via: TaikoDAOController]\n* Can interact with TaikoRisc0Verifier\n * update the trusted image ids [via: TaikoDAOController]\n* Can interact with SgxVerifier\n * can add new instances without a DCAP attestation [via: TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * can update the program being verified [via: TaikoDAOController]\n* Can interact with MainnetInbox\n * pause and unpause the rollup system [via: TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * can update the program being verified [via: TaikoDAOController]\n* Can interact with TaikoSP1Verifier\n * manage trusted program hashes [via: TaikoDAOController]\n* Can interact with SgxVerifier\n * can add new instances without a DCAP attestation [via: TaikoDAOController]\n* Can interact with ProverWhitelist\n * manage the prover whitelist [via: TaikoDAOController]\n* Can interact with L1SharedAddressManager\n * can update the contract address for a given name [via: TaikoDAOController]\n* Can interact with PreconfWhitelist\n * pause/unpause, manage operator and ejector roles [via: TaikoDAOController]",
"description": "The main contract and entrypoint of the Aragon-based DAO governance framework. Fine-grained DAO permissions, proposals, voting and thresholds are configured here.\n* Can upgrade **with no delay**\n * AutomataDcapV3Attestation [via: TaikoDAOController]\n * Taiko Token [via: TaikoDAOController]\n * MainnetInbox [via: TaikoDAOController]\n * TaikoDAOController \n * AutomataDcapV3Attestation [via: TaikoDAOController]\n * QuotaManager [via: TaikoDAOController]\n * MainnetERC20Vault [via: TaikoDAOController]\n * SignalService [via: TaikoDAOController]\n * MainnetBridge [via: TaikoDAOController]\n * ProverWhitelist [via: TaikoDAOController]\n * L1SharedAddressManager [via: TaikoDAOController]\n * TaikoDAOController \n * PreconfWhitelist [via: TaikoDAOController]\n* Can interact with TaikoRisc0Verifier\n * update the trusted image ids [via: TaikoDAOController]\n* Can interact with SgxVerifier\n * can add new instances without a DCAP attestation [via: TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * can update the program being verified [via: TaikoDAOController]\n* Can interact with MainnetInbox\n * pause and unpause the rollup system [via: TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * can update the program being verified [via: TaikoDAOController]\n* Can interact with TaikoSP1Verifier\n * manage trusted program hashes [via: TaikoDAOController]\n* Can interact with SignalService\n * pause and unpause proofs and verification [via: TaikoDAOController]\n* Can interact with SgxVerifier\n * can add new instances without a DCAP attestation [via: TaikoDAOController]\n* Can interact with ProverWhitelist\n * manage the prover whitelist [via: TaikoDAOController]\n* Can interact with L1SharedAddressManager\n * can update the contract address for a given name [via: TaikoDAOController]\n* Can interact with PreconfWhitelist\n * pause/unpause, manage operator and ejector roles [via: TaikoDAOController]",
"discoveryDrivenData": true
},
{
"id": "Taiko Multisig",
"name": "Taiko Multisig",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ProverWhitelist\n * manage the prover whitelist \n* Can interact with PreconfWhitelist\n * manage the ejecter role ",
"accounts": [
{
"address": "eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F",
"type": "Contract",
"isVerified": true,
"name": "0x9CBe…9C7F",
"url": "https://etherscan.io/address/0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163",
"type": "EOA",
"isVerified": true,
"name": "Gustavo Gonzalez Agent",
"url": "https://etherscan.io/address/0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163"
},
{
"address": "eth:0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a",
"type": "EOA",
"isVerified": true,
"name": "0xDC4e…8a0a",
"url": "https://etherscan.io/address/0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a"
},
{
"address": "eth:0x0aED2375549D1115e180bd0caea829C429Ea50B3",
"type": "EOA",
"isVerified": true,
"name": "0x0aED…50B3",
"url": "https://etherscan.io/address/0x0aED2375549D1115e180bd0caea829C429Ea50B3"
},
{
"address": "eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439",
"type": "EOA",
"isVerified": true,
"name": "0xCf76…c439",
"url": "https://etherscan.io/address/0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439"
},
{
"address": "eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438",
"type": "EOA",
"isVerified": true,
"name": "0x0F02…0438",
"url": "https://etherscan.io/address/0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438"
},
{
"address": "eth:0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1",
"type": "EOA",
"isVerified": true,
"name": "0x3b1D…d5F1",
"url": "https://etherscan.io/address/0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "Taiko Foundation Treasury Multisig",
"name": "Taiko Foundation Treasury Multisig",
"description": "A Multisig with 2/3 threshold. ",
"accounts": [
{
"address": "eth:0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da",
"type": "Contract",
"isVerified": true,
"name": "0x363e…B3Da",
"url": "https://etherscan.io/address/0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"type": "Contract",
"isVerified": true,
"name": "TaikoDAOController",
"url": "https://etherscan.io/address/0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
},
{
"address": "eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438",
"type": "EOA",
"address": "eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10",
"type": "Contract",
"isVerified": true,
"name": "0x0F02…0438",
"url": "https://etherscan.io/address/0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438"
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1",
"type": "EOA",
"isVerified": true,
"name": "0x3b1D…d5F1",
"url": "https://etherscan.io/address/0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1"
}
],
"discoveryDrivenData": true
},
{
"id": "Gattaca",
"name": "Gattaca",
"description": "A Multisig with 1/2 threshold. ",
"accounts": [
{
"address": "eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E",
"type": "Contract",
"isVerified": true,
"name": "0x6268…878E",
"url": "https://etherscan.io/address/0x6268d189E011Aa53A2f09A1FE159445BeB3d878E"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x39cc8f0FEb8DFBa96674098a80eC304879576E6D",
"type": "EOA",
"isVerified": true,
"name": "0x39cc…6E6D",
"url": "https://etherscan.io/address/0x39cc8f0FEb8DFBa96674098a80eC304879576E6D"
},
{
"address": "eth:0xc4414B079bC4A013916B3dc241555F6f505c1619",
"type": "EOA",
"isVerified": true,
"name": "Gattaca Agent",
"url": "https://etherscan.io/address/0xc4414B079bC4A013916B3dc241555F6f505c1619"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/2 threshold. \nMember of Taiko Foundation Treasury Multisig.\n",
"accounts": [
{
"address": "eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10",
"type": "Contract",
"isVerified": true,
"name": "0xF28C…8C10",
"url": "https://etherscan.io/address/0xF28C8D6b44361255FA7C116d09ccD5F914398C10"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4757D97449acA795510b9f3152C6a9019A3545c3",
"type": "EOA",
"isVerified": true,
"name": "0x4757…45c3",
"url": "https://etherscan.io/address/0x4757D97449acA795510b9f3152C6a9019A3545c3"
},
{
"address": "eth:0x7057A707621Fadd422f84DE94A9dF7c4F1AC595C",
"type": "EOA",
"isVerified": true,
"name": "0x7057…595C",
"url": "https://etherscan.io/address/0x7057A707621Fadd422f84DE94A9dF7c4F1AC595C"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-2-and-EOA-3",
"name": "EOA 1, EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7",
"type": "EOA",
"isVerified": true,
"name": "0x000c…3DE7",
"url": "https://etherscan.io/address/0x000cb000E880A92a8f383D69dA2142a969B93DE7"
},
{
"address": "eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990",
"type": "EOA",
"isVerified": true,
"name": "0x5F62…9990",
"url": "https://etherscan.io/address/0x5F62d006C10C009ff50C878Cd6157aC861C99990"
},
{
"address": "eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d",
"type": "EOA",
"isVerified": true,
"name": "0xCbeB…9e9d",
"url": "https://etherscan.io/address/0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d"
}
],
"chain": "ethereum",
"description": "* A Sequencer - acting directly",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412",
"type": "EOA",
"isVerified": true,
"name": "0xF616…d412",
"url": "https://etherscan.io/address/0xF616A4f81857CFEe54A4A049Ec187172574bd412"
}
],
"chain": "ethereum",
"description": "* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 3d delay** [via: TimelockController with 3d delay]\n * propose transactions \n* Can interact with RiscZeroVerifierRouter\n * add/remove verifiers and the selectors they are mapped to **with 3d delay** [via: TimelockController with 3d delay]\n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier ",
"discoveryDrivenData": true
}
]
},
"taiko": {
"roles": [],
"actors": [
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "taiko:0x0000000000000000000000000000000000000000",
"type": "EOA",
"isVerified": true,
"name": "0x0000…0000",
"url": "https://taikoscan.io/address/0x0000000000000000000000000000000000000000"
}
],
"chain": "taiko",
"description": "* Can interact with SignalService\n * pause and unpause proofs and verification ",
"discoveryDrivenData": true
}
]
}
}
+201 -40
{
"addresses": {
"ethereum": [
{
"name": "TaikoRisc0Verifier",
"isVerified": true,
"address": "eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using RISC Zero.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b#code"
},
{
"name": "MainnetInbox",
"isVerified": true,
"address": "eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772642207,
"transactionHash": "0x7576f1179250453948b37648a748aaade28c40b33e358fa0cbe21be6b0368601",
"implementations": [
"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42"
]
}
],
"description": "The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. It manages bonds, validates batch parameters, and acts as the state machine for the L2.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"name": "TaikoSP1Verifier",
"isVerified": true,
"address": "eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using SP1.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x96337327648dcFA22b014009cf10A2D5E2F305f6#code"
},
{
"name": "MainnetVerifier",
"isVerified": true,
"address": "eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Enforces the Taiko Multiprover policy and routes to the downstream router contracts.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9cAa4948381590900FCdd8a4F06EB24138eD665d#code"
},
{
"name": "ProverWhitelist",
"isVerified": true,
"address": "eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772641607,
"transactionHash": "0x9ae9f5d95306d569099fbf42c0aa730a6b6e84e18f35e5f1a1374025597762d5",
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
}
],
"description": "Defines the whitelist of addresses allowed to prove proposals. Non-whitelisted provers must wait for the permissionless proving delay before they can submit proofs.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO\n * **proverManager**: Taiko Multisig",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
},
{
"name": "MainnetERC20Vault",
"isVerified": true,
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x109f0a0ff2b3b57f3a94bc1dd39159a7e3af9ec0141be56d49d7bb1db94279c2",
"implementations": [
"eth:0x15D9F7e12aEa18DAEF5c651fBf97567CAd4a4BEc"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xC722d9f3f8D60288589F7f67a9CFAd34d3B9bf8E"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x4F750D13005444407D44dAA30922128db0374ca1"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0xF8bdaC4E68bA2595Be8381aaa5456917e374E737"
]
},
{
"timestamp": 1718023547,
"transactionHash": "0x42a1dacf03a4032209ca4a6b922ffe2ebb34925c16a6632d8590cf3374ae59d8",
"implementations": [
"eth:0x75b5E276c5C1e9378E899cb3A87977421980Eb22"
]
},
{
"timestamp": 1719903815,
"transactionHash": "0x13f54109cb7f7507ad03562b06ea8d8b472043186e44252302583bc64acfb20b",
"implementations": [
"eth:0xa303784B0557BF1F1FB8b8abEF2B18a005722689"
]
},
{
"timestamp": 1721133959,
"transactionHash": "0xee632b50626beb2f7db84c9c7f303f29366f86dfaccd24ddd831ceac714c20e5",
"implementations": [
"eth:0x7ACFBb369a552C45d402448A4d64b9da54C3FF30"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63"
]
}
],
"description": "Shared vault for Taiko chains for bridged ERC20 tokens.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1748146475,
"transactionHash": "0x5da0579fa85d4712efb3d66c95ee884d73259ede79760d25f685e4c3c3c4c0c1",
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\nMember of Taiko Foundation Treasury Multisig.\n* Roles:\n * **admin**: DAO\n * **owner**: DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746942803,
"transactionHash": "0x8328e607699f67108c9b259225d5316a079ad52e648e6188c3fce7bf99abec38",
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DAO\n * **owner**: DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SgxVerifier",
"isVerified": true,
"address": "eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x08568Df252ecf37D6C3eFD24f6ca3688118697F1#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 3d.\n* Roles:\n * **canceller**: EOA 2\n * **defaultAdmin**: TimelockController; ultimately EOA 2\n * **executor**: EOA 2\n * **proposer**: EOA 2",
"description": "A timelock with access control. The current minimum delay is 3d.\n* Roles:\n * **canceller**: EOA 4\n * **defaultAdmin**: TimelockController; ultimately EOA 4\n * **executor**: EOA 4\n * **proposer**: EOA 4",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0b144E07A0826182B6b59788c34b32Bfa86Fb711#code"
},
{
"name": "SignerList",
"isVerified": true,
"address": "eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x584fE70fE82F728f0Fe26488857D623f3B59E070"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x584fE70fE82F728f0Fe26488857D623f3B59E070"
]
}
],
"description": "A signer list for registering agents, similar to a Multisig.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F95E6968EC1B28c794CF1aD99609431de5179c2#code"
},
{
"name": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747268759,
"transactionHash": "0x3b734f101aeef12dbbef6a43abae4176ac967c5ab8ea0194c6d890dafd6573ad",
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
}
],
"description": "Contract managing SGX attestation certificates.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261#code"
},
{
"name": "Taiko Token",
"isVerified": true,
"address": "eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714033799,
"transactionHash": "0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34",
"implementations": [
"eth:0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb"
]
},
{
"timestamp": 1715406371,
"transactionHash": "0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c",
"implementations": [
"eth:0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c"
]
},
{
"timestamp": 1716969803,
"transactionHash": "0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2",
"implementations": [
"eth:0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F"
]
},
{
"timestamp": 1717732931,
"transactionHash": "0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04",
"implementations": [
"eth:0x55833dA2962c2330ccCF043ff8037e6D2939bCF6"
]
},
{
"timestamp": 1719904547,
"transactionHash": "0xc9f468d33d8d55911e4e5b5c301ed244a5f81ab0f389d2b4f398eb5b89d417ef",
"implementations": [
"eth:0xcfe803378D79d1180EbF030455040EA6513869dF"
]
},
{
"timestamp": 1747097243,
"transactionHash": "0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95",
"implementations": [
"eth:0x87C752b0F70cAa237Edd7571B0845470A37DE040"
]
},
{
"timestamp": 1747285931,
"transactionHash": "0x986fc2c7ae945cdd358b2f2ae54364b350026f965f5861ed470f78e145f12626",
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
}
],
"description": "ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a098988600d87650Fb061FfAff08B97149Fa84D#code"
},
{
"name": "EmergencyMultisig",
"isVerified": true,
"address": "eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd#code"
},
{
"name": "EncryptionRegistry",
"isVerified": true,
"address": "eth:0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A registry for signers (of the Security Council) to appoint agents to operate on their behalf. These agents can also register their encryption keys for encrypted emergency proposal support.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550639,
"transactionHash": "0x207dec76298211a2d988b0de3e9a3f8da0edb4524a011e72f28200be08edd4c6",
"implementations": [
"eth:0xEE8FC1dbb8D345f5bF35dFb939C6f9EdC5fCDAFc"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xde1b1FBe7D721af4A56651272ef91A59B7303323"
]
},
{
"timestamp": 1715787263,
"transactionHash": "0x46a6d47c15505a1259c64d1e09353680e525b2706dd9e095e15019dda7c1b295",
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
}
],
"description": "Contract managing SGX attestation certificates.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8d7C954960a36a7596d7eA4945dDf891967ca8A3#code"
},
{
"name": "RiscZeroVerifierRouter",
"isVerified": true,
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (TimelockController).\n* Roles:\n * **owner**: TimelockController; ultimately EOA 2",
"description": "A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (TimelockController).\n* Roles:\n * **owner**: TimelockController; ultimately EOA 4",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319#code"
},
{
"name": "QuotaManager",
"isVerified": true,
"address": "eth:0x91f67118DD47d502B1f0C354D0611997B022f29E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xdb627bfD79e81fE42138Eb875287F94FAd5BBc64"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1715578067,
"transactionHash": "0x03df9b2af0bebae6b9a3d413c98e53ccd3c629e10010f2c1c14d1c6da630a7d7",
"implementations": [
"eth:0x49c5e5F131314Bb24b17E249960F8B12F925ef22"
]
},
{
"timestamp": 1717663871,
"transactionHash": "0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131",
"implementations": [
"eth:0xdb627bfD79e81fE42138Eb875287F94FAd5BBc64"
]
}
],
"description": "Defines withdrawal limits per token.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x91f67118DD47d502B1f0C354D0611997B022f29E#code"
},
{
"name": "OptimisticTokenVotingPlugin",
"isVerified": true,
"address": "eth:0x989E348275b659d36f8751ea1c10D146211650BE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
}
],
"description": "An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x989E348275b659d36f8751ea1c10D146211650BE#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x0898d14da2f38d677085073d2decfb7ca32902406df2e7a84f6615d9c92d4516",
"implementations": [
"eth:0xE1d91bAE44B70bD66e8b688B8421fD62dcC33c72"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d"
]
},
{
"timestamp": 1717663871,
"transactionHash": "0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131",
"implementations": [
"eth:0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3"
]
},
{
"timestamp": 1747298447,
"transactionHash": "0x97789b6668d0a287b1f57bb6c8e23cce62308fb887139faeb0f06b77855995fd",
"implementations": [
"eth:0x0783Ee019C9b0f918A741469bD488A88827b3617"
]
},
{
"timestamp": 1747578311,
"transactionHash": "0x0ae99d24b294622e3d3868c8dca911a5936231ce1f97254ec0c6a6f65f7aa81c",
"implementations": [
"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c"
]
},
{
"timestamp": 1774964687,
"transactionHash": "0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36",
"implementations": [
"eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6"
]
},
{
"timestamp": 1777562051,
"transactionHash": "0xfcd6ca82025b847a3508db2d3c82327a19e3c4afda867acae8c09da147667036",
"implementations": [
"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752"
]
}
],
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9e0a24964e5397B566c1ed39258e21aB5E35C77C#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: EOA 2",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: EOA 4",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9F9994Eb4Cb5200198FEfb470f8b50301662e696#code"
},
{
"name": "SgxVerifier",
"isVerified": true,
"address": "eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks.\n* Roles:\n * **owner**: TaikoDAOController; ultimately DAO",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "MainnetBridge",
"isVerified": true,
"address": "eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x99673a767d36f5f3bc4af415072f97f344b6a5ec39e0d85eb799691787b1b98b",
"implementations": [
"eth:0x91d593d34f2E1904cDCe3D5290a74563F87bCF6f"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0x4A1091c2fb37D9C4a661c2384Ff539d94CCF853D"
]
},
{
"timestamp": 1716358991,
"transactionHash": "0x5a60c5815947a199cc84e1bc75539e01a202597b20c1f87bd9d02f8be6453abd",
"implementations": [
"eth:0xc71CC3B0a47149878fad337fb2ca54E546A645ba"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x02F21B4C3d4dbfF70cE851741175a727c8D782Be"
]
},
{
"timestamp": 1716958835,
"transactionHash": "0x8a380a25d03a740d9535dfc3e2fc4f6960e22d49ad88b8d85f59af4013aedf87",
"implementations": [
"eth:0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0"
]
},
{
"timestamp": 1717148087,
"transactionHash": "0xf21f6bf720767db3bc9b63ef69cacb20340bdedfb6589e6a4d11fe082dfa7bd6",
"implementations": [
"eth:0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5"
]
},
{
"timestamp": 1717481351,
"transactionHash": "0xc0ba6558642b93ee892bee0705dbcfb5130c53637e6266bfa5e3a6501167d6f2",
"implementations": [
"eth:0x3c326483EBFabCf3252205f26dF632FE83d11108"
]
},
{
"timestamp": 1717732931,
"transactionHash": "0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04",
"implementations": [
"eth:0xD28f2c26aD8bA88b0691F6BB41Ff021878052561"
]
},
{
"timestamp": 1719502583,
"transactionHash": "0x2f14829c3da1a755a74948d5716a625256ae7e2481e538b0660a8da11c84dc2e",
"implementations": [
"eth:0x40f8Be2969D0D5717768F6799c8840e5D5D603F7"
]
},
{
"timestamp": 1719903815,
"transactionHash": "0x13f54109cb7f7507ad03562b06ea8d8b472043186e44252302583bc64acfb20b",
"implementations": [
"eth:0x01E7D369a619eF1B0E92563d8737F42C09789986"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0xAc96FF285158bceBB8573D20d853e86BB2915aF3"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F"
]
}
],
"description": "Shared bridge for Taiko chains for bridged ETH.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC#code"
},
{
"name": "Multisig",
"isVerified": true,
"address": "eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7dA1C25E915438720692bC55eb3a7170cA90321#code"
},
{
"name": "L1SharedAddressManager",
"isVerified": true,
"address": "eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0xf83131446154db1fb4013c20e9468c36f71085dbdf4304f8e2ef5ac13f2e3670",
"implementations": [
"eth:0x9cA1Ab10c9fAc5153F8b78E67f03aAa69C9c6A15"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xF1cA1F1A068468E1dcF90dA6add185467de80943"
]
},
{
"timestamp": 1716722231,
"transactionHash": "0xe1ef58455de0b0331228e487d54720290ed8a73f709d2146bd43330d4a360bd3",
"implementations": [
"eth:0x9496502d7D121B3D5eF25cA6c58d4f7593398a17"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0x2f7126f78365AD54EAB26fD7faEc60435008E2fD"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449"
]
}
],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: TaikoDAOController; ultimately DAO\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa#code"
},
{
"name": "PreconfWhitelist",
"isVerified": true,
"address": "eth:0xFD019460881e6EeC632258222393d5821029b2ac",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753275179,
"transactionHash": "0x2d127d401f9d22fd4c4f8c14773f2e98e9a3e87837f78bb1d2881a8fcb91cd59",
"implementations": [
"eth:0x86f0AeFA26A1447bbE62bd2bE1D30ff3353B88fB"
]
},
{
"timestamp": 1754913371,
"transactionHash": "0x1000b14e86d8db17931f65e877e2eb13cb3990d0a129eee1aff21ce6ba96d2cf",
"implementations": [
"eth:0x44eC275996BD69361EF062ed488882a58256CF11"
]
},
{
"timestamp": 1756244927,
"transactionHash": "0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00",
"implementations": [
"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc"
]
},
{
"timestamp": 1774964687,
"transactionHash": "0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36",
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
}
],
"description": "Contains the whitelist of addresses allowed to propose batches on L1 and issue preconfirmations. It dynamically selects a single operator for a given epoch using the Ethereum beacon block root as a source of randomness.\n* Roles:\n * **_ejectorManager**: Taiko Multisig\n * **admin**: TaikoDAOController; ultimately DAO\n * **operatorMapping**: EOA 1\n * **owner**: TaikoDAOController; ultimately DAO",
"description": "Contains the whitelist of addresses allowed to propose batches on L1 and issue preconfirmations. It dynamically selects a single operator for a given epoch using the Ethereum beacon block root as a source of randomness.\n* Roles:\n * **_ejectorManager**: Taiko Multisig\n * **admin**: TaikoDAOController; ultimately DAO\n * **operatorMapping**: EOA 1, EOA 2, EOA 3\n * **owner**: TaikoDAOController; ultimately DAO",
"upgradableBy": [
{
"name": "DAO",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFD019460881e6EeC632258222393d5821029b2ac#code"
}
],
"taiko": [
{
"name": "Anchor",
"isVerified": true,
"address": "taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA",
"address": "taiko:0x1670000000000000000000000000000000010001",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA"
]
},
"chain": "taiko",
"description": "Immutable L2 contract that anchors L1 block details to L2 for cross-layer communication and manages EIP-1559 gas pricing for L2 operations.\n",
"pastUpgrades": [
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0x75E76c367D6be621bD90e4b1e32fBB3fF59150b6"
]
},
{
"timestamp": 1747624787,
"transactionHash": "0x07f68497c517181b0110a51906fb5f5938aafeda78e07cb0480de417c9083f1b",
"implementations": [
"taiko:0x3cfe9b8E0e12289D78c91295c8353aB1731F06E1"
]
},
{
"timestamp": 1754914103,
"transactionHash": "0x2f0b5bd30b1cfc929bb03518ce19a588d431bba847ae7c84daedcc2ddf521bf2",
"implementations": [
"taiko:0x1E3Fa8AD01327D891aB89B13091F93E4eaF7E8A5"
]
},
{
"timestamp": 1755179444,
"transactionHash": "0xf9f899beb269bd2cb1b74001493ec9ac41d83191b79b71878422c3f5a8fdb15b",
"implementations": [
"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0"
]
},
{
"timestamp": 1770777907,
"transactionHash": "0xd044da28e6a74c63e79bcf8ac14fec397dae61afc9166ca7754af5e0b6e5c7fb",
"implementations": [
"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9"
]
},
{
"timestamp": 1775138543,
"transactionHash": "0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1",
"implementations": [
"taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585"
]
},
{
"timestamp": 1777563432,
"transactionHash": "0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de",
"implementations": [
"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA"
]
}
],
"description": "Immutable L2 contract that anchors L1 block details to L2 for cross-layer communication and manages EIP-1559 gas pricing for L2 operations.\n* Roles:\n * **admin**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA#code"
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000010001#code"
},
{
"name": "DelegateController",
"isVerified": true,
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1748151239,
"transactionHash": "0x2d60398c8f22ebccc3e3dfc5771f95cb104b2ea003230444879b08d0649d01af",
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000001",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802235,
"transactionHash": "0x094dd9452d79cbd74711f2b8065566e4431a05d0727c56d2b38195e40fd62805",
"implementations": [
"taiko:0xf961854D68368cFFc86d90AEe8a19E9781dACA3e"
]
},
{
"timestamp": 1716959027,
"transactionHash": "0x0b5d6acc9c5b8ef193920246081ec5ce7268111acfc1dce1f058bea06f3953c7",
"implementations": [
"taiko:0x98C5De7670aA7d47C6c0551fAD27Bfe464A6751a"
]
},
{
"timestamp": 1717148375,
"transactionHash": "0x4605c4ce594e996bdbdb532a9aefe4fab1ea36f7e2ef63eef56a7e8033810df3",
"implementations": [
"taiko:0x0893c8821Fa358D5f3630695Ce062204814359A1"
]
},
{
"timestamp": 1717486847,
"transactionHash": "0xc77434f4e37959cdc0eac125303b78dd192d8727173373cc7a6158ca7d829dad",
"implementations": [
"taiko:0x8FB67c2C16dc8578b6d69bc668236924f4c1B0f7"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0x878E72f1d435DbACe8B9C62e084c114ffbb84791"
]
},
{
"timestamp": 1719503519,
"transactionHash": "0xd55e1edee71bd71b9bca0d3826f758a46d688b6ffdd4058fccefc98dbed70165",
"implementations": [
"taiko:0xd95435c742c01B0E982913BcA252173Ae96DF61d"
]
},
{
"timestamp": 1719806771,
"transactionHash": "0xdf0348394d5e58f801de917575aafdc1cb55533b14a6e46fd460d1437238dc02",
"implementations": [
"taiko:0x4Ca6bE8C1Ec05beFB216bAEEF9EE36997e35E98E"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
]
}
],
"description": "* Roles:\n * **admin**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000001#code"
},
{
"name": "L2AddressManager",
"name": "SignalService",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000006",
"address": "taiko:0x1670000000000000000000000000000000000005",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x0167000000000000000000000000000000000006"
"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28"
]
},
"chain": "taiko",
"pastUpgrades": [],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"pastUpgrades": [
{
"timestamp": 1747624787,
"transactionHash": "0x07f68497c517181b0110a51906fb5f5938aafeda78e07cb0480de417c9083f1b",
"implementations": [
"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762"
]
},
{
"timestamp": 1775138543,
"transactionHash": "0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1",
"implementations": [
"taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb"
]
},
{
"timestamp": 1777563432,
"transactionHash": "0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de",
"implementations": [
"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28"
]
}
],
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000006#code"
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000005#code"
},
{
"name": "SignalService",
"name": "L2AddressManager",
"isVerified": true,
"address": "taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28",
"address": "taiko:0x1670000000000000000000000000000000000006",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x0167000000000000000000000000000000000006"
]
},
"chain": "taiko",
"description": "Facilitates secure cross-chain message passing by storing signals (messages) and state root checkpoints. It allows applications to prove that a specific L2 signal or state transition occurred via Merkle proofs.\n* Roles:\n * **owner**: EOA 3",
"pastUpgrades": [],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: DelegateController\n * **owner**: DelegateController",
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28#code"
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000006#code"
}
]
},
"escrows": [
{
"address": "0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"sinceTimestamp": 1714550603,
"tokens": [
"ETH"
],
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"sinceTimestamp": 1714550603,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
}
],
"programHashes": [
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0026ff63d649779a5dbc88c3359ab83399a21fb6ef9b7ec082f77a8a465806e7"
},
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x137fb1eb125de6973791186659ab83394d10fdb73e6dfb0205eef514465806e7"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x008e24716118be9594358d8882d93d5425f0827cf0a7a4fd0ea2fc4414debfe7"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x471238b0462fa56506b1b1102d93d5422f8413e7429e93f41d45f88814debfe7"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0079682c7b5af614273de79761aaad20d1c8e1a65091388b81be836632d382f8"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x3cb4163d56bd850967bcf2ec1aaad20d0e470d324244e22e037d06cc32d382f8"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk bn256.\n ",
"hash": "0x0002ac747570512099ca19c17f5a3b9f39697e5617a19ff2f2b2464229a50c7c"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/sp1/guest/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled sp1 elf vk hash_bytes and will not have `0x` prefix.\n ",
"hash": "0x01563a3a5c1448263943382f75a3b9f34b4bf2b05e867fcb65648c8429a50c7c"
},
{
"title": "Batch proving program of Raiko v1.16.0",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x779c032b91d0730ef13b26eafa47b32df7ebdaa4ed766d587fe905530afa2544"
},
{
"title": "Aggregation program of Raiko v1.16.0",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/blob/b9da2b011d5427f3602cd7fbe7882b7a37b88f71/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout b9da2b011d5427f3602cd7fbe7882b7a37b88f71\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x26abb0237d10e891443e2a76bd3c1f6704c1ad03c07cb2165f4afcfc64b3cee7"
},
{
"title": "Batch proving program of Raiko v1.16.1",
"description": "Proves correct state transition function within Rust-based Taiko L2 client (raiko) over a batch of consecutive L2 blocks.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0x46efe5e0c74976548ee6856789fbfb4929b8f2f9118a119c57ced6e1062e727b"
},
{
"title": "Aggregation program of Raiko v1.16.1",
"description": "Aggregates proofs of correct execution for several consecutive block batches of Rust-based Taiko L2 client (raiko).",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko/tree/hotfix/hotfix-based-on-1.16.1/provers/risc0/guest/src/boundless_batch.rs",
"verificationStatus": "successful",
"verificationSteps": "\n1. Install docker.\n2. Check out the correct branch in [raiko repo](https://github.com/taikoxyz/raiko/tree/main):\n```\ngit clone https://github.com/taikoxyz/raiko.git\ncd raiko\ngit checkout hotfix/hotfix-based-on-1.16.1\n```\n3. Execute `script/publish-image.sh` script that will rebuild zk programs from sources and output the necessary program hash:\n```\nchmod +x script/publish-image.sh\n./script/publish-image.sh\n```\nIn the options choose latest tag and zk. The hash will be labeled risc0 elf image id and will not have `0x` prefix.\n ",
"hash": "0xdfbce2039ad8b78b236b5a9dceba5d8cee0d9e4638fc8f1fe11a0b2d8bfa039e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D"
]
}
+1 -1
{
"baseTimestamp": 1777025729,
"baseTimestamp": 1777963387,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1773663853,
"baseTimestamp": 1777963087,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}