f2656072 (main)
and
676daf50 (PR)
+68 -54
+1 -1
{
"capability": "appchain",
"daLayer": [
"Arbitrum One"
],
"hostChain": {
"id": "arbitrum",
"slug": "arbitrum",
"name": "Arbitrum One"
},
"layer": "layer3",
"proofSystem": {
"type": "Validity",
"zkCatalogIds": [
"zksyncprover"
]
},
"purposes": [
"Exchange"
],
"reasonsForBeingOther": [
{
"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.",
"explanation": "ApeX's proof system does not authenticate deposits on external chains. Users must additionally trust the 2/2 validator set and LayerZero bridge not to forge non-existent deposits, which allows draining rollup escrows."
"explanation": "ApeX's proof system does not authenticate deposits on external chains. Users must additionally trust the validator and the LayerZero bridges (including their governors and the LayerZero message verifiers) not to collude in forging non-existent deposits, which allows draining rollup escrows."
}
],
"stage": "Stage 0",
"type": "Other",
"vm": [
"AppChain"
]
}
+3 -3
{
"dataAvailability": [
{
"name": "State differences are published on Arbitrum One",
"description": "The data needed to reconstruct the ApeX state is included in commitBlocks calldata on Arbitrum One. Secondary deployments additionally commit their local onchain operations and send synchronization hashes to the primary deployment.",
"risks": [],
"references": [
{
"title": "See CommitBlockInfo in commitBlock function on ZkLink.sol",
"url": "https://arbiscan.io/address/0x23871561330080828507ded34d23fef5ede7053c#code#F12#L136"
}
]
}
],
"detailedDescription": "ApeX Omni is a non-EVM L3 on Arbitrum One. Its primary zkLink deployment verifies state transition proofs and publishes state differences on Arbitrum, while secondary deployments escrow assets deposited on other chains and synchronize their local state with the primary deployment through LayerZero.",
"exitMechanisms": [
{
"name": "Regular exit",
"description": "Users initiate withdrawals through regular ApeX transactions. After the block is proven, synchronized across the participating deployments, and executed, the user can claim funds from the zkLink escrow on the chain where the assets are held.",
"risks": [
{
"category": "Funds can be frozen if",
"text": "the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production.",
"isCritical": true
}
],
"references": []
}
],
"forceTransactions": {
"name": "Users can't force any transaction",
"description": "There is no general mechanism to force the sequencer to include transactions. Deposits create priority requests, but users cannot submit forced withdrawal requests. Although the contracts contain an exodus mode, the secondary deployments use EmptyVerifier contracts that reject all exit proofs, so this does not provide a system-wide escape hatch.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator refuses to include their transactions."
}
],
"references": []
},
"operator": {
"name": "The system has a centralized operator",
"description": "A single permissioned validator can commit and execute blocks. Proof submission is permissionless, but only blocks committed by the validator can be proven and executed.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": []
},
"otherConsiderations": [
{
"name": "Multichain state synchronization",
"description": "Deposits remain escrowed in the zkLink contract on their origin chain. Secondary deployments send synchronization hashes through LayerZero to the primary deployment on Arbitrum One. The primary deployment only synchronizes a block when the received hashes match the hashes committed as part of the primary block, and then sends block confirmations back to the secondary deployments.",
"description": "Deposits remain escrowed in the zkLink contract on their origin chain. Secondary deployments send synchronization hashes through LayerZero to the primary deployment on Arbitrum One. The primary deployment only synchronizes a block when the received hashes match the hashes committed as part of the primary block, and then sends block confirmations back to the secondary deployments, which only execute (and pay out withdrawals for) confirmed blocks.\nThe messages are relayed by immutable LayerZeroBridge contracts on each chain, connected to the LayerZero v1 endpoints. They only accept messages from their trusted remote bridges. Their governor, the network governor multisig of the respective chain, can change these trusted remotes and the LayerZero messaging configuration that determines which verifiers attest to the messages.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the 2/2 validator set or LayerZero bridge forges a non-existent deposit."
"text": "the validator colludes with a compromised LayerZero bridge, bridge governor or LayerZero message verifiers to forge a non-existent deposit or block confirmation."
},
{
"category": "Funds can be frozen if",
"text": "cross-chain synchronization messages are not delivered."
}
],
"references": []
}
],
"stateValidation": {
"categories": [
{
"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 Arbitrum One by a smart contract.\nDeposits on secondary chains are not verified with these validity proofs and rely on LayerZero bridges instead. Deposits could be stolen if bridges are compromized.",
"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 Arbitrum One by a smart contract.\nDeposits on secondary chains are not covered by these validity proofs and rely on LayerZero bridge contracts instead. Escrowed funds can be stolen if the validator colludes with a compromised bridge.",
"risks": [],
"references": [
{
"title": "Function proveBlocks on ZkLinkPeriphery.sol calls verifier.verifyAggregatedBlockProof",
"url": "https://arbiscan.io/address/0x3203E813930bD710043c1d899fE38dD359307352#code#F10#L302"
}
]
}
]
}
}
+5 -5
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "UpgradeGatekeeper",
"name": "UpgradeGatekeeper",
"accounts": [
{
"address": "arb1:0x2e8AD1434663b209EE59eF1a6612114239F4a190",
"type": "Contract",
"isVerified": true,
"name": "0x2e8A…a190",
"url": "https://arbiscan.io/address/0x2e8AD1434663b209EE59eF1a6612114239F4a190"
}
],
"chain": "arbitrum",
"description": "Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period.\n* Can upgrade **with no delay**\n * Verifier \n * ZkLink Main \n* Can interact with ZkLink Main\n * transfer mastership ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Main\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Main\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services \n* Can interact with LayerZeroBridge\n * change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor ",
"accounts": [
{
"address": "arb1:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED",
"type": "Contract",
"isVerified": true,
"name": "0xba38…12ED",
"url": "https://arbiscan.io/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272",
"type": "EOA",
"isVerified": true,
"name": "0xda9f…3272",
"url": "https://arbiscan.io/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272"
},
{
"address": "arb1:0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5",
"type": "EOA",
"isVerified": true,
"name": "0xd308…7Db5",
"url": "https://arbiscan.io/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5"
},
{
"address": "arb1:0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5",
"type": "EOA",
"isVerified": true,
"name": "0x4D9b…8cb5",
"url": "https://arbiscan.io/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5"
},
{
"address": "arb1:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://arbiscan.io/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "arb1:0x2A2A180373391915738aB1F89a1B258893361964",
"type": "EOA",
"isVerified": true,
"name": "0x2A2A…1964",
"url": "https://arbiscan.io/address/0x2A2A180373391915738aB1F89a1B258893361964"
},
{
"address": "arb1:0x5cDded5ea50aE7973943394De17aB51C365254Dd",
"type": "EOA",
"isVerified": true,
"name": "0x5cDd…54Dd",
"url": "https://arbiscan.io/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "arb1:0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"type": "EOA",
"isVerified": true,
"name": "0x4818…E52d",
"url": "https://arbiscan.io/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"displayName": "EOA 1"
}
],
"chain": "arbitrum",
"description": "* Can interact with ZkLink Main\n * commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ",
"discoveryDrivenData": true
}
]
},
"base": {
"roles": [],
"actors": [
{
"id": "UpgradeGatekeeper",
"name": "UpgradeGatekeeper",
"accounts": [
{
"address": "base:0x72343e8e448Fa539A1F118f870A1De1132f2fcaD",
"type": "Contract",
"isVerified": true,
"name": "0x7234…fcaD",
"url": "https://basescan.org/address/0x72343e8e448Fa539A1F118f870A1De1132f2fcaD"
}
],
"chain": "base",
"description": "* Can upgrade **with no delay**\n * EmptyVerifier \n * ZkLink Base \n* Can interact with ZkLink Base\n * transfer mastership ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Base\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Base\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services \n* Can interact with LayerZeroBridge\n * change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor ",
"accounts": [
{
"address": "base:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED",
"type": "Contract",
"isVerified": true,
"name": "0xba38…12ED",
"url": "https://basescan.org/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272",
"type": "EOA",
"isVerified": true,
"name": "0xda9f…3272",
"url": "https://basescan.org/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272"
},
{
"address": "base:0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5",
"type": "EOA",
"isVerified": true,
"name": "0xd308…7Db5",
"url": "https://basescan.org/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5"
},
{
"address": "base:0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5",
"type": "EOA",
"isVerified": true,
"name": "0x4D9b…8cb5",
"url": "https://basescan.org/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5"
},
{
"address": "base:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://basescan.org/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "base:0x2A2A180373391915738aB1F89a1B258893361964",
"type": "EOA",
"isVerified": true,
"name": "0x2A2A…1964",
"url": "https://basescan.org/address/0x2A2A180373391915738aB1F89a1B258893361964"
},
{
"address": "base:0x5cDded5ea50aE7973943394De17aB51C365254Dd",
"type": "EOA",
"isVerified": true,
"name": "0x5cDd…54Dd",
"url": "https://basescan.org/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "base:0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"type": "EOA",
"isVerified": true,
"name": "0x4818…E52d",
"url": "https://basescan.org/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"displayName": "EOA 2"
}
],
"chain": "base",
"description": "* Can interact with ZkLink Base\n * commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ",
"discoveryDrivenData": true
}
]
},
"bsc": {
"roles": [],
"actors": [
{
"id": "UpgradeGatekeeper",
"name": "UpgradeGatekeeper",
"accounts": [
{
"address": "bnb:0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C",
"type": "Contract",
"isVerified": true,
"name": "0x81DE…1F8C",
"url": "https://bscscan.com/address/0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C"
}
],
"chain": "bsc",
"description": "* Can upgrade **with no delay**\n * EmptyVerifier \n * ZkLink BNB \n* Can interact with ZkLink BNB\n * transfer mastership ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink BNB\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink BNB\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services \n* Can interact with LayerZeroBridge\n * change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor ",
"accounts": [
{
"address": "bnb:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED",
"type": "Contract",
"isVerified": true,
"name": "0xba38…12ED",
"url": "https://bscscan.com/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED"
}
],
"chain": "bsc",
"references": [],
"participants": [
{
"address": "bnb:0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272",
"type": "EOA",
"isVerified": true,
"name": "0xda9f…3272",
"url": "https://bscscan.com/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272"
},
{
"address": "bnb:0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5",
"type": "EOA",
"isVerified": true,
"name": "0xd308…7Db5",
"url": "https://bscscan.com/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5"
},
{
"address": "bnb:0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5",
"type": "EOA",
"isVerified": true,
"name": "0x4D9b…8cb5",
"url": "https://bscscan.com/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5"
},
{
"address": "bnb:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://bscscan.com/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "bnb:0x2A2A180373391915738aB1F89a1B258893361964",
"type": "EOA",
"isVerified": true,
"name": "0x2A2A…1964",
"url": "https://bscscan.com/address/0x2A2A180373391915738aB1F89a1B258893361964"
},
{
"address": "bnb:0x5cDded5ea50aE7973943394De17aB51C365254Dd",
"type": "EOA",
"isVerified": true,
"name": "0x5cDd…54Dd",
"url": "https://bscscan.com/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "bnb:0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"type": "EOA",
"isVerified": true,
"name": "0x4818…E52d",
"url": "https://bscscan.com/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"displayName": "EOA 3"
}
],
"chain": "bsc",
"description": "* Can interact with ZkLink BNB\n * commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ",
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [],
"actors": [
{
"id": "GnosisSafe",
"name": "GnosisSafe",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Ethereum\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Ethereum\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services \n* Can interact with LayerZeroBridge\n * change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor ",
"accounts": [
{
"address": "eth:0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94",
"type": "Contract",
"isVerified": true,
"name": "0xF9f8…6B94",
"url": "https://etherscan.io/address/0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272",
"type": "EOA",
"isVerified": true,
"name": "0xda9f…3272",
"url": "https://etherscan.io/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272"
},
{
"address": "eth:0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5",
"type": "EOA",
"isVerified": true,
"name": "0xd308…7Db5",
"url": "https://etherscan.io/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5"
},
{
"address": "eth:0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5",
"type": "EOA",
"isVerified": true,
"name": "0x4D9b…8cb5",
"url": "https://etherscan.io/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5"
},
{
"address": "eth:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://etherscan.io/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "eth:0x2A2A180373391915738aB1F89a1B258893361964",
"type": "EOA",
"isVerified": true,
"name": "0x2A2A…1964",
"url": "https://etherscan.io/address/0x2A2A180373391915738aB1F89a1B258893361964"
},
{
"address": "eth:0x5cDded5ea50aE7973943394De17aB51C365254Dd",
"type": "EOA",
"isVerified": true,
"name": "0x5cDd…54Dd",
"url": "https://etherscan.io/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd"
}
],
"discoveryDrivenData": true
},
{
"id": "UpgradeGatekeeper",
"name": "UpgradeGatekeeper",
"accounts": [
{
"address": "eth:0xFBD68679271fDa6ca9bf6F20993Cd39E20072753",
"type": "Contract",
"isVerified": true,
"name": "0xFBD6…2753",
"url": "https://etherscan.io/address/0xFBD68679271fDa6ca9bf6F20993Cd39E20072753"
}
],
"chain": "ethereum",
"description": "Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period.\n* Can upgrade **with no delay**\n * ZkLink Ethereum \n * EmptyVerifier \n* Can interact with ZkLink Ethereum\n * transfer mastership ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafe",
"name": "GnosisSafe",
"description": "A Multisig with 4/7 threshold. ",
"accounts": [
{
"address": "eth:0x374632e7D48B7872d904524FdC5Dd4516F42cDFF",
"type": "Contract",
"isVerified": true,
"name": "0x3746…cDFF",
"url": "https://etherscan.io/address/0x374632e7D48B7872d904524FdC5Dd4516F42cDFF"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xd9cCb94805B882b78e4C8565e67469DdE90a110F",
"type": "EOA",
"isVerified": true,
"name": "0xd9cC…110F",
"url": "https://etherscan.io/address/0xd9cCb94805B882b78e4C8565e67469DdE90a110F"
},
{
"address": "eth:0x503659DcA7Aba3129B4C098FB23857436AedECd9",
"type": "EOA",
"isVerified": true,
"name": "0x5036…ECd9",
"url": "https://etherscan.io/address/0x503659DcA7Aba3129B4C098FB23857436AedECd9"
},
{
"address": "eth:0x67ceD4Ae20D0702c6B773a70aE3826C1E0DE09e9",
"type": "EOA",
"isVerified": true,
"name": "0x67ce…09e9",
"url": "https://etherscan.io/address/0x67ceD4Ae20D0702c6B773a70aE3826C1E0DE09e9"
},
{
"address": "eth:0xAA2c80c9346BceF31570791BA0827B03d8a5E594",
"type": "EOA",
"isVerified": true,
"name": "0xAA2c…E594",
"url": "https://etherscan.io/address/0xAA2c80c9346BceF31570791BA0827B03d8a5E594"
},
{
"address": "eth:0xcC1A2bd1a459be0C7fAd3B7F9Fa9a6CBBFE9BFa5",
"type": "EOA",
"isVerified": true,
"name": "0xcC1A…BFa5",
"url": "https://etherscan.io/address/0xcC1A2bd1a459be0C7fAd3B7F9Fa9a6CBBFE9BFa5"
},
{
"address": "eth:0x522b8Df4c9965934654CFebbf20882005c33cE18",
"type": "EOA",
"isVerified": true,
"name": "0x522b…cE18",
"url": "https://etherscan.io/address/0x522b8Df4c9965934654CFebbf20882005c33cE18"
},
{
"address": "eth:0xd8F26118505417Ef6468Ac8A2AE1E5117245Db92",
"type": "EOA",
"isVerified": true,
"name": "0xd8F2…Db92",
"url": "https://etherscan.io/address/0xd8F26118505417Ef6468Ac8A2AE1E5117245Db92"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"type": "EOA",
"isVerified": true,
"name": "0x4818…E52d",
"url": "https://etherscan.io/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with ZkLink Ethereum\n * commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ",
"discoveryDrivenData": true
}
]
},
"mantle": {
"roles": [],
"actors": [
{
"id": "UpgradeGatekeeper",
"name": "UpgradeGatekeeper",
"accounts": [
{
"address": "mantle:0x2B9BA259F24965a81Fa0c4E477e3791673744059",
"type": "Contract",
"isVerified": true,
"name": "0x2B9B…4059",
"url": "https://explorer.mantle.xyz/address/0x2B9BA259F24965a81Fa0c4E477e3791673744059"
}
],
"chain": "mantle",
"description": "* Can upgrade **with no delay**\n * EmptyVerifier \n * ZkLink Mantle \n* Can interact with ZkLink Mantle\n * transfer mastership ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Mantle\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with ZkLink Mantle\n * add tokens, pause and unpause token deposits \n * change the network governor, validator set, L1 gateway and cross-chain synchronization services \n* Can interact with LayerZeroBridge\n * change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor ",
"accounts": [
{
"address": "mantle:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED",
"type": "Contract",
"isVerified": true,
"name": "0xba38…12ED",
"url": "https://explorer.mantle.xyz/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED"
}
],
"chain": "mantle",
"references": [],
"participants": [
{
"address": "mantle:0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272",
"type": "EOA",
"isVerified": true,
"name": "0xda9f…3272",
"url": "https://explorer.mantle.xyz/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272"
},
{
"address": "mantle:0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5",
"type": "EOA",
"isVerified": true,
"name": "0xd308…7Db5",
"url": "https://explorer.mantle.xyz/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5"
},
{
"address": "mantle:0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5",
"type": "EOA",
"isVerified": true,
"name": "0x4D9b…8cb5",
"url": "https://explorer.mantle.xyz/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5"
},
{
"address": "mantle:0x22c89137525b593Dd2A18434348b550ffA5984Fe",
"type": "EOA",
"isVerified": true,
"name": "0x22c8…84Fe",
"url": "https://explorer.mantle.xyz/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe"
},
{
"address": "mantle:0x2A2A180373391915738aB1F89a1B258893361964",
"type": "EOA",
"isVerified": true,
"name": "0x2A2A…1964",
"url": "https://explorer.mantle.xyz/address/0x2A2A180373391915738aB1F89a1B258893361964"
},
{
"address": "mantle:0x5cDded5ea50aE7973943394De17aB51C365254Dd",
"type": "EOA",
"isVerified": true,
"name": "0x5cDd…54Dd",
"url": "https://explorer.mantle.xyz/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "mantle:0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"type": "EOA",
"isVerified": true,
"name": "0x4818…E52d",
"url": "https://explorer.mantle.xyz/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d",
"displayName": "EOA 5"
}
],
"chain": "mantle",
"description": "* Can interact with ZkLink Mantle\n * commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ",
"discoveryDrivenData": true
}
]
}
}
+44 -44
{
"addresses": {
"arbitrum": [
{
"name": "Verifier",
"isVerified": true,
"address": "arb1:0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x2e8AD1434663b209EE59eF1a6612114239F4a190"
],
"implementations": [
"arb1:0x6e21b35328E1522b1E6C0F5eCa566a7fe269274a"
]
},
"chain": "arbitrum",
"pastUpgrades": [],
"description": "PLONK verifier used to validate aggregated L2 block proofs and zero-knowledge exit proofs.\n* Roles:\n * **admin**: UpgradeGatekeeper",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F#code"
},
{
"name": "ZkLink Main",
"isVerified": true,
"address": "arb1:0x3169844a120C0f517B4eB4A750c08d8518C8466a",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"arb1:0x2e8AD1434663b209EE59eF1a6612114239F4a190"
],
"implementations": [
"arb1:0x23871561330080828507dED34d23FEF5EdE7053C",
"arb1:0x3203E813930bD710043c1d899fE38dD359307352"
]
},
"chain": "arbitrum",
"description": "The main rollup contract. It processes L3 blocks submitted by validators and settles L3 state, handles deposits and withdrawals, and synchronizes block data with other zkLink chains.\n* Roles:\n * **getMaster**: UpgradeGatekeeper\n * **networkGovernor**: GnosisSafeL2\n * **validators**: EOA 1",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3169844a120C0f517B4eB4A750c08d8518C8466a#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D",
"address": "arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n",
"description": "A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n* Roles:\n * **governor**: GnosisSafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D#code"
"url": "https://arbiscan.io/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code"
}
],
"base": [
{
"name": "EmptyVerifier",
"isVerified": true,
"address": "base:0x4c5629AEA0B419d26C780dD78d5671e2Ce27c563",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0x72343e8e448Fa539A1F118f870A1De1132f2fcaD"
],
"implementations": [
"base:0xbb205c59a53cA04D86D2c6858cC9f82603275ADC"
]
},
"chain": "base",
"pastUpgrades": [],
"description": "* Roles:\n * **admin**: UpgradeGatekeeper",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x4c5629AEA0B419d26C780dD78d5671e2Ce27c563#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3#code"
},
{
"name": "ZkLink Base",
"isVerified": true,
"address": "base:0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"base:0x72343e8e448Fa539A1F118f870A1De1132f2fcaD"
],
"implementations": [
"base:0xD923B6479006623303f180fA149A3b5C3bf5ff66",
"base:0x502C848E6f88CD018153712a68Ee518C7F34AF12"
]
},
"chain": "base",
"description": "A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n* Roles:\n * **getMaster**: UpgradeGatekeeper\n * **networkGovernor**: GnosisSafeL2\n * **validators**: EOA 2",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n* Roles:\n * **governor**: GnosisSafeL2",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code"
}
],
"bsc": [
{
"name": "EmptyVerifier",
"isVerified": true,
"address": "bnb:0x1202e0557A23531D09015C802e993d6423685FfB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"bnb:0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C"
],
"implementations": [
"bnb:0x54dB01A8D4C7A6404fD234A009e89418b16796dB"
]
},
"chain": "bsc",
"pastUpgrades": [],
"description": "* Roles:\n * **admin**: UpgradeGatekeeper",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://bscscan.com/address/0x1202e0557A23531D09015C802e993d6423685FfB#code"
},
{
"name": "ZkLink BNB",
"isVerified": true,
"address": "bnb:0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"bnb:0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C"
],
"implementations": [
"bnb:0x3EC0ad3000b13188c235E23D549F1A1bBd25B028",
"bnb:0x04bF7cf48a68dfC744fc22662B90e2ecaf14D716"
]
},
"chain": "bsc",
"description": "A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n* Roles:\n * **getMaster**: UpgradeGatekeeper\n * **networkGovernor**: GnosisSafeL2\n * **validators**: EOA 3",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://bscscan.com/address/0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e",
"address": "bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "bsc",
"description": "A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n",
"description": "A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n* Roles:\n * **governor**: GnosisSafeL2",
"discoveryDrivenData": true,
"url": "https://bscscan.com/address/0xc271a8e9eB2b10FCDe1709D76de6681249669D2e#code"
"url": "https://bscscan.com/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code"
}
],
"ethereum": [
{
"name": "ZkLink Ethereum",
"isVerified": true,
"address": "eth:0x35D173cdfE4d484BC5985fDa55FABad5892c7B82",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"eth:0xFBD68679271fDa6ca9bf6F20993Cd39E20072753"
],
"implementations": [
"eth:0xa9B4AB2E78f93B340Bbd6541B713B29B6B3BEe3c",
"eth:0x070fC04F6Ce2cd1FFBC2aE1d6a381E46f467284F"
]
},
"chain": "ethereum",
"description": "A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n* Roles:\n * **getMaster**: UpgradeGatekeeper\n * **networkGovernor**: GnosisSafe\n * **validators**: EOA 4",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35D173cdfE4d484BC5985fDa55FABad5892c7B82#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E#code"
},
{
"name": "EmptyVerifier",
"isVerified": true,
"address": "eth:0xe38f8bc093a1f76f0A444bA6B75F46d6dC686dba",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xFBD68679271fDa6ca9bf6F20993Cd39E20072753"
],
"implementations": [
"eth:0xD6C54b6BC87BCB5F96De3fA8538c548f47829a08"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Placeholder verifier for chains without pairing support. It rejects all block and exit proofs.\n* Roles:\n * **admin**: UpgradeGatekeeper",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe38f8bc093a1f76f0A444bA6B75F46d6dC686dba#code"
}
],
"mantle": [
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e",
"address": "eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "mantle",
"description": "A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n",
"chain": "ethereum",
"description": "A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n* Roles:\n * **governor**: GnosisSafe",
"discoveryDrivenData": true,
"url": "https://explorer.mantle.xyz/address/0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e#code"
},
"url": "https://etherscan.io/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code"
}
],
"mantle": [
{
"name": "EmptyVerifier",
"isVerified": true,
"address": "mantle:0x0c0F729c74c9AC41F9C702dAd11011F40D4190B0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"mantle:0x2B9BA259F24965a81Fa0c4E477e3791673744059"
],
"implementations": [
"mantle:0xd8428A59B60Df2d81514D429D57DF23293f1bCe7"
]
},
"chain": "mantle",
"pastUpgrades": [],
"description": "* Roles:\n * **admin**: UpgradeGatekeeper",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mantle.xyz/address/0x0c0F729c74c9AC41F9C702dAd11011F40D4190B0#code"
},
{
"name": "ZkLink Mantle",
"isVerified": true,
"address": "mantle:0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"mantle:0x2B9BA259F24965a81Fa0c4E477e3791673744059"
],
"implementations": [
"mantle:0x067c7126a83560Ed2Fc345d25799F696B7Ea47Ca",
"mantle:0xf04Af2e7AbCd011459a01A4A250ece46969c84F2"
]
},
"chain": "mantle",
"description": "A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n* Roles:\n * **getMaster**: UpgradeGatekeeper\n * **networkGovernor**: GnosisSafeL2\n * **validators**: EOA 5",
"upgradableBy": [
{
"name": "UpgradeGatekeeper",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mantle.xyz/address/0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c#code"
},
{
"name": "LayerZeroBridge",
"isVerified": true,
"address": "mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "mantle",
"description": "A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n* Roles:\n * **governor**: GnosisSafeL2",
"discoveryDrivenData": true,
"url": "https://explorer.mantle.xyz/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code"
}
]
},
"escrows": [
{
"address": "0x3169844a120C0f517B4eB4A750c08d8518C8466a",
"sinceTimestamp": 1717731687,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x3169844a120C0f517B4eB4A750c08d8518C8466a",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"arb1:0x2e8AD1434663b209EE59eF1a6612114239F4a190"
],
"implementations": [
"arb1:0x23871561330080828507dED34d23FEF5EdE7053C",
"arb1:0x3203E813930bD710043c1d899fE38dD359307352"
]
},
"chain": "arbitrum",
"description": "Main zkLink contract on Arbitrum One. It escrows assets deposited on Arbitrum and processes withdrawals after blocks are proven, synchronized, and executed.",
"url": "https://arbiscan.io/address/0x3169844a120C0f517B4eB4A750c08d8518C8466a#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x35D173cdfE4d484BC5985fDa55FABad5892c7B82",
"sinceTimestamp": 1717731359,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x35D173cdfE4d484BC5985fDa55FABad5892c7B82",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"eth:0xFBD68679271fDa6ca9bf6F20993Cd39E20072753"
],
"implementations": [
"eth:0xa9B4AB2E78f93B340Bbd6541B713B29B6B3BEe3c",
"eth:0x070fC04F6Ce2cd1FFBC2aE1d6a381E46f467284F"
]
},
"chain": "ethereum",
"description": "Secondary zkLink contract on Ethereum. It escrows assets deposited on Ethereum and processes withdrawals confirmed by the primary deployment.",
"url": "https://etherscan.io/address/0x35D173cdfE4d484BC5985fDa55FABad5892c7B82#code"
},
"chain": "ethereum",
"includeInTotal": true,
"source": "external",
"chainId": 1
},
{
"address": "0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7",
"sinceTimestamp": 1720251597,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "base:0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"base:0x72343e8e448Fa539A1F118f870A1De1132f2fcaD"
],
"implementations": [
"base:0xD923B6479006623303f180fA149A3b5C3bf5ff66",
"base:0x502C848E6f88CD018153712a68Ee518C7F34AF12"
]
},
"chain": "base",
"description": "Secondary zkLink contract on Base. It escrows assets deposited on Base and processes withdrawals confirmed by the primary deployment.",
"url": "https://basescan.org/address/0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7#code"
},
"chain": "base",
"includeInTotal": false,
"source": "external",
"chainId": 8453
},
{
"address": "0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c",
"sinceTimestamp": 1720251180,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "mantle:0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"mantle:0x2B9BA259F24965a81Fa0c4E477e3791673744059"
],
"implementations": [
"mantle:0x067c7126a83560Ed2Fc345d25799F696B7Ea47Ca",
"mantle:0xf04Af2e7AbCd011459a01A4A250ece46969c84F2"
]
},
"chain": "mantle",
"description": "Secondary zkLink contract on Mantle. It escrows assets deposited on Mantle and processes withdrawals confirmed by the primary deployment.",
"url": "https://explorer.mantle.xyz/address/0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c#code"
},
"chain": "mantle",
"includeInTotal": false,
"source": "external",
"chainId": 5000
},
{
"address": "0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9",
"sinceTimestamp": 1717731935,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "bnb:0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9",
"upgradeability": {
"proxyType": "ZkLink proxy",
"admins": [
"bnb:0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C"
],
"implementations": [
"bnb:0x3EC0ad3000b13188c235E23D549F1A1bBd25B028",
"bnb:0x04bF7cf48a68dfC744fc22662B90e2ecaf14D716"
]
},
"chain": "bsc",
"description": "Secondary zkLink contract on BNB. It escrows assets deposited on BNB and processes withdrawals confirmed by the primary deployment.",
"url": "https://bscscan.com/address/0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9#code"
},
"chain": "bsc",
"includeInTotal": false,
"source": "external",
"chainId": 56
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"arb1:0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F"
]
}
+1 -1
{
"baseTimestamp": 1784715866,
"baseTimestamp": 1790850905,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "85dc61e6",
"date": "Thu, 01 Oct 2026 14:18:28 GMT",
"timestamp": 1790850905,
"description": "All sync services (message bridges) were switched from the old LZSyncHashBridges to new immutable LayerZeroBridges.\n\nReason: LayerZero retired the ULNv2 relayer on 2026-08-03 and its new executor rejects the empty `adapterParams` the old bridges sent. The new bridges send type-1 `adapterParams` with a governor-set per-destination `minDstGas` and have their own `governor`. Everything else is unchanged. Source was manually verified: zkLinkProtocol/zklink-contracts branch `fix/lz-adapterparams` (4228fe6), now verified on Etherscan and Sourcify. Code differs per chain only by chain constants.\n\n- https://disco.l2beat.com/diff/arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D/arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\n- https://disco.l2beat.com/diff/eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E/eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\n- https://disco.l2beat.com/diff/base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3/base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\n- https://disco.l2beat.com/diff/bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e/bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\n- https://disco.l2beat.com/diff/mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e/mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453",
"isHighSeverity": false,
"changeCount": 23,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ZkLink Main (arb1:0x3169844a120C0f517B4eB4A750c08d8518C8466a) [apex-omni/ZkLink_main] {\n +++ description: The main rollup contract. It processes L3 blocks submitted by validators and settles L3 state, handles deposits and withdrawals, and synchronizes block data with other zkLink chains.\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.3:\n- \"arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D\"\n+ \"arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.4:\n- \"arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D\"\n+ \"arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.11:\n- \"arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D\"\n+ \"arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.12:\n- \"arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D\"\n+ \"arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n }\n```\n\n```diff\n contract GnosisSafeL2 (arb1:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\",\"description\":\"change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor.\",\"role\":\".governor\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZeroBridge (arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n contract GnosisSafeL2 (base:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\",\"description\":\"change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor.\",\"role\":\".governor\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZeroBridge (base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n contract ZkLink Base (base:0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7) [apex-omni/ZkLink_LZEscrow] {\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.9:\n- \"base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3\"\n+ \"base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n }\n```\n\n```diff\n contract ZkLink BNB (bnb:0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9) [apex-omni/ZkLink_LZEscrow] {\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.9:\n- \"bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e\"\n+ \"bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n }\n```\n\n```diff\n contract GnosisSafeL2 (bnb:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\",\"description\":\"change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor.\",\"role\":\".governor\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZeroBridge (bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n contract ZkLink Ethereum (eth:0x35D173cdfE4d484BC5985fDa55FABad5892c7B82) [apex-omni/ZkLink_LZEscrow] {\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.9:\n- \"eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E\"\n+ \"eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZeroBridge (eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n contract GnosisSafe (eth:0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\",\"description\":\"change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor.\",\"role\":\".governor\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZeroBridge (mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n contract ZkLink Mantle (mantle:0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c) [apex-omni/ZkLink_LZEscrow] {\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n+++ description: Cross-chain synchronization services relaying deposit info, indexed by zkLink chain ID.\n values.syncServices.9:\n- \"mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e\"\n+ \"mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\"\n }\n```\n\n```diff\n contract GnosisSafeL2 (mantle:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe] {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453\",\"description\":\"change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor.\",\"role\":\".governor\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453) [apex-omni/LZSyncHashBridgeV2]\n +++ description: A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453) [apex-omni/LZSyncHashBridgeV2]\n +++ description: A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453) [apex-omni/LZSyncHashBridgeV2]\n +++ description: A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453) [apex-omni/LZSyncHashBridgeV2]\n +++ description: A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453) [apex-omni/LZSyncHashBridgeV2]\n +++ description: A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain.\n```"
}
]
},
{
"id": "10e94cfb",
"date": "Thu, 23 Jul 2026 12:39:24 GMT",
"timestamp": 1784715866,
"description": "Completely new discovery of ApeX project (ApeX Omni instead of older ApeX Pro).\n\nNow it is a zkLink X cross-chain deployment with settlement on Arbitrum One (as L3) and deposits on several other chains.",
"isHighSeverity": false,
"changeCount": 27,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x374632e7D48B7872d904524FdC5Dd4516F42cDFF) [GnosisSafe] {\n +++ description: None\n values.$members.5:\n- \"eth:0x824C9364A6CF8f5EB542ad2ca8F5705561C8b1db\"\n+ \"eth:0x522b8Df4c9965934654CFebbf20882005c33cE18\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Verifier (arb1:0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F) [N/A]\n +++ description: PLONK verifier used to validate aggregated L2 block proofs and zero-knowledge exit proofs.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeGatekeeper (arb1:0x2e8AD1434663b209EE59eF1a6612114239F4a190) [N/A]\n +++ description: Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period.\n```\n\n```diff\n+ Status: CREATED\n contract ZkLink Main (arb1:0x3169844a120C0f517B4eB4A750c08d8518C8466a) [apex-omni/ZkLink_main]\n +++ description: The main rollup contract. It processes L3 blocks submitted by validators and settles L3 state, handles deposits and withdrawals, and synchronizes block data with other zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (arb1:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract EmptyVerifier (base:0x4c5629AEA0B419d26C780dD78d5671e2Ce27c563) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeGatekeeper (base:0x72343e8e448Fa539A1F118f870A1De1132f2fcaD) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (base:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract ZkLink Base (base:0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7) [apex-omni/ZkLink_LZEscrow]\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n```\n\n```diff\n+ Status: CREATED\n contract EmptyVerifier (bnb:0x1202e0557A23531D09015C802e993d6423685FfB) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeGatekeeper (bnb:0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZkLink BNB (bnb:0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9) [apex-omni/ZkLink_LZEscrow]\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (bnb:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract ZkLink Ethereum (eth:0x35D173cdfE4d484BC5985fDa55FABad5892c7B82) [apex-omni/ZkLink_LZEscrow]\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x374632e7D48B7872d904524FdC5Dd4516F42cDFF) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract EmptyVerifier (eth:0xe38f8bc093a1f76f0A444bA6B75F46d6dC686dba) [N/A]\n +++ description: Placeholder verifier for chains without pairing support. It rejects all block and exit proofs.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeGatekeeper (eth:0xFBD68679271fDa6ca9bf6F20993Cd39E20072753) [N/A]\n +++ description: Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZeroBridge (mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e) [apex-omni/LZSyncHashBridge]\n +++ description: A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.\n```\n\n```diff\n+ Status: CREATED\n contract EmptyVerifier (mantle:0x0c0F729c74c9AC41F9C702dAd11011F40D4190B0) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeGatekeeper (mantle:0x2B9BA259F24965a81Fa0c4E477e3791673744059) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZkLink Mantle (mantle:0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c) [apex-omni/ZkLink_LZEscrow]\n +++ description: A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (mantle:0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "a2a84da9",
"date": "Tue, 22 Jul 2025 16:06:31 GMT",
"timestamp": 1753200391,
"description": "project is archived.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarkPerpetualUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {\n +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n values.isFrozen:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "8e894ff6",
"date": "Mon, 14 Jul 2025 12:44:44 GMT",
"timestamp": 1752497084,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract CommitteeUSDC (0x23Cab3CF1aa7B929Df5e9f3712aCA3A6Fb9494E4)\n +++ description: Data Availability Committee (DAC) contract verifying and storing data availability claims from DAC Members (via a multisignature check). The threshold of valid signatures is 3.\n```\n\n```diff\n+ Status: CREATED\n contract FinalizableGpsFactAdapterUSDT (0x40e1e5Ece49A878062fA9F87eA6dc81281098B22)\n +++ description: Adapter between the core contract and the eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60. Stores the Cairo programHash (`770346231394331402493200980986217737662224545740427952627288191358999988146`).\n```\n\n```diff\n+ Status: CREATED\n contract CommitteeUSDT (0x7249082BfAFE9BCA502d38a686Ef3df37A0cf800)\n +++ description: Data Availability Committee (DAC) contract verifying and storing data availability claims from DAC Members (via a multisignature check). The threshold of valid signatures is 3.\n```\n\n```diff\n+ Status: CREATED\n contract StarkPerpetualUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb)\n +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n```\n\n```diff\n+ Status: CREATED\n contract PerpetualEscapeVerifier (0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD)\n +++ description: Special verifier for the escape() function.\n```\n\n```diff\n+ Status: CREATED\n contract ApexAdminMultisig (0xC532d2976209A56DdF4a99B844130f7c0daCa7B6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StarkPerpetualUSDT (0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b)\n +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n```\n\n```diff\n+ Status: CREATED\n contract FinalizableGpsFactAdapterUSDC (0xE741e26573782ae3C0ea9EC710FA99Fcd27fB953)\n +++ description: Adapter between the core contract and the eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60. Stores the Cairo programHash (`2530337539466159944237001094809327283009177793361359619481044346150483328860`).\n```"
}
]
},
{
"id": "be904380",
"date": "Wed, 09 Jul 2025 09:25:16 GMT",
"timestamp": 1752053116,
"description": "USDT StarkEx instance frozen, project archived.\n\nApex Pro, the app on this StarkEx Validium, is EOL: https://www.apex.exchange/blog/detail/ApeX-Pro-Sunset-Delisting-Timeline-for-Trading-Pairs.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PerpetualEscapeVerifier (0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD) {\n +++ description: Special verifier for the escape() function.\n values.hasRegisteredFact:\n- false\n+ true\n }\n```\n\n```diff\n contract StarkPerpetualUSDT (0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b) {\n +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n values.isFrozen:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "383607df",
"date": "Tue, 18 Feb 2025 09:12:11 GMT",
"timestamp": 1739869931,
"description": "Minor upgrade to the StarkExchangeUSDC contract which is an implementation of StarkEx Perpetual.\n\nTwo new asset IDs are added:\n- NON_UNIQUE_MINTABLE_ASSET_ID_FLAG (ERC-1155)\n- MINTABLE_ERC20_ASSET_ID_FLAG (ERC-20)",
"isHighSeverity": true,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarkExchangeUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {\n +++ description: None\n sourceHashes.5:\n- \"0x0c38b010717f86413abfb52412e5eb50b689b8d172e8c39ef81fc428fe5a1e52\"\n+ \"0xe29824efd6d907d93d9b4b2b0737630ab974bce5e0017cb1459975c66a798280\"\n sourceHashes.4:\n- \"0xb8c0122f24ea2e559e908278def38aa80b6cd27b39b2d74402dbf5ba2585c7c5\"\n+ \"0xdfa7b8bf4884e9f9933980cec5bcf744d2e522c291ed2a383c140cfb8c795f29\"\n sourceHashes.3:\n- \"0x473fc9765112e835124640cb91a4642354e09e94f92462929139d9ab5b6ddcf4\"\n+ \"0xb5161e812087e15dd53a4c29ab296ade613b540445f7d1eb470de4f81a9c555c\"\n sourceHashes.2:\n- \"0x5ebd3f192c54b3d36f0d57e1cb14f418ae69a1694f7dc7d19d006883fc89e525\"\n+ \"0xf6d00f2bc5db71a79b854049b38819f78c8fbbd98dcc2e4555f70946f6e58069\"\n sourceHashes.1:\n- \"0x758db67adde840068b01898c25f007a0d0549aaf9d431c2e0ae77ae4c2c56b33\"\n+ \"0xc8c9c0e9c5171cb82b707e7e4b4ea80d427ba6f1dc21fc604efdce0ffa40323d\"\n values.$implementation.4:\n- \"0x34E7cfedF99995A47B3e3D0AB88ba67072B55035\"\n+ \"0x31e2d974BaC547101413c24C23443AD488423f64\"\n values.$implementation.3:\n- \"0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859\"\n+ \"0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175\"\n values.$implementation.2:\n- \"0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058\"\n+ \"0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310\"\n values.$implementation.1:\n- \"0x533a7f4bE5453513049EB94A2b115F2CcE161dce\"\n+ \"0x540Ad8576d2F90f28994ab001622F964945854A8\"\n values.$implementation.0:\n- \"0xdD813397b79f8df581eEb0c4B8aB72304c528396\"\n+ \"0x8C43C9bec15d82D153C52518030e0a9590ABD35d\"\n values.$pastUpgrades.4:\n+ [\"2025-02-17T09:39:23.000Z\",\"0x7c6ca54630321bc1f0e2ad0b68972ec3f6efaab449f09839ef612f90d4292bdd\",[\"0x8C43C9bec15d82D153C52518030e0a9590ABD35d\",\"0x540Ad8576d2F90f28994ab001622F964945854A8\",\"0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310\",\"0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175\",\"0x31e2d974BaC547101413c24C23443AD488423f64\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.implementation:\n- \"0xdD813397b79f8df581eEb0c4B8aB72304c528396\"\n+ \"0x8C43C9bec15d82D153C52518030e0a9590ABD35d\"\n values.VERSION:\n- \"3.1.0\"\n+ \"3.2.0\"\n }\n```"
}
]
},
{
"id": "9b35ceaf",
"date": "Thu, 30 Jan 2025 10:24:49 GMT",
"timestamp": 1738232689,
"description": "Updates progHash, not found online, added to the library.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarkExchangeUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {\n +++ description: None\n values.globalConfigurationHash:\n- \"0x01897348c8e7a04145727a7d369a76c01711a828d58afeca4c3e7d86596b85ba\"\n+ \"0x0274c9dc2096cfe79c5f28f5bfb3a95b3bd0692430b4f9ba79f871068611804a\"\n }\n```\n\n```diff\n contract FinalizableGpsFactAdapterUSDC (0xE741e26573782ae3C0ea9EC710FA99Fcd27fB953) {\n +++ description: None\n values.programHash:\n- \"3114724292040200590153042023978438629733352741898912919152162079752811928849\"\n+ \"2530337539466159944237001094809327283009177793361359619481044346150483328860\"\n }\n```"
}
]
},
{
"id": "343f1ce5",
"date": "Thu, 30 Nov 2023 16:11:29 GMT",
"timestamp": 1701360689,
"description": "Upgrade delay for USDT StarkEx has been changed from 0 to 14 days.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarkExchangeUSDT (0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b) {\n upgradeability.upgradeDelay:\n- 0\n+ 1209600\n values.getUpgradeActivationDelay:\n- 0\n+ 1209600\n }\n```"
}
]
},
{
"id": "e7dfb473",
"date": "Thu, 23 Nov 2023 15:27:54 GMT",
"timestamp": 1700753274,
"description": "Apex is enabling USDT as an additional collateral for their perpetual pairs.\nPreviously only USDC was available. Technically StarkEx system for perpetuals\ndoesn't support multiple collaterals, so Apex will be running 2 independent\nStarkEx instances. This also means that there will be no interoperability\nbetween them and between -USDC and -USDT perpetual pairs. Also parameters\nof each system can differ.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n+ Status: CREATED\n contract MultiSigPoolUSDT (0x379c15156B527D6E693bED60d1FBb44CE46046b8) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract FinalizableGpsFactAdapterUSDT (0x40e1e5Ece49A878062fA9F87eA6dc81281098B22) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract CommitteeUSDT (0x7249082BfAFE9BCA502d38a686Ef3df37A0cf800) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract StarkExchangeUSDT (0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b) {\n }\n```"
}
]
}
]
+1 -1
+1 -1
{
"clusteredEventCount": 19,
"contracts": [
{
"name": "SecurityCouncilNomineeElectionGovernor",
"address": "arb1:0x8a1cDA8dee421cD06023470608605934c16A05a0",
"isVerified": true,
"ossifyingSince": 1788209529,
"codeChangeCount": 2,
"stateChangeCount": 1
},
{
"name": "SecurityCouncilManager",
"address": "arb1:0xD509E5f5aEe2A205F554f36E8a7d56094494eDFC",
"isVerified": true,
"ossifyingSince": 1788209529,
"codeChangeCount": 1,
"stateChangeCount": 2
},
{
"name": "RollupProxy",
"address": "eth:0x4DCeB440657f21083db8aDd07665f8ddBe1DCfc0",
"isVerified": true,
"ossifyingSince": 1787092955,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "Inbox",
"address": "eth:0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f",
"isVerified": true,
"ossifyingSince": 1781518127,
"codeChangeCount": 12,
"stateChangeCount": 0
},
{
"name": "Bridge",
"address": "eth:0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a",
"isVerified": true,
"ossifyingSince": 1779645011,
"codeChangeCount": 3,
"stateChangeCount": 1
},
{
"name": "L2ArbitrumToken",
"address": "arb1:0x912CE59144191C1204E64559FE8253a0e49E6548",
"isVerified": true,
"ossifyingSince": 1774870191,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "CoreGovernor",
"address": "arb1:0xf07DeD9dC292157749B6Fd268E37DF6EA38395B9",
"isVerified": true,
"ossifyingSince": 1774870191,
"codeChangeCount": 1,
"stateChangeCount": 2
},
{
"name": "L2UpgradeExecutor",
"address": "arb1:0xCF57572261c7c2BCF21ffD220ea7d1a27D40A827",
"isVerified": true,
"ossifyingSince": 1758645131,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "UpgradeExecutor",
"address": "eth:0x3ffFbAdAF827559da092217e474760E2b2c3CeDd",
"isVerified": true,
"ossifyingSince": 1758644207,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "Outbox",
"address": "eth:0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840",
"isVerified": true,
"ossifyingSince": 1739368811,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "SequencerInbox",
"address": "eth:0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6",
"isVerified": true,
"ossifyingSince": 1739368811,
"codeChangeCount": 4,
"stateChangeCount": 2
},
{
"name": "RollupEventInbox",
"address": "eth:0x57Bd336d579A51938619271a7Cc137a46D0501B1",
"isVerified": true,
"ossifyingSince": 1739368811,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "EdgeChallengeManager",
"address": "eth:0xA5565d266c3c3Ee90B16Be8A5b13d587ef559fB0",
"isVerified": true,
"ossifyingSince": 1739368811,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OneStepProofEntry",
"address": "eth:0x4397fE1E959Ba81B9D5f1A9679Ddd891955A42d6",
"isVerified": true,
"ossifyingSince": 1734397931,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OneStepProverHostIo",
"address": "eth:0xa07cD154340CC74EcF156FFB9fb378Ee29Ca71Cf",
"isVerified": true,
"ossifyingSince": 1734397775,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OneStepProverMath",
"address": "eth:0xaB9596a0aaF28bc798c453434EC2DC0F8F0bF921",
"isVerified": true,
"ossifyingSince": 1734397631,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OneStepProverMemory",
"address": "eth:0xe0ba77e0E24de5369e3B268Ea79fDe716e2EC48b",
"isVerified": true,
"ossifyingSince": 1734397511,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OneStepProver0",
"address": "eth:0x35FBC5F03d86E88973B06Fb9C5a913D54AbdF731",
"isVerified": true,
"ossifyingSince": 1734397379,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2Timelock",
"address": "arb1:0x34d45e99f7D8c45ed05B5cA72D54bbD1fb3F98f0",
"isVerified": true,
"ossifyingSince": 1729843702,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "SecurityCouncilMemberElectionGovernor",
"address": "arb1:0x467923B9AE90BDB36BA88eCA11604D45F13b712C",
"isVerified": true,
"ossifyingSince": 1719023040,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L1Timelock",
"address": "eth:0xE6841D92B0C345144506576eC13ECf5103aC7f49",
"isVerified": true,
"ossifyingSince": 1695256619,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "SecurityCouncilMemberRemovalGovernor",
"address": "arb1:0x6f3a242cA91A119F872f0073BC14BC8a74a315Ad",
"isVerified": true,
"ossifyingSince": 1692138965,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UpgradeExecRouteBuilder",
"address": "arb1:0x7481716f05E315Fc4C4a64E56DcD9bc1D6F24C0a",
"isVerified": true,
"ossifyingSince": 1692138965,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SecurityCouncilMemberSyncAction",
"address": "arb1:0x9BF7b8884Fa381a45f8CB2525905fb36C996297a",
"isVerified": true,
"ossifyingSince": 1692138730,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2GatewaysProxyAdmin",
"address": "arb1:0xd570aCE65C43af47101fC6250FD6fC63D1c22a86",
"isVerified": true,
"ossifyingSince": 1679004671,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "UpgradeableBeacon",
"address": "arb1:0xE72ba9418b5f2Ce0A6a40501Fe77c6839Aa37333",
"isVerified": true,
"ossifyingSince": 1679004671,
"codeChangeCount": 2,
"stateChangeCount": 3
},
{
"name": "ArbitrumProxyAdmin",
"address": "eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD",
"isVerified": true,
"ossifyingSince": 1679004215,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "GatewaysAdmin",
"address": "eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa",
"isVerified": true,
"ossifyingSince": 1679004155,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "L2ARBGateway",
"address": "arb1:0xCaD7828a19b363A2B44717AFB1786B5196974D8E",
"isVerified": true,
"ossifyingSince": 1678968435,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1ARBGateway",
"address": "eth:0xbbcE8aA77782F13D4202a230d978F361B011dB27",
"isVerified": true,
"ossifyingSince": 1678968431,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ProxyAdmin",
"address": "arb1:0xdb216562328215E010F819B5aBe947bad4ca961e",
"isVerified": true,
"ossifyingSince": 1678968400,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UpgradeExecutorAdmin",
"address": "eth:0x5613AF0474EB9c528A34701A5b1662E3C8FA0678",
"isVerified": true,
"ossifyingSince": 1678968395,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2WethGateway",
"address": "arb1:0x6c411aD3E74De3E7Bd422b94A27770f5B86C623B",
"isVerified": true,
"ossifyingSince": 1675999253,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "L1WethGateway",
"address": "eth:0xd92023E9d9911199a6711321D1277285e6d4e2db",
"isVerified": true,
"ossifyingSince": 1675998023,
"codeChangeCount": 6,
"stateChangeCount": 0
},
{
"name": "GatewayRouter",
"address": "eth:0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef",
"isVerified": true,
"ossifyingSince": 1667926079,
"codeChangeCount": 8,
"stateChangeCount": 0
},
{
"name": "OutboxV0",
"address": "eth:0x667e23ABd27E623c11d4CC00ca3EC4d0bD63337a",
"isVerified": true,
"ossifyingSince": 1661532655,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "OutboxV1",
"address": "eth:0x760723CD2e632826c38Fef8CD438A4CC7E7E1A40",
"isVerified": true,
"ossifyingSince": 1661532655,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ERC20Gateway",
"address": "arb1:0x09e9222E96E7B4AE2a407B98d48e330053351EEe",
"isVerified": true,
"ossifyingSince": 1659980035,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "L2GatewayRouter",
"address": "arb1:0x5288c571Fd7aD117beA99bF60FE0846C4E84F933",
"isVerified": true,
"ossifyingSince": 1659980035,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "L1ERC20Gateway",
"address": "eth:0xa3A7B6F88361F48403514059F1F16C8E78d60EeC",
"isVerified": true,
"ossifyingSince": 1659978124,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "StandardArbERC20",
"address": "arb1:0x3f770Ac673856F105b586bb393d122721265aD46",
"isVerified": true,
"ossifyingSince": 1634920833,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UpgradeableBeacon",
"address": "eth:0x14797f5432f699Cb4d4dB04DF599B74952d78d7b",
"isVerified": true,
"ossifyingSince": 1630187882,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "OutboxEntry",
"address": "eth:0xc4940069140142236D4065b866018f7b2BeC77fD",
"isVerified": true,
"ossifyingSince": 1630185130,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "BeaconProxyFactory",
"address": "arb1:0x3fE38087A94903A9D946fa1915e1772fe611000f",
"isVerified": true,
"ossifyingSince": 1623784070,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2WETH",
"address": "arb1:0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"isVerified": true,
"ossifyingSince": 1622346702,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1622317036,
1624716065,
1624918777,
1625161764,
1627684791,
1629993939,
1630187410,
1630287808,
1630440192,
1631675264,
1631908333,
1634222162,
1634923280,
1639177425,
1646670130,
1651333828,
1659978124,
1661457944,
1661913086,
1663124880,
1667926079,
1668791063,
1671119939,
1675998023,
1679004155,
1694993963,
1695256619,
1706212139,
1709903420,
1710423719,
1719023040,
1720582885,
1724809031,
1727230595,
1729843702,
1739368811,
1750200983,
1753193843,
1758644207,
1767622835,
1774870191,
1776742007,
1779645011,
1781518127,
1787092955,
1788209529
],
"criticalChangesPerYear": 6.333333333333333,
"criticalUpdates": [
{
"id": "5edc278c",
"type": "state"
},
{
"id": "7ec2eb8d",
"type": "state"
},
{
"id": "3b2790a0",
"type": "state"
},
{
"id": "46bcbfff",
"type": "state"
},
{
"id": "4baf4688",
"type": "state"
},
{
"id": "ca7c961e",
"type": "state"
},
{
"id": "58ac24d1",
"type": "state"
},
{
"id": "fff87cf5",
"type": "state"
},
{
"id": "b0f8c079",
"type": "state"
},
{
"id": "4fa46c34",
"type": "state"
}
],
"lastCriticalChange": 1788209529,
"maturity": 0.47549214869427686,
"maturity": 0.4754922864663936,
"perimeterResets": [
1622243344,
1622346702,
1623784062,
1624716065,
1624913237,
1625161764,
1627684791,
1629993939,
1630185130,
1630287808,
1630440192,
1631675264,
1631908333,
1634222162,
1634920833,
1639177425,
1646670130,
1651333828,
1659978124,
1661457944,
1661913086,
1663124880,
1667926079,
1668791063,
1671119939,
1675998023,
1678968395,
1692138730,
1694993963,
1695256619,
1706212139,
1709903420,
1710423719,
1719023040,
1720582885,
1724809031,
1727230595,
1729843702,
1734397379,
1739368811,
1750200983,
1753193843,
1758644207,
1767622835,
1774870191,
1776742007,
1779645011,
1781518127,
1787092955,
1788209529
],
"projectClockStart": 1788209529,
"score": 48,
"windowSeconds": 94608000
}
+1 -1
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"clusteredEventCount": 20,
"contracts": [
{
"name": "DisputeGameFactory",
"address": "eth:0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e",
"isVerified": true,
"ossifyingSince": 1785176507,
"codeChangeCount": 5,
"stateChangeCount": 13
},
{
"name": "SP1VerifierGateway",
"address": "eth:0xdc32E228636273285Befa5F001dBB5142517C106",
"isVerified": true,
"ossifyingSince": 1785176507,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "AggregateVerifier",
"address": "eth:0xeE303bA054c5F1E14A8EF87f1C7E285af45A1ba2",
"isVerified": true,
"ossifyingSince": 1784748491,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TEEProverRegistry",
"address": "eth:0x1af2A7E537DE2eE795DE5B8BfbB1Ad0DD513A5aA",
"isVerified": true,
"ossifyingSince": 1782229799,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "ZkVerifier",
"address": "eth:0xB88D95bDf6972508942d184866890c1834219B75",
"isVerified": true,
"ossifyingSince": 1780357679,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",
"isVerified": true,
"ossifyingSince": 1779825599,
"codeChangeCount": 8,
"stateChangeCount": 3
},
{
"name": "AnchorStateRegistry",
"address": "eth:0x909f6cf47ed12f010A796527f562bFc26C7F4E72",
"isVerified": true,
"ossifyingSince": 1779825599,
"codeChangeCount": 2,
"stateChangeCount": 2
},
{
"name": "TEEVerifier",
"address": "eth:0x1FbA0C57b07Af804A9717e51dec9CC27FBC12228",
"isVerified": true,
"ossifyingSince": 1779394835,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0xd0D07924AdD740a87e41Ca8A0d4CBBf6b074EF71",
"isVerified": true,
"ossifyingSince": 1779394835,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "NitroEnclaveVerifier",
"address": "eth:0x7F3a16E1fe6Fda64c5AC4296E13ECB9F7B44F6fb",
"isVerified": true,
"ossifyingSince": 1779394727,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"isVerified": true,
"ossifyingSince": 1776172415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x0475cBCAebd9CE8AfA5025828d5b98DFb67E059E",
"isVerified": true,
"ossifyingSince": 1772559431,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "L1StandardBridge",
"address": "eth:0x3154Cf16ccdb4C6d922629664174b904d80F2C35",
"isVerified": true,
"ossifyingSince": 1772559059,
"codeChangeCount": 5,
"stateChangeCount": 3
},
{
"name": "DelayedWETH",
"address": "eth:0x64AE5250958CdeB83f6b61f913B5Ac6Ebe8EFd4D",
"isVerified": true,
"ossifyingSince": 1772559059,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "SystemConfig",
"address": "eth:0x73a79Fab69143498Ed3712e519A88a918e1f4072",
"isVerified": true,
"ossifyingSince": 1772559059,
"codeChangeCount": 11,
"stateChangeCount": 3
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x866E82a600A1414e583f7F13623F1aC5d58b0Afa",
"isVerified": true,
"ossifyingSince": 1772559059,
"codeChangeCount": 6,
"stateChangeCount": 3
},
{
"name": "SuperchainConfig",
"address": "eth:0xb535ff7F118260a952CE65e7fF41B1743De8EE6c",
"isVerified": true,
"ossifyingSince": 1771973279,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0x58bf355C5d4EdFc723eF89d99582ECCfd143266A",
"isVerified": true,
"ossifyingSince": 1766424179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "FaultDisputeGame",
"address": "eth:0x6dDBa09bc4cCB0D6Ca9Fc5350580f74165707499",
"isVerified": true,
"ossifyingSince": 1766424179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"isVerified": true,
"ossifyingSince": 1762212215,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0x2453c1216E49704d84eA98a4daCd95738F2fC8Ec",
"isVerified": true,
"ossifyingSince": 1759862579,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x844D5f01161E3559d36f23d0Aa9E9620949aF782",
"isVerified": true,
"ossifyingSince": 1756842755,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroSetVerifier",
"address": "eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85",
"isVerified": true,
"ossifyingSince": 1756842743,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"isVerified": true,
"ossifyingSince": 1755283787,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"isVerified": true,
"ossifyingSince": 1755283775,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x1efDd13f831ceeEa14940806705A53D3211CD698",
"isVerified": true,
"ossifyingSince": 1751494343,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"isVerified": true,
"ossifyingSince": 1751494331,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PreimageOracle",
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"isVerified": true,
"ossifyingSince": 1740762647,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "HistoryStorage",
"address": "eth:0x0000F90827F1C53a10cb7A02335B175320002935",
"isVerified": true,
"ossifyingSince": 1739979839,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierRouter",
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"isVerified": true,
"ossifyingSince": 1718237375,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockController",
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"isVerified": true,
"ossifyingSince": 1718237363,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x8EfB6B5c4767B09Dc9AA6Af4eAA89F749522BaE2",
"isVerified": true,
"ossifyingSince": 1686793895,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2CrossDomainMessenger",
"address": "base:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1686789349,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "base:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1686789349,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "base:0x4200000000000000000000000000000000000016",
"isVerified": true,
"ossifyingSince": 1686789349,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "base:0x4200000000000000000000000000000000000018",
"isVerified": true,
"ossifyingSince": 1686789349,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1719592367,
1728326435,
1730302883,
1733958059,
1736355959,
1738700927,
1744214879,
1745512871,
1745938967,
1746643607,
1750797287,
1759862579,
1764604703,
1770742199,
1772558891,
1779825599,
1780160147,
1780423643,
1782229799,
1785176507
],
"criticalChangesPerYear": 6.666666666666667,
"criticalUpdates": [
{
"id": "649003b6",
"type": "code"
},
{
"id": "05eaffb6",
"type": "state"
},
{
"id": "f8cdcaf7",
"type": "code"
},
{
"id": "9f17fcf4",
"type": "code"
},
{
"id": "a8dda342",
"type": "state"
},
{
"id": "be870638",
"type": "code"
},
{
"id": "3e186ad9",
"type": "code"
},
{
"id": "77392bfd",
"type": "state"
},
{
"id": "91b4eeeb",
"type": "state"
},
{
"id": "d1275fe3",
"type": "state"
},
{
"id": "b1cb7b1f",
"type": "state"
},
{
"id": "310f6e25",
"type": "state"
}
],
"lastCriticalChange": 1785176507,
"maturity": 0.584499296697031,
"maturity": 0.5844993863468677,
"perimeterResets": [
1686789349,
1718237363,
1719592367,
1728308027,
1730302883,
1733958059,
1736355959,
1738700927,
1739979839,
1740762647,
1744214879,
1745512871,
1745938967,
1746643607,
1750797287,
1751494331,
1755283775,
1756842743,
1759862579,
1762212215,
1764604703,
1766424179,
1770742199,
1771973279,
1772558891,
1776172415,
1779394727,
1779825599,
1780160147,
1780357499,
1780473821,
1782229799,
1782377394,
1784748491,
1785176507
],
"projectClockStart": 1785176507,
"score": 58,
"windowSeconds": 94608000
}
+3 -3
+3 -3
{
"clusteredEventCount": 22,
"contracts": [
{
"name": "L1StandardBridge",
"address": "eth:0x3F6cE1b36e5120BBc59D0cFe8A5aC8b6464ac1f7",
"isVerified": true,
"ossifyingSince": 1789547003,
"codeChangeCount": 3,
"stateChangeCount": 2
},
{
"name": "DisputeGameFactory",
"address": "eth:0x96123dbFC3253185B594c6a7472EE5A21E9B1079",
"isVerified": true,
"ossifyingSince": 1777988075,
"codeChangeCount": 2,
"stateChangeCount": 20
},
{
"name": "OptimismPortal2",
"address": "eth:0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",
"isVerified": true,
"ossifyingSince": 1773311975,
"codeChangeCount": 5,
"stateChangeCount": 1
},
{
"name": "AnchorStateRegistry",
"address": "eth:0xC9AC21AcD8696B64270716528bF83630Ea7a293c",
"isVerified": true,
"ossifyingSince": 1773311975,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0x15F80920C8Fec136e2A804E04f26203FF8dAd19A",
"isVerified": true,
"ossifyingSince": 1768920023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0x1A08BA77CB95184Ea0C31e56f199Db068eb6B35d",
"isVerified": true,
"ossifyingSince": 1768920023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0xACB886b75D76d1c8d9248cFdDfA09b70C71c5393",
"isVerified": true,
"ossifyingSince": 1768920023,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0xE3d981643b806FB8030CDB677D6E60892E547EdA",
"isVerified": true,
"ossifyingSince": 1768920023,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "SuperchainConfig",
"address": "eth:0xE925205ad05D8d612Ac205C4941CCd61Fc965C46",
"isVerified": true,
"ossifyingSince": 1768920023,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"isVerified": true,
"ossifyingSince": 1762212215,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xa70ddfb3e00fCFD083E64B200FE867104f703E1c",
"isVerified": true,
"ossifyingSince": 1752682883,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x0d9f416260598313Be6FDf6B010f2FbC34957Cd0",
"isVerified": true,
"ossifyingSince": 1742468147,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "PreimageOracle",
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"isVerified": true,
"ossifyingSince": 1740762647,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0xF2dc77c697e892542cC53336178a78Bb313DFDC7",
"isVerified": true,
"ossifyingSince": 1712862023,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1712862371,
1741870439,
1742468147,
1752686123,
1753214303,
1753361039,
1755555779,
1756823843,
1757106887,
1762813583,
1764685823,
1764861527,
1768920023,
1769450699,
1772045687,
1772624639,
1773311975,
1777981427,
1778580971,
1779312767,
1783496147,
1789547003
],
"criticalChangesPerYear": 8.893973220166025,
"criticalChangesPerYear": 8.893972764105676,
"criticalUpdates": [
{
"id": "2f577ebe",
"type": "code"
},
{
"id": "7493af41",
"type": "state"
},
{
"id": "5d7229ab",
"type": "state"
},
{
"id": "983d5bd1",
"type": "state"
},
{
"id": "d25db477",
"type": "state"
},
{
"id": "c1f6733c",
"type": "state"
},
{
"id": "7742af1a",
"type": "state"
},
{
"id": "0af4c649",
"type": "state"
},
{
"id": "9a3232bd",
"type": "code"
},
{
"id": "fa1c0e70",
"type": "state"
},
{
"id": "d3b597f3",
"type": "state"
},
{
"id": "c0a5cd9a",
"type": "state"
},
{
"id": "6e0a0f51",
"type": "state"
}
],
"lastCriticalChange": 1789547003,
"maturity": 0.37022282203042584,
"maturity": 0.3702232171609948,
"perimeterResets": [
1712862023,
1718237363,
1740762647,
1741870439,
1742468147,
1751494331,
1752682883,
1753214303,
1753361039,
1755283775,
1755555779,
1756823843,
1757106887,
1762212215,
1762813583,
1764685823,
1764861527,
1768920023,
1769450699,
1772045687,
1772624639,
1773311975,
1777898303,
1777988075,
1778580971,
1779312767,
1783496147,
1789547003
],
"projectClockStart": 1789547003,
"score": 37,
"windowSeconds": 78006981
"windowSeconds": 78006985
}
+14 -0
+14 -0
[
{
"id": "c540e3bd",
"date": "Thu, 01 Oct 2026 11:10:27 GMT",
"timestamp": 1790850942,
"description": "7702 re-delegation of a multisig signer.",
"isHighSeverity": true,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (base:0x386ce1a187eC7329CFb8E467EB02FB07c698256A) {\n +++ description: None\n values.$implementation:\n- \"base:0xa845C74344Fc9405b1Fcf712f04668979573c1bf\"\n+ \"base:0xe40ccB2D94975c51bff0C004eFDfd9B3a5796fA4\"\n }\n```"
}
]
},
{
"id": "beb20722",
"date": "Wed, 05 Aug 2026 09:02:43 GMT",
"timestamp": 1785915246,
"description": "Butter interop protocol init disco: validation checks BLS sigs of a validator set on an external L1 (MAP Protocol). Validators can update the set with the discovered quorum. Each bridge tx verifies a merkle proof agains validator-signed block headers from the external L1. The L1 is supposed to run light clients of all participating chains.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract Butter Bridge (base:0x0000317Bec33Af037b5fAb2028f52d14658F6A56) [butternetwork/Bridge]\n +++ description: Butter's Base bridge endpoint. Outbound transfers lock or burn assets and emit messages for the MAP relay chain; inbound transfers execute only after a LightNode-validated receipt proof for the configured MAP relay contract. The bridge can mint configured mintable tokens, release escrowed assets, and invoke receiver callbacks, so compromise of validation, relay configuration, or management authority can lead to loss of bridged funds.\n```\n\n```diff\n+ Status: CREATED\n contract Butter MAP LightNode (base:0x0001805c0B57DBd48B5c5c26E237a135dDC678ae) [butternetwork/LightNode]\n +++ description: Upgradeable MAP relay-chain light client used by Butter bridges. It verifies relay-chain headers with the stored BLS validator set and verifies receipt Merkle proofs against accepted headers. It is the destination-chain validation boundary for bridged messages.\n```\n\n```diff\n+ Status: CREATED\n EOA (base:0x386ce1a187eC7329CFb8E467EB02FB07c698256A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (base:0x9987463102993e177b107e0cE97a0420428D1999) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (base:0xAAAaEE7549a61282F2B4Ca1766f46249D9e71aaA) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Butter AuthorityManager (base:0xACC31A6756B60304C03d6626fc98c062E4539CCA) [butternetwork/AuthorityManager]\n +++ description: OpenZeppelin AccessManager-derived authority for Butter's restricted Bridge and FeeService functions. Its role configuration controls who can change bridge validation dependencies, relay and token settings, fee parameters, pause state, and implementation upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract Butter VerifyTool (base:0xc3393567DC2F1d071254E880c9f501641491471f) [butternetwork/VerifyTool]\n +++ description: Cryptographic and RLP/Merkle-proof helper contract called by the Butter MAP LightNode to validate relay-chain headers and transaction receipts.\n```\n\n```diff\n+ Status: CREATED\n contract Butter FeeService (base:0xfeE31a1FD7FcA0E05428ff751242e46F6D5769a6) [butternetwork/FeeService]\n +++ description: Fee configuration contract used by Butter Bridge to calculate cross-chain message fees and select the fee recipient.\n```"
}
]
}
]
+16 -9
+1 -8
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Cartesi Multisig",
"name": "Cartesi Multisig",
"description": "A Multisig with 3/6 threshold. \n* Can interact with Application\n * withdraw the entire balance in the escrow ",
"description": "A Multisig with 3/5 threshold. \n* Can interact with Application\n * withdraw the entire balance in the escrow ",
"accounts": [
{
"address": "eth:0x60247492F1538Ed4520e61aE41ca2A8447592Ff5",
"type": "Contract",
"isVerified": true,
"name": "0x6024…2Ff5",
"url": "https://etherscan.io/address/0x60247492F1538Ed4520e61aE41ca2A8447592Ff5"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xD91C0C2fC065a2e094129066D2683ef16E6F6032",
"type": "EOA",
"isVerified": true,
"name": "0xD91C…6032",
"url": "https://etherscan.io/address/0xD91C0C2fC065a2e094129066D2683ef16E6F6032"
},
{
"address": "eth:0x53cfaE10bb087bd67288eCA9e7d58E216aEbD961",
"type": "EOA",
"isVerified": true,
"name": "0x53cf…D961",
"url": "https://etherscan.io/address/0x53cfaE10bb087bd67288eCA9e7d58E216aEbD961"
},
{
"address": "eth:0xF4554F08Ed918893996DC36428Cb9DCbF2De990E",
"type": "EOA",
"isVerified": true,
"name": "0xF455…990E",
"url": "https://etherscan.io/address/0xF4554F08Ed918893996DC36428Cb9DCbF2De990E"
},
{
"address": "eth:0xA7Dd0A6AF60ae9Accc7533d016dc7B68Db3324b1",
"type": "EOA",
"isVerified": true,
"name": "0xA7Dd…24b1",
"url": "https://etherscan.io/address/0xA7Dd0A6AF60ae9Accc7533d016dc7B68Db3324b1"
},
{
"address": "eth:0xccD54bae0DfadA083F590f9aA16285f3eE4b5325",
"type": "EOA",
"isVerified": true,
"name": "0xccD5…5325",
"url": "https://etherscan.io/address/0xccD54bae0DfadA083F590f9aA16285f3eE4b5325"
},
{
"address": "eth:0xC826D6061b5C62237932c834B60a5eFf04D80F30",
"type": "EOA",
"isVerified": true,
"name": "0xC826…0F30",
"url": "https://etherscan.io/address/0xC826D6061b5C62237932c834B60a5eFf04D80F30"
}
],
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1790592527,
"baseTimestamp": 1790850950,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "25bf6fe1",
"date": "Thu, 01 Oct 2026 11:10:28 GMT",
"timestamp": 1790850950,
"description": "Cartesi Multisig removed one signer (eth:0xccD54bae0DfadA083F590f9aA16285f3eE4b5325): threshold 3/6 -> 3/5.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Cartesi Multisig (eth:0x60247492F1538Ed4520e61aE41ca2A8447592Ff5) [N/A] {\n +++ description: None\n values.$members.4:\n- \"eth:0xccD54bae0DfadA083F590f9aA16285f3eE4b5325\"\n values.getOwners.4:\n- \"eth:0xccD54bae0DfadA083F590f9aA16285f3eE4b5325\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n values.nonce:\n- 335\n+ 339\n }\n```"
}
]
},
{
"id": "bace87ec",
"date": "Mon, 28 Sep 2026 13:34:22 GMT",
"timestamp": 1790592527,
"description": "Upgraded Cartesi ms to Safe 1.5.0.",
"isHighSeverity": true,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Cartesi Multisig (eth:0x60247492F1538Ed4520e61aE41ca2A8447592Ff5) [N/A] {\n +++ description: None\n template:\n- \"GnosisSafe\"\n sourceHashes.1:\n- \"0x22c7fb8365a538c05d34b77dd9c1967d1ddb7427eda69f84989d4c56603312b7\"\n+ \"0xb66849da6643e8cd188f73efe4edb32704a1540eda5b1aef77a2217ad2d81f78\"\n values.$implementation:\n- \"eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n+ \"eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b\"\n values.getChainId:\n- 1\n values.nonce:\n- 328\n+ 335\n values.VERSION:\n- \"1.3.0\"\n+ \"1.5.0\"\n values.getOwners:\n+ [\"eth:0xD91C0C2fC065a2e094129066D2683ef16E6F6032\",\"eth:0x53cfaE10bb087bd67288eCA9e7d58E216aEbD961\",\"eth:0xF4554F08Ed918893996DC36428Cb9DCbF2De990E\",\"eth:0xA7Dd0A6AF60ae9Accc7533d016dc7B68Db3324b1\",\"eth:0xccD54bae0DfadA083F590f9aA16285f3eE4b5325\",\"eth:0xC826D6061b5C62237932c834B60a5eFf04D80F30\"]\n values.getThreshold:\n+ 3\n implementationNames.eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552:\n- \"GnosisSafe\"\n implementationNames.eth:0xFf51A5898e281Db6DfC7855790607438dF2ca44b:\n+ \"Safe\"\n }\n```"
}
]
},
{
"id": "95f9008f",
"date": "Wed, 10 Dec 2025 15:33:43 GMT",
"timestamp": 1765380759,
"description": "The example tournament has concluded. Nothing to see.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TopTournament_example (eth:0xA2835312696Afa86c969e40831857dbB1412627f) {\n +++ description: Represents the entry point and highest level of a dispute in PRT. Disagreeing validators join this tournament to resolve conflicts over the entire computation trace through a bisection game. The required bond amount for joining the Tournament is calculated from worst case gas estimates and currently is 0.23219805 ETH.\n values.arbitrationResult.0:\n- false\n+ true\n values.arbitrationResult.1:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0xb24767473a260dd656044e7302fc47c52e2d93ce0f3ffb58668b6dcc95e11880\"\n values.arbitrationResult.2:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x144d45af1181b35f2b11c4b1150d6cb16934c28093707fb97c911ff16b3fe609\"\n values.isClosed:\n- false\n+ true\n values.isFinished:\n- false\n+ true\n values.timeFinished.0:\n- false\n+ true\n values.timeFinished.1:\n- 0\n+ 23801750\n }\n```"
}
]
},
{
"id": "93e19ecb",
"date": "Fri, 14 Nov 2025 11:18:55 GMT",
"timestamp": 1763109405,
"description": "Diff against honeypot v1:\n- [Application](https://disco.l2beat.com/diff/eth:0x4c1E74EF88a75C24e49eddD9f70D82A94D19251c/eth:0xfDDF68726a28e418fA0c2a52c3134904a8c3e998): minimal changes, mainly formatting and casing, and a new field is added to track the number of \"executed outputs\". The template hash is different.\n- [DaveConsensus](https://disco.l2beat.com/diff/eth:0x6CE590b9F0697327f18c601DF6f0baE4a0801B68/eth:0xF0D8374F8446E87e013Ec1435C7245E05f439259): new constants, new interface. The biggest change comes from the imported interface but very little of it is actually used.\n- [InputBox](https://disco.l2beat.com/diff/eth:0xc70074BDD26d8cF983Ca6A5b89b8db52D5850051/eth:0x1b51e2992A2755Ba4D6F7094032DF91991a0Cfac): aesthetic changes.\n- [ERC20Portal](https://disco.l2beat.com/diff/eth:0xc700D6aDd016eECd59d989C028214Eaa0fCC0051/eth:0xACA6586A0Cf05bD831f2501E7B4aea550dA6562D): aesthetic changes.\n- [MultiLevelTournamentFactory](https://disco.l2beat.com/diff/eth:0xA31C2aCfF3464658866960c0fBD3d798310272D7/eth:0xa02997f69Dc5F1A727abE12ee36f87E28BBdEa6b): main change i notice is the additional of a `height` value in many functions.\n- [BottomTournament](https://disco.l2beat.com/diff/eth:0x18256941eC7B661F9F46C228b74e775b581e63f8/eth:0xe6B4444d324E0B403c9C43C5d7c8B2C3d5d02962)\n- [MiddleTournament](https://disco.l2beat.com/diff/eth:0xe49E4CB0Ab5c0E5792E762807329B420Cc4FF1AE/eth:0x0a88360f41D0f643ea63ade00c0A1a795395d2D9)\n- [TopTournament](https://disco.l2beat.com/diff/eth:0x09114973AE4bf3Af3896E4e541082C73f224F8Aa/eth:0x367Ff3c21E189645aaf17bDD41D4C186686CfE53): obligatory bondValue added (gas dependent) that must be paid on joinTournament(), can be used for gas refunds and be claimed by tournament winner\n- No significant changes in the Top/Middle/Bottom tournament factories.",
"isHighSeverity": false,
"changeCount": 15,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract MiddleTournament (eth:0x0a88360f41D0f643ea63ade00c0A1a795395d2D9)\n +++ description: Handles the intermediate stages of a dispute following the TopTournament targeting a more granular bisection game.\n```\n\n```diff\n+ Status: CREATED\n contract InputBox (eth:0x1b51e2992A2755Ba4D6F7094032DF91991a0Cfac)\n +++ description: Serves as both the canonical log for arbitrary dApp inputs and a portal for depositing assets (one possible type of input). It ensures data availability and that all off-chain participants process the same inputs in the same order.\n```\n\n```diff\n+ Status: CREATED\n contract CartesiStateTransition (eth:0x31EEaeC2A8d855B13B376b72C172F0c20A2910F6)\n +++ description: Onchain verifier that can execute a single, disputed instruction of the Cartesi machine. It is the ultimate arbiter that BottomTournament calls to determine which party's claimed state transition is correct.\n```\n\n```diff\n+ Status: CREATED\n contract TopTournament (eth:0x367Ff3c21E189645aaf17bDD41D4C186686CfE53)\n +++ description: Represents the entry point and highest level of a dispute in PRT. Disagreeing validators join this tournament to resolve conflicts over the entire computation trace through a bisection game.\n```\n\n```diff\n+ Status: CREATED\n contract MiddleTournamentFactory (eth:0x47c7f40841F842f7691cB9Fd6Cd63673B79dCe79)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Cartesi Multisig (eth:0x60247492F1538Ed4520e61aE41ca2A8447592Ff5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BottomTournamentFactory (eth:0x6ccb8955afFA2aE4A88a4fC30916b41074d1F2B6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MultiLevelTournamentFactory (eth:0xa02997f69Dc5F1A727abE12ee36f87E28BBdEa6b)\n +++ description: Responsible for creating and orchestrating the multi-stage dispute process. It instantiates the correct tournament contract (Top, Middle, or Bottom) depending on the current stage of the dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract TopTournament_example (eth:0xA2835312696Afa86c969e40831857dbB1412627f)\n +++ description: Represents the entry point and highest level of a dispute in PRT. Disagreeing validators join this tournament to resolve conflicts over the entire computation trace through a bisection game. The required bond amount for joining the Tournament is calculated from worst case gas estimates and currently is 0.23219805 ETH.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Portal (eth:0xACA6586A0Cf05bD831f2501E7B4aea550dA6562D)\n +++ description: Contract that allows anyone to perform transfers of ERC-20 tokens to Cartesi DApps.\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalTournamentParametersProvider (eth:0xc8d8639C3ec8925A00d4F262299807DC632c3113)\n +++ description: Provides constant configuration data for the tournament system. It defines parameters like the number of levels (3), the minimum challenge period of ~7d, and the size of computation segments at each stage of a dispute.\n```\n\n```diff\n+ Status: CREATED\n contract BottomTournament (eth:0xe6B4444d324E0B403c9C43C5d7c8B2C3d5d02962)\n +++ description: Referees the dispute over a single contested Cartesi machine step as the final stage of arbitration in a dispute. It calls the CartesiStateTransition contract to get a definitive on-chain ruling and identify the winner.\n```\n\n```diff\n+ Status: CREATED\n contract DaveConsensus (eth:0xF0D8374F8446E87e013Ec1435C7245E05f439259)\n +++ description: Contract managing PRT fraud-proof tournaments, application epochs and input validation, as well as settlement and challenge periods. Dispute tournaments are started here and the final, verified computation result (as an `outputsMerkleRoot`) is recorded when they are resolved.\n```\n\n```diff\n+ Status: CREATED\n contract Application (eth:0xfDDF68726a28e418fA0c2a52c3134904a8c3e998)\n +++ description: Main dApp contract that escrows assets and executes the verified results (outputs) from off-chain computation. It relies on the eth:0xF0D8374F8446E87e013Ec1435C7245E05f439259 contract to validate outputs before releasing assets or triggering on-chain actions. The immutable template hash of the dApp is `0x144d45af1181b35f2b11c4b1150d6cb16934c28093707fb97c911ff16b3fe609`.\n```\n\n```diff\n+ Status: CREATED\n contract TopTournamentFactory (eth:0xfdF16a7D9143f5E3B7B056b761a7eF8Ce18dc6eF)\n +++ description: None\n```"
}
]
}
]
+244 -195
+244 -195
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "MessageTransmitter",
"isVerified": true,
"address": "eth:0x0a992d191DEeC32aFe36203Ad87D7d289a738F81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 24\n * **getEnabledAttester**: EOA 81, EOA 97\n * **owner**: EOA 35\n * **pauser**: EOA 89\n * **rescuer**: EOA 46",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 26\n * **getEnabledAttester**: EOA 83, EOA 99\n * **owner**: EOA 37\n * **pauser**: EOA 91\n * **rescuer**: EOA 48",
"discoveryDrivenData": true
},
{
"name": "GatewayMinter",
"isVerified": true,
"address": "eth:0x2222222d7164433c4C09B0b0D809a9b52C04C205",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6"
],
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0x868dA8E567a2C6D668f1bBFbC9B11d0567fc8C0C"
]
},
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
}
],
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 28\n * **attestationSigners**: EOA 22\n * **denylister**: EOA 57\n * **owner**: EOA 28\n * **pauser**: EOA 45",
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 30\n * **attestationSigners**: EOA 24\n * **denylister**: EOA 59\n * **owner**: EOA 30\n * **pauser**: EOA 47",
"upgradableBy": [
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessengerV2",
"isVerified": true,
"address": "eth:0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xa820A620F638114F3Eb45df87382383322dDBC49"
],
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234111,
"transactionHash": "0x790ed794d50247273bdc386279972cb8bd05fb0d92eda2ddf496e9d20681a6f5",
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 78\n * **denylister**: EOA 85\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 17\n * **rescuer**: EOA 3",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 80\n * **denylister**: EOA 87\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 19\n * **rescuer**: EOA 3",
"upgradableBy": [
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "GatewayWallet",
"isVerified": true,
"address": "eth:0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5"
],
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0xdc92756F7Bbbd934345B6c14b7FcdC42E7FBA19F"
]
},
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0x899a4f5f5422cC5E8183280182e7096Fb923C762"
]
},
{
"timestamp": 1760730395,
"transactionHash": "0xdc67731c86a1e54bc1ed01654a64dc1518211aa20df0733ed96d6fa0f6e63cc0",
"implementations": [
"eth:0xdE4d0329Db2c046b8bA35180822aEECCf63D3294"
]
},
{
"timestamp": 1776720695,
"transactionHash": "0x1f5e227f100df6b0932df083c80a695d00a9d994963558dad8bdc30cacad6ffb",
"implementations": [
"eth:0x09E3740c97C7413693B7e07C32D42C53CD050d27"
]
},
{
"timestamp": 1784835131,
"transactionHash": "0x9032a846cd5f1fe703f17ab9b6015966a4f953412483a90d822992eeec99699d",
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
}
],
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 19\n * **attestationSigners**: EOA 83\n * **contractSignersAllowlister**: EOA 9\n * **denylister**: EOA 48\n * **owner**: EOA 19\n * **pauser**: EOA 74",
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 21\n * **attestationSigners**: EOA 85\n * **contractSignersAllowlister**: EOA 10\n * **denylister**: EOA 50\n * **owner**: EOA 21\n * **pauser**: EOA 76",
"upgradableBy": [
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "MessageTransmitterV2",
"isVerified": true,
"address": "eth:0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258"
],
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234063,
"transactionHash": "0x5ffaa1582fac9975d8fb0aee75cc0d5bb67c3c2878c33321b84136eda12db0a1",
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 84\n * **attesterManager**: EOA 86\n * **getEnabledAttester**: EOA 37, EOA 47\n * **owner**: EOA 82\n * **pauser**: EOA 25\n * **rescuer**: EOA 38",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 86\n * **attesterManager**: EOA 88\n * **getEnabledAttester**: EOA 39, EOA 49\n * **owner**: EOA 84\n * **pauser**: EOA 27\n * **rescuer**: EOA 40",
"upgradableBy": [
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "USD Coin Token",
"isVerified": true,
"address": "eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2"
],
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598542374,
"transactionHash": "0xe6f0f754398d89583da8e4229c5d7aaa00739a3ae334ecfc2839ac396b4836e3",
"implementations": [
"eth:0xB7277a6e95992041568D9391D09d0122023778A2"
]
},
{
"timestamp": 1619464491,
"transactionHash": "0xe2e40640ffd5f76538cd23660cf56f00bfebd5fe925ebad6b8067c4cee18a2c3",
"implementations": [
"eth:0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF"
]
},
{
"timestamp": 1704734195,
"transactionHash": "0xae3ad89e569f27d47a8a02999a6d937c12aaa6bc50e66650e7cbd3244bde9951",
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
]
}
],
"description": "* Roles:\n * **admin**: EOA 59\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **minters**: EOA 1, EOA 100, EOA 103, EOA 105, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 4, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 8, EOA 99, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2; ultimately EOA 22, EOA 37, EOA 47, EOA 81, EOA 83, EOA 97\n * **owner**: EOA 106\n * **pauser**: EOA 34",
"description": "* Roles:\n * **admin**: EOA 61\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **minters**: EOA 1, EOA 101, EOA 102, EOA 105, EOA 107, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 4, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 8, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2, UnverifiedUSDCMinter; ultimately EOA 24, EOA 39, EOA 49, EOA 83, EOA 85, EOA 99\n * **owner**: EOA 109\n * **pauser**: EOA 36",
"upgradableBy": [
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessenger",
"isVerified": true,
"address": "eth:0xBd3fa81B58Ba92a82136038B25aDec7066af3155",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 43\n * **rescuer**: EOA 42",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 45\n * **rescuer**: EOA 44",
"discoveryDrivenData": true
},
{
"name": "TokenMinter",
"isVerified": true,
"address": "eth:0xc4922d64a24675E16e1586e3e3Aa56C06fABe907",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 60\n * **rescuer**: EOA 73\n * **tokenController**: EOA 65",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 62\n * **rescuer**: EOA 75\n * **tokenController**: EOA 67",
"discoveryDrivenData": true
},
{
"name": "MasterMinter",
"isVerified": true,
"address": "eth:0xE982615d461DD5cD06575BbeA87624fda4e3de17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **controllers**: EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **owner**: EOA 87",
"description": "* Roles:\n * **controllers**: EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **owner**: EOA 89",
"discoveryDrivenData": true
},
{
"name": "TokenMinterV2",
"isVerified": true,
"address": "eth:0xfd78EE919681417d192449715b2594ab58f5D002",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 56\n * **pauser**: EOA 36\n * **rescuer**: EOA 96\n * **tokenController**: EOA 49",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 58\n * **pauser**: EOA 38\n * **rescuer**: EOA 98\n * **tokenController**: EOA 51",
"discoveryDrivenData": true
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
},
"description": "CCTP v1 is the first version of the Cross-Chain Transfer Protocol by Circle. Mainly used for USDC burn-mint transfers, it coexists with the v2 protocol and can also be used for arbitrary message passing.",
"detailedDescription": "# Architecture\nCircle's Cross-Chain Transfer Protocol (CCTP) is a centralized burn-and-mint bridge for USDC and, underneath it, a generalized message-passing protocol. A source-chain `TokenMessenger` burns USDC through the local `TokenMinter` and asks the `MessageTransmitter` to emit a message for the destination domain. Circle's offchain Iris attestation service observes the source transaction and acts as the oracle / attester at the destination. Anyone with the message and attestation can call `receiveMessage` on the destination `MessageTransmitter`; the contract verifies the attester signatures, prevents nonce replay, dispatches the message to the destination `TokenMessenger`, and mints the same amount of native USDC to the requested recipient.\n\n# CCTP v1 and v2\nCCTP v1 and v2 use the same high-level flow and both can carry arbitrary message bodies. In the Ethereum discovery, v1's `MessageTransmitter` and `TokenMessenger` are immutable contracts. [CCTP v1](https://developers.circle.com/cctp/v1) only supports 'Standard Transfer': Circle waits for a certain amount of block confirmations on the source chain before attesting.\n\nCCTP v2 uses `MessageTransmitterV2` and `TokenMessengerV2`, adds finality thresholds, destination mint fees, and optional hook data. The new 'Fast Transfer' feature lets Iris attest much faster as long as Circle's global 'Fast Transfer' allowance is available. Hooks are metadata passed with the burn message and are interpreted by app-level integrators rather than executed by CCTP core.\n\n# Crosschain oracle and validation\nCCTP does not validate source-chain state on the destination chain. The destination `MessageTransmitter` verifies signatures from Circle-controlled attesters, so security depends on Circle's offchain attestation service signing only valid source messages and protecting its signing keys. CCTP v1 is configured with a 2/2 attester threshold, while v2 is configured with a 2/2 threshold. The attester manager can change enabled attesters and thresholds, and the owner can change the attester manager.\n\n# Upgradeability\nThe v1 Ethereum contracts in discovery are immutable, but critical permissions like ownership, minters, pausing, rescuer, token-controller, and attester-manager roles govern protocol operation. V2 introduces proxied contracts; their proxy admins can replace implementations with no onchain delay. CCTP is deployed per Circle domain, so a complete risk assessment must include the corresponding contracts, signer configuration, and permissions on every supported source and destination chain.",
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-11,-EOA-14,-EOA-15,-EOA-16,-EOA-18,-EOA-20,-EOA-21,-EOA-31,-EOA-33,-EOA-39,-EOA-40,-EOA-52,-EOA-55,-EOA-62,-EOA-63,-EOA-64,-EOA-67,-EOA-72,-EOA-76,-EOA-77,-EOA-99,-EOA-100,-EOA-103-and-EOA-105",
"name": "EOA 1, EOA 4, EOA 8, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 99, EOA 100, EOA 103 and EOA 105",
"id": "UnverifiedUSDCMinter",
"name": "UnverifiedUSDCMinter",
"accounts": [
{
"address": "eth:0xA669f564133A1612dbd6f5E579863aA0a34448Bd",
"type": "Contract",
"isVerified": false,
"name": "0xA669…48Bd",
"url": "https://etherscan.io/address/0xA669f564133A1612dbd6f5E579863aA0a34448Bd"
}
],
"chain": "ethereum",
"description": "Upgradeable contract with an unverified implementation that is registered as a USDC minter in the USDC token contract. Its minting allowance is set by its MasterMinter controllers.\n* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-12,-EOA-16,-EOA-17,-EOA-18,-EOA-20,-EOA-22,-EOA-23,-EOA-33,-EOA-35,-EOA-41,-EOA-42,-EOA-54,-EOA-57,-EOA-64,-EOA-65,-EOA-66,-EOA-69,-EOA-74,-EOA-78,-EOA-79,-EOA-101,-EOA-102,-EOA-105-and-EOA-107",
"name": "EOA 1, EOA 4, EOA 8, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 101, EOA 102, EOA 105 and EOA 107",
"accounts": [
{
"address": "eth:0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"type": "EOA",
"isVerified": true,
"name": "0x0057…6Ba5",
"url": "https://etherscan.io/address/0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"displayName": "EOA 1"
},
{
"address": "eth:0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"type": "EOA",
"isVerified": true,
"name": "0x0896…869a",
"url": "https://etherscan.io/address/0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"displayName": "EOA 4"
},
{
"address": "eth:0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"type": "EOA",
"isVerified": true,
"name": "0x119c…3E90",
"url": "https://etherscan.io/address/0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"displayName": "EOA 8"
},
{
"address": "eth:0x1375c5FF3785850314f5A612A7837CC295075eF1",
"type": "EOA",
"isVerified": true,
"name": "0x1375…5eF1",
"url": "https://etherscan.io/address/0x1375c5FF3785850314f5A612A7837CC295075eF1",
"displayName": "EOA 11"
"displayName": "EOA 12"
},
{
"address": "eth:0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"type": "EOA",
"isVerified": true,
"name": "0x1971…2186",
"url": "https://etherscan.io/address/0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"displayName": "EOA 14"
"displayName": "EOA 16"
},
{
"address": "eth:0x19a932fC5A8320939c3575302a8705147a7f27D8",
"type": "EOA",
"isVerified": true,
"name": "0x19a9…27D8",
"url": "https://etherscan.io/address/0x19a932fC5A8320939c3575302a8705147a7f27D8",
"displayName": "EOA 15"
"displayName": "EOA 17"
},
{
"address": "eth:0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"type": "EOA",
"isVerified": true,
"name": "0x2322…1946",
"url": "https://etherscan.io/address/0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"displayName": "EOA 16"
"displayName": "EOA 18"
},
{
"address": "eth:0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"type": "EOA",
"isVerified": true,
"name": "0x24BD…1BE3",
"url": "https://etherscan.io/address/0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"displayName": "EOA 18"
"displayName": "EOA 20"
},
{
"address": "eth:0x2b52e60C844d7946b6d910D3296940dC889CC785",
"type": "EOA",
"isVerified": true,
"name": "0x2b52…C785",
"url": "https://etherscan.io/address/0x2b52e60C844d7946b6d910D3296940dC889CC785",
"displayName": "EOA 20"
"displayName": "EOA 22"
},
{
"address": "eth:0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"type": "EOA",
"isVerified": true,
"name": "0x3005…ca61",
"url": "https://etherscan.io/address/0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"displayName": "EOA 21"
"displayName": "EOA 23"
},
{
"address": "eth:0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"type": "EOA",
"isVerified": true,
"name": "0x425a…26c5",
"url": "https://etherscan.io/address/0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"displayName": "EOA 31"
"displayName": "EOA 33"
},
{
"address": "eth:0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"type": "EOA",
"isVerified": true,
"name": "0x4654…C202",
"url": "https://etherscan.io/address/0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"displayName": "EOA 33"
"displayName": "EOA 35"
},
{
"address": "eth:0x55FE002aefF02F77364de339a1292923A15844B8",
"type": "EOA",
"isVerified": true,
"name": "0x55FE…44B8",
"url": "https://etherscan.io/address/0x55FE002aefF02F77364de339a1292923A15844B8",
"displayName": "EOA 39"
"displayName": "EOA 41"
},
{
"address": "eth:0x5B6122C109B78C6755486966148C1D70a50A47D7",
"type": "EOA",
"isVerified": true,
"name": "0x5B61…47D7",
"url": "https://etherscan.io/address/0x5B6122C109B78C6755486966148C1D70a50A47D7",
"displayName": "EOA 40"
"displayName": "EOA 42"
},
{
"address": "eth:0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"type": "EOA",
"isVerified": true,
"name": "0x77C9…377E",
"url": "https://etherscan.io/address/0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"displayName": "EOA 52"
"displayName": "EOA 54"
},
{
"address": "eth:0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"type": "EOA",
"isVerified": true,
"name": "0x7BdD…9A2D",
"url": "https://etherscan.io/address/0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"displayName": "EOA 55"
"displayName": "EOA 57"
},
{
"address": "eth:0x895F07957B863f4AB6086035a6990d8366Bc3266",
"type": "EOA",
"isVerified": true,
"name": "0x895F…3266",
"url": "https://etherscan.io/address/0x895F07957B863f4AB6086035a6990d8366Bc3266",
"displayName": "EOA 62"
"displayName": "EOA 64"
},
{
"address": "eth:0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"type": "EOA",
"isVerified": true,
"name": "0x8966…EEA7",
"url": "https://etherscan.io/address/0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"displayName": "EOA 63"
"displayName": "EOA 65"
},
{
"address": "eth:0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"type": "EOA",
"isVerified": true,
"name": "0x8967…0ca7",
"url": "https://etherscan.io/address/0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"displayName": "EOA 64"
"displayName": "EOA 66"
},
{
"address": "eth:0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"type": "EOA",
"isVerified": true,
"name": "0x911c…40Cd",
"url": "https://etherscan.io/address/0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"displayName": "EOA 67"
"displayName": "EOA 69"
},
{
"address": "eth:0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"type": "EOA",
"isVerified": true,
"name": "0x93Cb…Bf7E",
"url": "https://etherscan.io/address/0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"displayName": "EOA 72"
"displayName": "EOA 74"
},
{
"address": "eth:0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"type": "EOA",
"isVerified": true,
"name": "0xa1EF…3609",
"url": "https://etherscan.io/address/0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"displayName": "EOA 76"
"displayName": "EOA 78"
},
{
"address": "eth:0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"type": "EOA",
"isVerified": true,
"name": "0xA582…d5c7",
"url": "https://etherscan.io/address/0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"displayName": "EOA 77"
"displayName": "EOA 79"
},
{
"address": "eth:0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"type": "EOA",
"isVerified": true,
"name": "0xE400…646F",
"url": "https://etherscan.io/address/0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"displayName": "EOA 99"
"displayName": "EOA 101"
},
{
"address": "eth:0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"type": "EOA",
"isVerified": true,
"name": "0xe898…7096",
"url": "https://etherscan.io/address/0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"displayName": "EOA 100"
"displayName": "EOA 102"
},
{
"address": "eth:0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"type": "EOA",
"isVerified": true,
"name": "0xEc72…b70b",
"url": "https://etherscan.io/address/0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"displayName": "EOA 103"
"displayName": "EOA 105"
},
{
"address": "eth:0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"type": "EOA",
"isVerified": true,
"name": "0xF0f3…A74F",
"url": "https://etherscan.io/address/0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"displayName": "EOA 105"
"displayName": "EOA 107"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"type": "EOA",
"isVerified": true,
"name": "0x0143…8dC8",
"url": "https://etherscan.io/address/0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"type": "EOA",
"isVerified": true,
"name": "0x070B…6f2A",
"url": "https://etherscan.io/address/0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-5,-EOA-7,-EOA-10,-EOA-12,-EOA-13,-EOA-23,-EOA-26,-EOA-27,-EOA-29,-EOA-30,-EOA-32,-EOA-41,-EOA-44,-EOA-50,-EOA-51,-EOA-53,-EOA-54,-EOA-58,-EOA-61,-EOA-66,-EOA-68,-EOA-69,-EOA-70,-EOA-71,-EOA-75,-EOA-79,-EOA-80,-EOA-87,-EOA-88,-EOA-90,-EOA-91,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-98,-EOA-101,-EOA-102,-EOA-104,-EOA-107,-EOA-108-and-EOA-109",
"name": "EOA 5, EOA 7, EOA 10, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108 and EOA 109",
"id": "EOA-5,-EOA-7,-EOA-9,-EOA-11,-EOA-13,-EOA-15,-EOA-25,-EOA-28,-EOA-29,-EOA-31,-EOA-32,-EOA-34,-EOA-43,-EOA-46,-EOA-52,-EOA-53,-EOA-55,-EOA-56,-EOA-60,-EOA-63,-EOA-68,-EOA-70,-EOA-71,-EOA-72,-EOA-73,-EOA-77,-EOA-81,-EOA-82,-EOA-89,-EOA-90,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-96,-EOA-97,-EOA-100,-EOA-103,-EOA-104,-EOA-106,-EOA-108,-EOA-110,-EOA-111-and-EOA-112",
"name": "EOA 5, EOA 7, EOA 9, EOA 11, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97, EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 110, EOA 111 and EOA 112",
"accounts": [
{
"address": "eth:0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"type": "EOA",
"isVerified": true,
"name": "0x08c7…2Ec3",
"url": "https://etherscan.io/address/0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"displayName": "EOA 5"
},
{
"address": "eth:0x0F493479be830657ACa110199A70E826506A54d3",
"type": "EOA",
"isVerified": true,
"name": "0x0F49…54d3",
"url": "https://etherscan.io/address/0x0F493479be830657ACa110199A70E826506A54d3",
"displayName": "EOA 7"
},
{
"address": "eth:0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"type": "EOA",
"isVerified": true,
"name": "0x1238…27f3",
"url": "https://etherscan.io/address/0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"displayName": "EOA 9"
},
{
"address": "eth:0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"type": "EOA",
"isVerified": true,
"name": "0x130A…246c",
"url": "https://etherscan.io/address/0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"displayName": "EOA 10"
"displayName": "EOA 11"
},
{
"address": "eth:0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"type": "EOA",
"isVerified": true,
"name": "0x14b1…5a3e",
"url": "https://etherscan.io/address/0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"displayName": "EOA 12"
"displayName": "EOA 13"
},
{
"address": "eth:0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"type": "EOA",
"isVerified": true,
"name": "0x162B…682E",
"url": "https://etherscan.io/address/0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"displayName": "EOA 13"
"displayName": "EOA 15"
},
{
"address": "eth:0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"type": "EOA",
"isVerified": true,
"name": "0x355f…bcad",
"url": "https://etherscan.io/address/0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"displayName": "EOA 23"
"displayName": "EOA 25"
},
{
"address": "eth:0x38d51f44B586b154159932F3681a30c54A6d25a9",
"type": "EOA",
"isVerified": true,
"name": "0x38d5…25a9",
"url": "https://etherscan.io/address/0x38d51f44B586b154159932F3681a30c54A6d25a9",
"displayName": "EOA 26"
"displayName": "EOA 28"
},
{
"address": "eth:0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"type": "EOA",
"isVerified": true,
"name": "0x39A3…7fB5",
"url": "https://etherscan.io/address/0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"displayName": "EOA 27"
"displayName": "EOA 29"
},
{
"address": "eth:0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"type": "EOA",
"isVerified": true,
"name": "0x3F1d…9d2f",
"url": "https://etherscan.io/address/0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"displayName": "EOA 29"
"displayName": "EOA 31"
},
{
"address": "eth:0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"type": "EOA",
"isVerified": true,
"name": "0x4024…F82C",
"url": "https://etherscan.io/address/0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"displayName": "EOA 30"
"displayName": "EOA 32"
},
{
"address": "eth:0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"type": "EOA",
"isVerified": true,
"name": "0x4403…b806",
"url": "https://etherscan.io/address/0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"displayName": "EOA 32"
"displayName": "EOA 34"
},
{
"address": "eth:0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"type": "EOA",
"isVerified": true,
"name": "0x6301…cEb7",
"url": "https://etherscan.io/address/0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"displayName": "EOA 41"
"displayName": "EOA 43"
},
{
"address": "eth:0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"type": "EOA",
"isVerified": true,
"name": "0x6e19…3F2D",
"url": "https://etherscan.io/address/0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"displayName": "EOA 44"
"displayName": "EOA 46"
},
{
"address": "eth:0x74F471Af556aBff915804C0f19D642497aFa13B5",
"type": "EOA",
"isVerified": true,
"name": "0x74F4…13B5",
"url": "https://etherscan.io/address/0x74F471Af556aBff915804C0f19D642497aFa13B5",
"displayName": "EOA 50"
"displayName": "EOA 52"
},
{
"address": "eth:0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"type": "EOA",
"isVerified": true,
"name": "0x768d…7d65",
"url": "https://etherscan.io/address/0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"displayName": "EOA 51"
"displayName": "EOA 53"
},
{
"address": "eth:0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"type": "EOA",
"isVerified": true,
"name": "0x79E0…9F71",
"url": "https://etherscan.io/address/0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"displayName": "EOA 53"
"displayName": "EOA 55"
},
{
"address": "eth:0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"type": "EOA",
"isVerified": true,
"name": "0x7B3d…c6AB",
"url": "https://etherscan.io/address/0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"displayName": "EOA 54"
"displayName": "EOA 56"
},
{
"address": "eth:0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"type": "EOA",
"isVerified": true,
"name": "0x7Ee7…c5B2",
"url": "https://etherscan.io/address/0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"displayName": "EOA 58"
"displayName": "EOA 60"
},
{
"address": "eth:0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"type": "EOA",
"isVerified": true,
"name": "0x8627…e049",
"url": "https://etherscan.io/address/0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"displayName": "EOA 61"
"displayName": "EOA 63"
},
{
"address": "eth:0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"type": "EOA",
"isVerified": true,
"name": "0x8E07…e40d",
"url": "https://etherscan.io/address/0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"displayName": "EOA 66"
"displayName": "EOA 68"
},
{
"address": "eth:0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"type": "EOA",
"isVerified": true,
"name": "0x9138…dB6d",
"url": "https://etherscan.io/address/0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"displayName": "EOA 68"
"displayName": "EOA 70"
},
{
"address": "eth:0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"type": "EOA",
"isVerified": true,
"name": "0x919f…04b3",
"url": "https://etherscan.io/address/0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"displayName": "EOA 69"
"displayName": "EOA 71"
},
{
"address": "eth:0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"type": "EOA",
"isVerified": true,
"name": "0x92c3…0684",
"url": "https://etherscan.io/address/0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"displayName": "EOA 70"
"displayName": "EOA 72"
},
{
"address": "eth:0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"type": "EOA",
"isVerified": true,
"name": "0x936F…bBfD",
"url": "https://etherscan.io/address/0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"displayName": "EOA 71"
"displayName": "EOA 73"
},
{
"address": "eth:0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"type": "EOA",
"isVerified": true,
"name": "0x9d5C…c5E4",
"url": "https://etherscan.io/address/0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"displayName": "EOA 75"
"displayName": "EOA 77"
},
{
"address": "eth:0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"type": "EOA",
"isVerified": true,
"name": "0xAF60…24dF",
"url": "https://etherscan.io/address/0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"displayName": "EOA 79"
"displayName": "EOA 81"
},
{
"address": "eth:0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"type": "EOA",
"isVerified": true,
"name": "0xB0C9…9017",
"url": "https://etherscan.io/address/0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"displayName": "EOA 80"
"displayName": "EOA 82"
},
{
"address": "eth:0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"type": "EOA",
"isVerified": true,
"name": "0xC1d9…c704",
"url": "https://etherscan.io/address/0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"displayName": "EOA 87"
"displayName": "EOA 89"
},
{
"address": "eth:0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"type": "EOA",
"isVerified": true,
"name": "0xC2Bb…0a06",
"url": "https://etherscan.io/address/0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"displayName": "EOA 88"
"displayName": "EOA 90"
},
{
"address": "eth:0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"type": "EOA",
"isVerified": true,
"name": "0xCE4D…43Bd",
"url": "https://etherscan.io/address/0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"displayName": "EOA 90"
"displayName": "EOA 92"
},
{
"address": "eth:0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"type": "EOA",
"isVerified": true,
"name": "0xD058…8275",
"url": "https://etherscan.io/address/0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"displayName": "EOA 91"
"displayName": "EOA 93"
},
{
"address": "eth:0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"type": "EOA",
"isVerified": true,
"name": "0xd285…67a3",
"url": "https://etherscan.io/address/0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"displayName": "EOA 92"
"displayName": "EOA 94"
},
{
"address": "eth:0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"type": "EOA",
"isVerified": true,
"name": "0xD3eF…0623",
"url": "https://etherscan.io/address/0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"displayName": "EOA 93"
"displayName": "EOA 95"
},
{
"address": "eth:0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"type": "EOA",
"isVerified": true,
"name": "0xdBEb…8B85",
"url": "https://etherscan.io/address/0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"displayName": "EOA 94"
"displayName": "EOA 96"
},
{
"address": "eth:0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"type": "EOA",
"isVerified": true,
"name": "0xDe59…2444",
"url": "https://etherscan.io/address/0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"displayName": "EOA 95"
"displayName": "EOA 97"
},
{
"address": "eth:0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"type": "EOA",
"isVerified": true,
"name": "0xe37e…4378",
"url": "https://etherscan.io/address/0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"displayName": "EOA 98"
"displayName": "EOA 100"
},
{
"address": "eth:0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"type": "EOA",
"isVerified": true,
"name": "0xe969…c19d",
"url": "https://etherscan.io/address/0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"displayName": "EOA 101"
"displayName": "EOA 103"
},
{
"address": "eth:0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"type": "EOA",
"isVerified": true,
"name": "0xeb10…8314",
"url": "https://etherscan.io/address/0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"displayName": "EOA 102"
"displayName": "EOA 104"
},
{
"address": "eth:0xEff933714A1B1F8600873BB61dc8F522F6438971",
"type": "EOA",
"isVerified": true,
"name": "0xEff9…8971",
"url": "https://etherscan.io/address/0xEff933714A1B1F8600873BB61dc8F522F6438971",
"displayName": "EOA 104"
"displayName": "EOA 106"
},
{
"address": "eth:0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"type": "EOA",
"isVerified": true,
"name": "0xfB9a…C42c",
"url": "https://etherscan.io/address/0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"displayName": "EOA 108"
},
{
"address": "eth:0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"type": "EOA",
"isVerified": true,
"name": "0xfe0F…916E",
"url": "https://etherscan.io/address/0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"displayName": "EOA 107"
"displayName": "EOA 110"
},
{
"address": "eth:0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"type": "EOA",
"isVerified": true,
"name": "0xFe1e…398B",
"url": "https://etherscan.io/address/0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"displayName": "EOA 108"
"displayName": "EOA 111"
},
{
"address": "eth:0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"type": "EOA",
"isVerified": true,
"name": "0xFE8c…bCEa",
"url": "https://etherscan.io/address/0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"displayName": "EOA 109"
"displayName": "EOA 112"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage minter addresses [via: MasterMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"type": "EOA",
"isVerified": true,
"name": "0x0A06…78F9",
"url": "https://etherscan.io/address/0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * blacklist addresses, freezing any interactions with the USDC token for them ",
"discoveryDrivenData": true
},
{
"id": "EOA-9",
"name": "EOA 9",
"id": "EOA-10",
"name": "EOA 10",
"accounts": [
{
"address": "eth:0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"type": "EOA",
"isVerified": true,
"name": "0x12De…6C1B",
"url": "https://etherscan.io/address/0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"displayName": "EOA 9"
"displayName": "EOA 10"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * allowlist or disallowlist contract signers for Gateway burn intents ",
"discoveryDrivenData": true
},
{
"id": "EOA-17",
"name": "EOA 17",
"id": "EOA-14",
"name": "EOA 14",
"accounts": [
{
"address": "eth:0x162aB6063C172013F03F55D10e8531F3436E31B5",
"type": "EOA",
"isVerified": true,
"name": "0x162a…31B5",
"url": "https://etherscan.io/address/0x162aB6063C172013F03F55D10e8531F3436E31B5",
"displayName": "EOA 14"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * UnverifiedUSDCMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"accounts": [
{
"address": "eth:0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"type": "EOA",
"isVerified": true,
"name": "0x2329…6CD5",
"url": "https://etherscan.io/address/0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"displayName": "EOA 17"
"displayName": "EOA 19"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"accounts": [
{
"address": "eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"type": "EOA",
"isVerified": true,
"name": "0x2A6A…58c5",
"url": "https://etherscan.io/address/0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"displayName": "EOA 19"
"displayName": "EOA 21"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayWallet \n* Can interact with GatewayWallet\n * configure supported tokens, withdrawal delay, burn signers, batch signers, fee recipient, pauser, denylister, contract signer allowlister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-22",
"name": "EOA 22",
"id": "EOA-24",
"name": "EOA 24",
"accounts": [
{
"address": "eth:0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"type": "EOA",
"isVerified": true,
"name": "0x311a…a85d",
"url": "https://etherscan.io/address/0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"displayName": "EOA 22"
"displayName": "EOA 24"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-24",
"name": "EOA 24",
"id": "EOA-26",
"name": "EOA 26",
"accounts": [
{
"address": "eth:0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"type": "EOA",
"isVerified": true,
"name": "0x358a…c252",
"url": "https://etherscan.io/address/0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"displayName": "EOA 24"
"displayName": "EOA 26"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-25",
"name": "EOA 25",
"id": "EOA-27",
"name": "EOA 27",
"accounts": [
{
"address": "eth:0x383048265851aA10035bb32b2055632eC4FBB6eB",
"type": "EOA",
"isVerified": true,
"name": "0x3830…B6eB",
"url": "https://etherscan.io/address/0x383048265851aA10035bb32b2055632eC4FBB6eB",
"displayName": "EOA 25"
"displayName": "EOA 27"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"accounts": [
{
"address": "eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"type": "EOA",
"isVerified": true,
"name": "0x3c54…aAB6",
"url": "https://etherscan.io/address/0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"displayName": "EOA 28"
"displayName": "EOA 30"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayMinter \n* Can interact with GatewayMinter\n * configure supported tokens, mint authorities, attestation signers, pauser, denylister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-34",
"name": "EOA 34",
"id": "EOA-36",
"name": "EOA 36",
"accounts": [
{
"address": "eth:0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"type": "EOA",
"isVerified": true,
"name": "0x4914…8566",
"url": "https://etherscan.io/address/0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"displayName": "EOA 34"
"displayName": "EOA 36"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * pause the USDC token (no transfers, mints, burns) ",
"discoveryDrivenData": true
},
{
"id": "EOA-35",
"name": "EOA 35",
"id": "EOA-37",
"name": "EOA 37",
"accounts": [
{
"address": "eth:0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"type": "EOA",
"isVerified": true,
"name": "0x4aA5…D920",
"url": "https://etherscan.io/address/0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"displayName": "EOA 35"
"displayName": "EOA 37"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-36",
"name": "EOA 36",
"id": "EOA-38",
"name": "EOA 38",
"accounts": [
{
"address": "eth:0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"type": "EOA",
"isVerified": true,
"name": "0x4E89…AC69",
"url": "https://etherscan.io/address/0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"displayName": "EOA 36"
"displayName": "EOA 38"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-37-and-EOA-47",
"name": "EOA 37 and EOA 47",
"id": "EOA-39-and-EOA-49",
"name": "EOA 39 and EOA 49",
"accounts": [
{
"address": "eth:0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"type": "EOA",
"isVerified": true,
"name": "0x52Ed…bCeF",
"url": "https://etherscan.io/address/0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"displayName": "EOA 37"
"displayName": "EOA 39"
},
{
"address": "eth:0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"type": "EOA",
"isVerified": true,
"name": "0x725b…3F96",
"url": "https://etherscan.io/address/0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"displayName": "EOA 47"
"displayName": "EOA 49"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitterV2 → TokenMessengerV2 → TokenMinterV2]",
"discoveryDrivenData": true
},
{
"id": "EOA-38",
"name": "EOA 38",
"id": "EOA-40",
"name": "EOA 40",
"accounts": [
{
"address": "eth:0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"type": "EOA",
"isVerified": true,
"name": "0x53D8…1D84",
"url": "https://etherscan.io/address/0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"displayName": "EOA 38"
"displayName": "EOA 40"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-42",
"name": "EOA 42",
"id": "EOA-44",
"name": "EOA 44",
"accounts": [
{
"address": "eth:0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"type": "EOA",
"isVerified": true,
"name": "0x65cB…021B",
"url": "https://etherscan.io/address/0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"displayName": "EOA 42"
"displayName": "EOA 44"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-43",
"name": "EOA 43",
"id": "EOA-45",
"name": "EOA 45",
"accounts": [
{
"address": "eth:0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"type": "EOA",
"isVerified": true,
"name": "0x6b0b…78C4",
"url": "https://etherscan.io/address/0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"displayName": "EOA 43"
"displayName": "EOA 45"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-45",
"name": "EOA 45",
"id": "EOA-47",
"name": "EOA 47",
"accounts": [
{
"address": "eth:0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"type": "EOA",
"isVerified": true,
"name": "0x6fa3…e6Fb",
"url": "https://etherscan.io/address/0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"displayName": "EOA 45"
"displayName": "EOA 47"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * pause and unpause Gateway minting ",
"discoveryDrivenData": true
},
{
"id": "EOA-46",
"name": "EOA 46",
"id": "EOA-48",
"name": "EOA 48",
"accounts": [
{
"address": "eth:0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"type": "EOA",
"isVerified": true,
"name": "0x6Fa6…42ad",
"url": "https://etherscan.io/address/0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"displayName": "EOA 46"
"displayName": "EOA 48"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-48",
"name": "EOA 48",
"id": "EOA-50",
"name": "EOA 50",
"accounts": [
{
"address": "eth:0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"type": "EOA",
"isVerified": true,
"name": "0x7359…9a94",
"url": "https://etherscan.io/address/0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"displayName": "EOA 48"
"displayName": "EOA 50"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * denylist addresses, preventing them from interacting with the GatewayWallet ",
"discoveryDrivenData": true
},
{
"id": "EOA-49",
"name": "EOA 49",
"id": "EOA-51",
"name": "EOA 51",
"accounts": [
{
"address": "eth:0x740F494cD63f87547FEc1591646720e5cC285846",
"type": "EOA",
"isVerified": true,
"name": "0x740F…5846",
"url": "https://etherscan.io/address/0x740F494cD63f87547FEc1591646720e5cC285846",
"displayName": "EOA 49"
"displayName": "EOA 51"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-56",
"name": "EOA 56",
"id": "EOA-58",
"name": "EOA 58",
"accounts": [
{
"address": "eth:0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"type": "EOA",
"isVerified": true,
"name": "0x7D15…ae0E",
"url": "https://etherscan.io/address/0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"displayName": "EOA 56"
"displayName": "EOA 58"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-57",
"name": "EOA 57",
"id": "EOA-59",
"name": "EOA 59",
"accounts": [
{
"address": "eth:0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"type": "EOA",
"isVerified": true,
"name": "0x7e57…ae1c",
"url": "https://etherscan.io/address/0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"displayName": "EOA 57"
"displayName": "EOA 59"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * denylist addresses, preventing them from interacting with the GatewayMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"accounts": [
{
"address": "eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"type": "EOA",
"isVerified": true,
"name": "0x807a…95d2",
"url": "https://etherscan.io/address/0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"displayName": "EOA 59"
"displayName": "EOA 61"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * USD Coin Token ",
"discoveryDrivenData": true
},
{
"id": "EOA-60",
"name": "EOA 60",
"id": "EOA-62",
"name": "EOA 62",
"accounts": [
{
"address": "eth:0x817ae4109dC0f21E437b94c899962690514Ba09f",
"type": "EOA",
"isVerified": true,
"name": "0x817a…a09f",
"url": "https://etherscan.io/address/0x817ae4109dC0f21E437b94c899962690514Ba09f",
"displayName": "EOA 60"
"displayName": "EOA 62"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-65",
"name": "EOA 65",
"id": "EOA-67",
"name": "EOA 67",
"accounts": [
{
"address": "eth:0x8a9A13A106cB89E15410B2AB4488135155032169",
"type": "EOA",
"isVerified": true,
"name": "0x8a9A…2169",
"url": "https://etherscan.io/address/0x8a9A13A106cB89E15410B2AB4488135155032169",
"displayName": "EOA 65"
"displayName": "EOA 67"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-73",
"name": "EOA 73",
"id": "EOA-75",
"name": "EOA 75",
"accounts": [
{
"address": "eth:0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"type": "EOA",
"isVerified": true,
"name": "0x96D1…EB41",
"url": "https://etherscan.io/address/0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"displayName": "EOA 73"
"displayName": "EOA 75"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-74",
"name": "EOA 74",
"id": "EOA-76",
"name": "EOA 76",
"accounts": [
{
"address": "eth:0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"type": "EOA",
"isVerified": true,
"name": "0x9812…5b19",
"url": "https://etherscan.io/address/0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"displayName": "EOA 74"
"displayName": "EOA 76"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * pause and unpause deposits, burns, and withdrawals ",
"discoveryDrivenData": true
},
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"accounts": [
{
"address": "eth:0xa820A620F638114F3Eb45df87382383322dDBC49",
"type": "EOA",
"isVerified": true,
"name": "0xa820…BC49",
"url": "https://etherscan.io/address/0xa820A620F638114F3Eb45df87382383322dDBC49",
"displayName": "EOA 78"
"displayName": "EOA 80"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * TokenMessengerV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-81-and-EOA-97",
"name": "EOA 81 and EOA 97",
"id": "EOA-83-and-EOA-99",
"name": "EOA 83 and EOA 99",
"accounts": [
{
"address": "eth:0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"type": "EOA",
"isVerified": true,
"name": "0xb0Ea…7361",
"url": "https://etherscan.io/address/0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"displayName": "EOA 81"
"displayName": "EOA 83"
},
{
"address": "eth:0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"type": "EOA",
"isVerified": true,
"name": "0xE2fE…01CA",
"url": "https://etherscan.io/address/0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"displayName": "EOA 97"
"displayName": "EOA 99"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitter → TokenMessenger → TokenMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-82",
"name": "EOA 82",
"id": "EOA-84",
"name": "EOA 84",
"accounts": [
{
"address": "eth:0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"type": "EOA",
"isVerified": true,
"name": "0xB43a…9F65",
"url": "https://etherscan.io/address/0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"displayName": "EOA 82"
"displayName": "EOA 84"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-83",
"name": "EOA 83",
"id": "EOA-85",
"name": "EOA 85",
"accounts": [
{
"address": "eth:0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"type": "EOA",
"isVerified": true,
"name": "0xB72F…7ADe",
"url": "https://etherscan.io/address/0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"displayName": "EOA 83"
"displayName": "EOA 85"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayWallet]",
"discoveryDrivenData": true
},
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"accounts": [
{
"address": "eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"type": "EOA",
"isVerified": true,
"name": "0xB756…2258",
"url": "https://etherscan.io/address/0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"displayName": "EOA 84"
"displayName": "EOA 86"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * MessageTransmitterV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-85",
"name": "EOA 85",
"id": "EOA-87",
"name": "EOA 87",
"accounts": [
{
"address": "eth:0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"type": "EOA",
"isVerified": true,
"name": "0xBED4…fbc9",
"url": "https://etherscan.io/address/0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"displayName": "EOA 85"
"displayName": "EOA 87"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * denylist addresses, preventing them from interacting with this TokenMessenger ",
"discoveryDrivenData": true
},
{
"id": "EOA-86",
"name": "EOA 86",
"id": "EOA-88",
"name": "EOA 88",
"accounts": [
{
"address": "eth:0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"type": "EOA",
"isVerified": true,
"name": "0xc16b…c95a",
"url": "https://etherscan.io/address/0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"displayName": "EOA 86"
"displayName": "EOA 88"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-89",
"name": "EOA 89",
"id": "EOA-91",
"name": "EOA 91",
"accounts": [
{
"address": "eth:0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"type": "EOA",
"isVerified": true,
"name": "0xc809…C4ed",
"url": "https://etherscan.io/address/0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"displayName": "EOA 89"
"displayName": "EOA 91"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-96",
"name": "EOA 96",
"id": "EOA-98",
"name": "EOA 98",
"accounts": [
{
"address": "eth:0xE206be2331d6aAa4495887755BaBE892aecE704A",
"type": "EOA",
"isVerified": true,
"name": "0xE206…704A",
"url": "https://etherscan.io/address/0xE206be2331d6aAa4495887755BaBE892aecE704A",
"displayName": "EOA 96"
"displayName": "EOA 98"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-106",
"name": "EOA 106",
"id": "EOA-109",
"name": "EOA 109",
"accounts": [
{
"address": "eth:0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"type": "EOA",
"isVerified": true,
"name": "0xFcb1…AE3a",
"url": "https://etherscan.io/address/0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"displayName": "EOA 106"
"displayName": "EOA 109"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage all critical roles like pausers, blacklisters, minters, rescuer ",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "cctp-v1",
"bridgeType": "burnAndMint"
}
],
"type": "multichain"
}
+244 -195
+244 -195
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "MessageTransmitter",
"isVerified": true,
"address": "eth:0x0a992d191DEeC32aFe36203Ad87D7d289a738F81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 24\n * **getEnabledAttester**: EOA 81, EOA 97\n * **owner**: EOA 35\n * **pauser**: EOA 89\n * **rescuer**: EOA 46",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 26\n * **getEnabledAttester**: EOA 83, EOA 99\n * **owner**: EOA 37\n * **pauser**: EOA 91\n * **rescuer**: EOA 48",
"discoveryDrivenData": true
},
{
"name": "GatewayMinter",
"isVerified": true,
"address": "eth:0x2222222d7164433c4C09B0b0D809a9b52C04C205",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6"
],
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0x868dA8E567a2C6D668f1bBFbC9B11d0567fc8C0C"
]
},
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
}
],
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 28\n * **attestationSigners**: EOA 22\n * **denylister**: EOA 57\n * **owner**: EOA 28\n * **pauser**: EOA 45",
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 30\n * **attestationSigners**: EOA 24\n * **denylister**: EOA 59\n * **owner**: EOA 30\n * **pauser**: EOA 47",
"upgradableBy": [
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessengerV2",
"isVerified": true,
"address": "eth:0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xa820A620F638114F3Eb45df87382383322dDBC49"
],
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234111,
"transactionHash": "0x790ed794d50247273bdc386279972cb8bd05fb0d92eda2ddf496e9d20681a6f5",
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 78\n * **denylister**: EOA 85\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 17\n * **rescuer**: EOA 3",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 80\n * **denylister**: EOA 87\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 19\n * **rescuer**: EOA 3",
"upgradableBy": [
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "GatewayWallet",
"isVerified": true,
"address": "eth:0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5"
],
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0xdc92756F7Bbbd934345B6c14b7FcdC42E7FBA19F"
]
},
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0x899a4f5f5422cC5E8183280182e7096Fb923C762"
]
},
{
"timestamp": 1760730395,
"transactionHash": "0xdc67731c86a1e54bc1ed01654a64dc1518211aa20df0733ed96d6fa0f6e63cc0",
"implementations": [
"eth:0xdE4d0329Db2c046b8bA35180822aEECCf63D3294"
]
},
{
"timestamp": 1776720695,
"transactionHash": "0x1f5e227f100df6b0932df083c80a695d00a9d994963558dad8bdc30cacad6ffb",
"implementations": [
"eth:0x09E3740c97C7413693B7e07C32D42C53CD050d27"
]
},
{
"timestamp": 1784835131,
"transactionHash": "0x9032a846cd5f1fe703f17ab9b6015966a4f953412483a90d822992eeec99699d",
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
}
],
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 19\n * **attestationSigners**: EOA 83\n * **contractSignersAllowlister**: EOA 9\n * **denylister**: EOA 48\n * **owner**: EOA 19\n * **pauser**: EOA 74",
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 21\n * **attestationSigners**: EOA 85\n * **contractSignersAllowlister**: EOA 10\n * **denylister**: EOA 50\n * **owner**: EOA 21\n * **pauser**: EOA 76",
"upgradableBy": [
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "MessageTransmitterV2",
"isVerified": true,
"address": "eth:0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258"
],
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234063,
"transactionHash": "0x5ffaa1582fac9975d8fb0aee75cc0d5bb67c3c2878c33321b84136eda12db0a1",
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 84\n * **attesterManager**: EOA 86\n * **getEnabledAttester**: EOA 37, EOA 47\n * **owner**: EOA 82\n * **pauser**: EOA 25\n * **rescuer**: EOA 38",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 86\n * **attesterManager**: EOA 88\n * **getEnabledAttester**: EOA 39, EOA 49\n * **owner**: EOA 84\n * **pauser**: EOA 27\n * **rescuer**: EOA 40",
"upgradableBy": [
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "USD Coin Token",
"isVerified": true,
"address": "eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2"
],
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598542374,
"transactionHash": "0xe6f0f754398d89583da8e4229c5d7aaa00739a3ae334ecfc2839ac396b4836e3",
"implementations": [
"eth:0xB7277a6e95992041568D9391D09d0122023778A2"
]
},
{
"timestamp": 1619464491,
"transactionHash": "0xe2e40640ffd5f76538cd23660cf56f00bfebd5fe925ebad6b8067c4cee18a2c3",
"implementations": [
"eth:0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF"
]
},
{
"timestamp": 1704734195,
"transactionHash": "0xae3ad89e569f27d47a8a02999a6d937c12aaa6bc50e66650e7cbd3244bde9951",
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
]
}
],
"description": "* Roles:\n * **admin**: EOA 59\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **minters**: EOA 1, EOA 100, EOA 103, EOA 105, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 4, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 8, EOA 99, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2; ultimately EOA 22, EOA 37, EOA 47, EOA 81, EOA 83, EOA 97\n * **owner**: EOA 106\n * **pauser**: EOA 34",
"description": "* Roles:\n * **admin**: EOA 61\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **minters**: EOA 1, EOA 101, EOA 102, EOA 105, EOA 107, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 4, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 8, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2, UnverifiedUSDCMinter; ultimately EOA 24, EOA 39, EOA 49, EOA 83, EOA 85, EOA 99\n * **owner**: EOA 109\n * **pauser**: EOA 36",
"upgradableBy": [
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessenger",
"isVerified": true,
"address": "eth:0xBd3fa81B58Ba92a82136038B25aDec7066af3155",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 43\n * **rescuer**: EOA 42",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 45\n * **rescuer**: EOA 44",
"discoveryDrivenData": true
},
{
"name": "TokenMinter",
"isVerified": true,
"address": "eth:0xc4922d64a24675E16e1586e3e3Aa56C06fABe907",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 60\n * **rescuer**: EOA 73\n * **tokenController**: EOA 65",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 62\n * **rescuer**: EOA 75\n * **tokenController**: EOA 67",
"discoveryDrivenData": true
},
{
"name": "MasterMinter",
"isVerified": true,
"address": "eth:0xE982615d461DD5cD06575BbeA87624fda4e3de17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **controllers**: EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **owner**: EOA 87",
"description": "* Roles:\n * **controllers**: EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **owner**: EOA 89",
"discoveryDrivenData": true
},
{
"name": "TokenMinterV2",
"isVerified": true,
"address": "eth:0xfd78EE919681417d192449715b2594ab58f5D002",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 56\n * **pauser**: EOA 36\n * **rescuer**: EOA 96\n * **tokenController**: EOA 49",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 58\n * **pauser**: EOA 38\n * **rescuer**: EOA 98\n * **tokenController**: EOA 51",
"discoveryDrivenData": true
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
},
"description": "CCTP v2 is the second version of the Cross-Chain Transfer Protocol by Circle. Mainly used for USDC burn-mint transfers, it coexists with the v1 protocol but improves on its transfer speed.",
"detailedDescription": "# Architecture\nCircle's Cross-Chain Transfer Protocol (CCTP) is a centralized burn-and-mint bridge for USDC and, underneath it, a generalized message-passing protocol. A source-chain `TokenMessenger` burns USDC through the local `TokenMinter` and asks the `MessageTransmitter` to emit a message for the destination domain. Circle's offchain Iris attestation service observes the source transaction and acts as the oracle / attester at the destination. Anyone with the message and attestation can call `receiveMessage` on the destination `MessageTransmitter`; the contract verifies the attester signatures, prevents nonce replay, dispatches the message to the destination `TokenMessenger`, and mints the same amount of native USDC to the requested recipient.\n\n# CCTP v1 and v2\nCCTP v1 and v2 use the same high-level flow and both can carry arbitrary message bodies. In the Ethereum discovery, v1's `MessageTransmitter` and `TokenMessenger` are immutable contracts. [CCTP v1](https://developers.circle.com/cctp/v1) only supports 'Standard Transfer': Circle waits for a certain amount of block confirmations on the source chain before attesting.\n\nCCTP v2 uses `MessageTransmitterV2` and `TokenMessengerV2`, adds finality thresholds, destination mint fees, and optional hook data. The new 'Fast Transfer' feature lets Iris attest much faster as long as Circle's global 'Fast Transfer' allowance is available. Hooks are metadata passed with the burn message and are interpreted by app-level integrators rather than executed by CCTP core.\n\n# Crosschain oracle and validation\nCCTP does not validate source-chain state on the destination chain. The destination `MessageTransmitter` verifies signatures from Circle-controlled attesters, so security depends on Circle's offchain attestation service signing only valid source messages and protecting its signing keys. CCTP v1 is configured with a 2/2 attester threshold, while v2 is configured with a 2/2 threshold. The attester manager can change enabled attesters and thresholds, and the owner can change the attester manager.\n\n# Upgradeability\nThe v1 Ethereum contracts in discovery are immutable, but critical permissions like ownership, minters, pausing, rescuer, token-controller, and attester-manager roles govern protocol operation. V2 introduces proxied contracts; their proxy admins can replace implementations with no onchain delay. CCTP is deployed per Circle domain, so a complete risk assessment must include the corresponding contracts, signer configuration, and permissions on every supported source and destination chain.",
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-11,-EOA-14,-EOA-15,-EOA-16,-EOA-18,-EOA-20,-EOA-21,-EOA-31,-EOA-33,-EOA-39,-EOA-40,-EOA-52,-EOA-55,-EOA-62,-EOA-63,-EOA-64,-EOA-67,-EOA-72,-EOA-76,-EOA-77,-EOA-99,-EOA-100,-EOA-103-and-EOA-105",
"name": "EOA 1, EOA 4, EOA 8, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 99, EOA 100, EOA 103 and EOA 105",
"id": "UnverifiedUSDCMinter",
"name": "UnverifiedUSDCMinter",
"accounts": [
{
"address": "eth:0xA669f564133A1612dbd6f5E579863aA0a34448Bd",
"type": "Contract",
"isVerified": false,
"name": "0xA669…48Bd",
"url": "https://etherscan.io/address/0xA669f564133A1612dbd6f5E579863aA0a34448Bd"
}
],
"chain": "ethereum",
"description": "Upgradeable contract with an unverified implementation that is registered as a USDC minter in the USDC token contract. Its minting allowance is set by its MasterMinter controllers.\n* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-12,-EOA-16,-EOA-17,-EOA-18,-EOA-20,-EOA-22,-EOA-23,-EOA-33,-EOA-35,-EOA-41,-EOA-42,-EOA-54,-EOA-57,-EOA-64,-EOA-65,-EOA-66,-EOA-69,-EOA-74,-EOA-78,-EOA-79,-EOA-101,-EOA-102,-EOA-105-and-EOA-107",
"name": "EOA 1, EOA 4, EOA 8, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 101, EOA 102, EOA 105 and EOA 107",
"accounts": [
{
"address": "eth:0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"type": "EOA",
"isVerified": true,
"name": "0x0057…6Ba5",
"url": "https://etherscan.io/address/0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"displayName": "EOA 1"
},
{
"address": "eth:0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"type": "EOA",
"isVerified": true,
"name": "0x0896…869a",
"url": "https://etherscan.io/address/0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"displayName": "EOA 4"
},
{
"address": "eth:0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"type": "EOA",
"isVerified": true,
"name": "0x119c…3E90",
"url": "https://etherscan.io/address/0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"displayName": "EOA 8"
},
{
"address": "eth:0x1375c5FF3785850314f5A612A7837CC295075eF1",
"type": "EOA",
"isVerified": true,
"name": "0x1375…5eF1",
"url": "https://etherscan.io/address/0x1375c5FF3785850314f5A612A7837CC295075eF1",
"displayName": "EOA 11"
"displayName": "EOA 12"
},
{
"address": "eth:0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"type": "EOA",
"isVerified": true,
"name": "0x1971…2186",
"url": "https://etherscan.io/address/0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"displayName": "EOA 14"
"displayName": "EOA 16"
},
{
"address": "eth:0x19a932fC5A8320939c3575302a8705147a7f27D8",
"type": "EOA",
"isVerified": true,
"name": "0x19a9…27D8",
"url": "https://etherscan.io/address/0x19a932fC5A8320939c3575302a8705147a7f27D8",
"displayName": "EOA 15"
"displayName": "EOA 17"
},
{
"address": "eth:0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"type": "EOA",
"isVerified": true,
"name": "0x2322…1946",
"url": "https://etherscan.io/address/0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"displayName": "EOA 16"
"displayName": "EOA 18"
},
{
"address": "eth:0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"type": "EOA",
"isVerified": true,
"name": "0x24BD…1BE3",
"url": "https://etherscan.io/address/0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"displayName": "EOA 18"
"displayName": "EOA 20"
},
{
"address": "eth:0x2b52e60C844d7946b6d910D3296940dC889CC785",
"type": "EOA",
"isVerified": true,
"name": "0x2b52…C785",
"url": "https://etherscan.io/address/0x2b52e60C844d7946b6d910D3296940dC889CC785",
"displayName": "EOA 20"
"displayName": "EOA 22"
},
{
"address": "eth:0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"type": "EOA",
"isVerified": true,
"name": "0x3005…ca61",
"url": "https://etherscan.io/address/0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"displayName": "EOA 21"
"displayName": "EOA 23"
},
{
"address": "eth:0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"type": "EOA",
"isVerified": true,
"name": "0x425a…26c5",
"url": "https://etherscan.io/address/0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"displayName": "EOA 31"
"displayName": "EOA 33"
},
{
"address": "eth:0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"type": "EOA",
"isVerified": true,
"name": "0x4654…C202",
"url": "https://etherscan.io/address/0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"displayName": "EOA 33"
"displayName": "EOA 35"
},
{
"address": "eth:0x55FE002aefF02F77364de339a1292923A15844B8",
"type": "EOA",
"isVerified": true,
"name": "0x55FE…44B8",
"url": "https://etherscan.io/address/0x55FE002aefF02F77364de339a1292923A15844B8",
"displayName": "EOA 39"
"displayName": "EOA 41"
},
{
"address": "eth:0x5B6122C109B78C6755486966148C1D70a50A47D7",
"type": "EOA",
"isVerified": true,
"name": "0x5B61…47D7",
"url": "https://etherscan.io/address/0x5B6122C109B78C6755486966148C1D70a50A47D7",
"displayName": "EOA 40"
"displayName": "EOA 42"
},
{
"address": "eth:0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"type": "EOA",
"isVerified": true,
"name": "0x77C9…377E",
"url": "https://etherscan.io/address/0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"displayName": "EOA 52"
"displayName": "EOA 54"
},
{
"address": "eth:0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"type": "EOA",
"isVerified": true,
"name": "0x7BdD…9A2D",
"url": "https://etherscan.io/address/0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"displayName": "EOA 55"
"displayName": "EOA 57"
},
{
"address": "eth:0x895F07957B863f4AB6086035a6990d8366Bc3266",
"type": "EOA",
"isVerified": true,
"name": "0x895F…3266",
"url": "https://etherscan.io/address/0x895F07957B863f4AB6086035a6990d8366Bc3266",
"displayName": "EOA 62"
"displayName": "EOA 64"
},
{
"address": "eth:0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"type": "EOA",
"isVerified": true,
"name": "0x8966…EEA7",
"url": "https://etherscan.io/address/0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"displayName": "EOA 63"
"displayName": "EOA 65"
},
{
"address": "eth:0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"type": "EOA",
"isVerified": true,
"name": "0x8967…0ca7",
"url": "https://etherscan.io/address/0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"displayName": "EOA 64"
"displayName": "EOA 66"
},
{
"address": "eth:0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"type": "EOA",
"isVerified": true,
"name": "0x911c…40Cd",
"url": "https://etherscan.io/address/0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"displayName": "EOA 67"
"displayName": "EOA 69"
},
{
"address": "eth:0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"type": "EOA",
"isVerified": true,
"name": "0x93Cb…Bf7E",
"url": "https://etherscan.io/address/0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"displayName": "EOA 72"
"displayName": "EOA 74"
},
{
"address": "eth:0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"type": "EOA",
"isVerified": true,
"name": "0xa1EF…3609",
"url": "https://etherscan.io/address/0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"displayName": "EOA 76"
"displayName": "EOA 78"
},
{
"address": "eth:0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"type": "EOA",
"isVerified": true,
"name": "0xA582…d5c7",
"url": "https://etherscan.io/address/0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"displayName": "EOA 77"
"displayName": "EOA 79"
},
{
"address": "eth:0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"type": "EOA",
"isVerified": true,
"name": "0xE400…646F",
"url": "https://etherscan.io/address/0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"displayName": "EOA 99"
"displayName": "EOA 101"
},
{
"address": "eth:0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"type": "EOA",
"isVerified": true,
"name": "0xe898…7096",
"url": "https://etherscan.io/address/0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"displayName": "EOA 100"
"displayName": "EOA 102"
},
{
"address": "eth:0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"type": "EOA",
"isVerified": true,
"name": "0xEc72…b70b",
"url": "https://etherscan.io/address/0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"displayName": "EOA 103"
"displayName": "EOA 105"
},
{
"address": "eth:0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"type": "EOA",
"isVerified": true,
"name": "0xF0f3…A74F",
"url": "https://etherscan.io/address/0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"displayName": "EOA 105"
"displayName": "EOA 107"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"type": "EOA",
"isVerified": true,
"name": "0x0143…8dC8",
"url": "https://etherscan.io/address/0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"type": "EOA",
"isVerified": true,
"name": "0x070B…6f2A",
"url": "https://etherscan.io/address/0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-5,-EOA-7,-EOA-10,-EOA-12,-EOA-13,-EOA-23,-EOA-26,-EOA-27,-EOA-29,-EOA-30,-EOA-32,-EOA-41,-EOA-44,-EOA-50,-EOA-51,-EOA-53,-EOA-54,-EOA-58,-EOA-61,-EOA-66,-EOA-68,-EOA-69,-EOA-70,-EOA-71,-EOA-75,-EOA-79,-EOA-80,-EOA-87,-EOA-88,-EOA-90,-EOA-91,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-98,-EOA-101,-EOA-102,-EOA-104,-EOA-107,-EOA-108-and-EOA-109",
"name": "EOA 5, EOA 7, EOA 10, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108 and EOA 109",
"id": "EOA-5,-EOA-7,-EOA-9,-EOA-11,-EOA-13,-EOA-15,-EOA-25,-EOA-28,-EOA-29,-EOA-31,-EOA-32,-EOA-34,-EOA-43,-EOA-46,-EOA-52,-EOA-53,-EOA-55,-EOA-56,-EOA-60,-EOA-63,-EOA-68,-EOA-70,-EOA-71,-EOA-72,-EOA-73,-EOA-77,-EOA-81,-EOA-82,-EOA-89,-EOA-90,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-96,-EOA-97,-EOA-100,-EOA-103,-EOA-104,-EOA-106,-EOA-108,-EOA-110,-EOA-111-and-EOA-112",
"name": "EOA 5, EOA 7, EOA 9, EOA 11, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97, EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 110, EOA 111 and EOA 112",
"accounts": [
{
"address": "eth:0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"type": "EOA",
"isVerified": true,
"name": "0x08c7…2Ec3",
"url": "https://etherscan.io/address/0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"displayName": "EOA 5"
},
{
"address": "eth:0x0F493479be830657ACa110199A70E826506A54d3",
"type": "EOA",
"isVerified": true,
"name": "0x0F49…54d3",
"url": "https://etherscan.io/address/0x0F493479be830657ACa110199A70E826506A54d3",
"displayName": "EOA 7"
},
{
"address": "eth:0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"type": "EOA",
"isVerified": true,
"name": "0x1238…27f3",
"url": "https://etherscan.io/address/0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"displayName": "EOA 9"
},
{
"address": "eth:0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"type": "EOA",
"isVerified": true,
"name": "0x130A…246c",
"url": "https://etherscan.io/address/0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"displayName": "EOA 10"
"displayName": "EOA 11"
},
{
"address": "eth:0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"type": "EOA",
"isVerified": true,
"name": "0x14b1…5a3e",
"url": "https://etherscan.io/address/0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"displayName": "EOA 12"
"displayName": "EOA 13"
},
{
"address": "eth:0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"type": "EOA",
"isVerified": true,
"name": "0x162B…682E",
"url": "https://etherscan.io/address/0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"displayName": "EOA 13"
"displayName": "EOA 15"
},
{
"address": "eth:0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"type": "EOA",
"isVerified": true,
"name": "0x355f…bcad",
"url": "https://etherscan.io/address/0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"displayName": "EOA 23"
"displayName": "EOA 25"
},
{
"address": "eth:0x38d51f44B586b154159932F3681a30c54A6d25a9",
"type": "EOA",
"isVerified": true,
"name": "0x38d5…25a9",
"url": "https://etherscan.io/address/0x38d51f44B586b154159932F3681a30c54A6d25a9",
"displayName": "EOA 26"
"displayName": "EOA 28"
},
{
"address": "eth:0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"type": "EOA",
"isVerified": true,
"name": "0x39A3…7fB5",
"url": "https://etherscan.io/address/0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"displayName": "EOA 27"
"displayName": "EOA 29"
},
{
"address": "eth:0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"type": "EOA",
"isVerified": true,
"name": "0x3F1d…9d2f",
"url": "https://etherscan.io/address/0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"displayName": "EOA 29"
"displayName": "EOA 31"
},
{
"address": "eth:0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"type": "EOA",
"isVerified": true,
"name": "0x4024…F82C",
"url": "https://etherscan.io/address/0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"displayName": "EOA 30"
"displayName": "EOA 32"
},
{
"address": "eth:0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"type": "EOA",
"isVerified": true,
"name": "0x4403…b806",
"url": "https://etherscan.io/address/0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"displayName": "EOA 32"
"displayName": "EOA 34"
},
{
"address": "eth:0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"type": "EOA",
"isVerified": true,
"name": "0x6301…cEb7",
"url": "https://etherscan.io/address/0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"displayName": "EOA 41"
"displayName": "EOA 43"
},
{
"address": "eth:0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"type": "EOA",
"isVerified": true,
"name": "0x6e19…3F2D",
"url": "https://etherscan.io/address/0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"displayName": "EOA 44"
"displayName": "EOA 46"
},
{
"address": "eth:0x74F471Af556aBff915804C0f19D642497aFa13B5",
"type": "EOA",
"isVerified": true,
"name": "0x74F4…13B5",
"url": "https://etherscan.io/address/0x74F471Af556aBff915804C0f19D642497aFa13B5",
"displayName": "EOA 50"
"displayName": "EOA 52"
},
{
"address": "eth:0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"type": "EOA",
"isVerified": true,
"name": "0x768d…7d65",
"url": "https://etherscan.io/address/0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"displayName": "EOA 51"
"displayName": "EOA 53"
},
{
"address": "eth:0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"type": "EOA",
"isVerified": true,
"name": "0x79E0…9F71",
"url": "https://etherscan.io/address/0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"displayName": "EOA 53"
"displayName": "EOA 55"
},
{
"address": "eth:0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"type": "EOA",
"isVerified": true,
"name": "0x7B3d…c6AB",
"url": "https://etherscan.io/address/0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"displayName": "EOA 54"
"displayName": "EOA 56"
},
{
"address": "eth:0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"type": "EOA",
"isVerified": true,
"name": "0x7Ee7…c5B2",
"url": "https://etherscan.io/address/0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"displayName": "EOA 58"
"displayName": "EOA 60"
},
{
"address": "eth:0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"type": "EOA",
"isVerified": true,
"name": "0x8627…e049",
"url": "https://etherscan.io/address/0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"displayName": "EOA 61"
"displayName": "EOA 63"
},
{
"address": "eth:0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"type": "EOA",
"isVerified": true,
"name": "0x8E07…e40d",
"url": "https://etherscan.io/address/0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"displayName": "EOA 66"
"displayName": "EOA 68"
},
{
"address": "eth:0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"type": "EOA",
"isVerified": true,
"name": "0x9138…dB6d",
"url": "https://etherscan.io/address/0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"displayName": "EOA 68"
"displayName": "EOA 70"
},
{
"address": "eth:0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"type": "EOA",
"isVerified": true,
"name": "0x919f…04b3",
"url": "https://etherscan.io/address/0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"displayName": "EOA 69"
"displayName": "EOA 71"
},
{
"address": "eth:0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"type": "EOA",
"isVerified": true,
"name": "0x92c3…0684",
"url": "https://etherscan.io/address/0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"displayName": "EOA 70"
"displayName": "EOA 72"
},
{
"address": "eth:0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"type": "EOA",
"isVerified": true,
"name": "0x936F…bBfD",
"url": "https://etherscan.io/address/0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"displayName": "EOA 71"
"displayName": "EOA 73"
},
{
"address": "eth:0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"type": "EOA",
"isVerified": true,
"name": "0x9d5C…c5E4",
"url": "https://etherscan.io/address/0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"displayName": "EOA 75"
"displayName": "EOA 77"
},
{
"address": "eth:0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"type": "EOA",
"isVerified": true,
"name": "0xAF60…24dF",
"url": "https://etherscan.io/address/0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"displayName": "EOA 79"
"displayName": "EOA 81"
},
{
"address": "eth:0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"type": "EOA",
"isVerified": true,
"name": "0xB0C9…9017",
"url": "https://etherscan.io/address/0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"displayName": "EOA 80"
"displayName": "EOA 82"
},
{
"address": "eth:0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"type": "EOA",
"isVerified": true,
"name": "0xC1d9…c704",
"url": "https://etherscan.io/address/0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"displayName": "EOA 87"
"displayName": "EOA 89"
},
{
"address": "eth:0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"type": "EOA",
"isVerified": true,
"name": "0xC2Bb…0a06",
"url": "https://etherscan.io/address/0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"displayName": "EOA 88"
"displayName": "EOA 90"
},
{
"address": "eth:0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"type": "EOA",
"isVerified": true,
"name": "0xCE4D…43Bd",
"url": "https://etherscan.io/address/0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"displayName": "EOA 90"
"displayName": "EOA 92"
},
{
"address": "eth:0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"type": "EOA",
"isVerified": true,
"name": "0xD058…8275",
"url": "https://etherscan.io/address/0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"displayName": "EOA 91"
"displayName": "EOA 93"
},
{
"address": "eth:0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"type": "EOA",
"isVerified": true,
"name": "0xd285…67a3",
"url": "https://etherscan.io/address/0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"displayName": "EOA 92"
"displayName": "EOA 94"
},
{
"address": "eth:0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"type": "EOA",
"isVerified": true,
"name": "0xD3eF…0623",
"url": "https://etherscan.io/address/0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"displayName": "EOA 93"
"displayName": "EOA 95"
},
{
"address": "eth:0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"type": "EOA",
"isVerified": true,
"name": "0xdBEb…8B85",
"url": "https://etherscan.io/address/0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"displayName": "EOA 94"
"displayName": "EOA 96"
},
{
"address": "eth:0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"type": "EOA",
"isVerified": true,
"name": "0xDe59…2444",
"url": "https://etherscan.io/address/0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"displayName": "EOA 95"
"displayName": "EOA 97"
},
{
"address": "eth:0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"type": "EOA",
"isVerified": true,
"name": "0xe37e…4378",
"url": "https://etherscan.io/address/0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"displayName": "EOA 98"
"displayName": "EOA 100"
},
{
"address": "eth:0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"type": "EOA",
"isVerified": true,
"name": "0xe969…c19d",
"url": "https://etherscan.io/address/0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"displayName": "EOA 101"
"displayName": "EOA 103"
},
{
"address": "eth:0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"type": "EOA",
"isVerified": true,
"name": "0xeb10…8314",
"url": "https://etherscan.io/address/0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"displayName": "EOA 102"
"displayName": "EOA 104"
},
{
"address": "eth:0xEff933714A1B1F8600873BB61dc8F522F6438971",
"type": "EOA",
"isVerified": true,
"name": "0xEff9…8971",
"url": "https://etherscan.io/address/0xEff933714A1B1F8600873BB61dc8F522F6438971",
"displayName": "EOA 104"
"displayName": "EOA 106"
},
{
"address": "eth:0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"type": "EOA",
"isVerified": true,
"name": "0xfB9a…C42c",
"url": "https://etherscan.io/address/0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"displayName": "EOA 108"
},
{
"address": "eth:0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"type": "EOA",
"isVerified": true,
"name": "0xfe0F…916E",
"url": "https://etherscan.io/address/0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"displayName": "EOA 107"
"displayName": "EOA 110"
},
{
"address": "eth:0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"type": "EOA",
"isVerified": true,
"name": "0xFe1e…398B",
"url": "https://etherscan.io/address/0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"displayName": "EOA 108"
"displayName": "EOA 111"
},
{
"address": "eth:0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"type": "EOA",
"isVerified": true,
"name": "0xFE8c…bCEa",
"url": "https://etherscan.io/address/0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"displayName": "EOA 109"
"displayName": "EOA 112"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage minter addresses [via: MasterMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"type": "EOA",
"isVerified": true,
"name": "0x0A06…78F9",
"url": "https://etherscan.io/address/0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * blacklist addresses, freezing any interactions with the USDC token for them ",
"discoveryDrivenData": true
},
{
"id": "EOA-9",
"name": "EOA 9",
"id": "EOA-10",
"name": "EOA 10",
"accounts": [
{
"address": "eth:0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"type": "EOA",
"isVerified": true,
"name": "0x12De…6C1B",
"url": "https://etherscan.io/address/0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"displayName": "EOA 9"
"displayName": "EOA 10"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * allowlist or disallowlist contract signers for Gateway burn intents ",
"discoveryDrivenData": true
},
{
"id": "EOA-17",
"name": "EOA 17",
"id": "EOA-14",
"name": "EOA 14",
"accounts": [
{
"address": "eth:0x162aB6063C172013F03F55D10e8531F3436E31B5",
"type": "EOA",
"isVerified": true,
"name": "0x162a…31B5",
"url": "https://etherscan.io/address/0x162aB6063C172013F03F55D10e8531F3436E31B5",
"displayName": "EOA 14"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * UnverifiedUSDCMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"accounts": [
{
"address": "eth:0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"type": "EOA",
"isVerified": true,
"name": "0x2329…6CD5",
"url": "https://etherscan.io/address/0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"displayName": "EOA 17"
"displayName": "EOA 19"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"accounts": [
{
"address": "eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"type": "EOA",
"isVerified": true,
"name": "0x2A6A…58c5",
"url": "https://etherscan.io/address/0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"displayName": "EOA 19"
"displayName": "EOA 21"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayWallet \n* Can interact with GatewayWallet\n * configure supported tokens, withdrawal delay, burn signers, batch signers, fee recipient, pauser, denylister, contract signer allowlister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-22",
"name": "EOA 22",
"id": "EOA-24",
"name": "EOA 24",
"accounts": [
{
"address": "eth:0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"type": "EOA",
"isVerified": true,
"name": "0x311a…a85d",
"url": "https://etherscan.io/address/0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"displayName": "EOA 22"
"displayName": "EOA 24"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-24",
"name": "EOA 24",
"id": "EOA-26",
"name": "EOA 26",
"accounts": [
{
"address": "eth:0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"type": "EOA",
"isVerified": true,
"name": "0x358a…c252",
"url": "https://etherscan.io/address/0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"displayName": "EOA 24"
"displayName": "EOA 26"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-25",
"name": "EOA 25",
"id": "EOA-27",
"name": "EOA 27",
"accounts": [
{
"address": "eth:0x383048265851aA10035bb32b2055632eC4FBB6eB",
"type": "EOA",
"isVerified": true,
"name": "0x3830…B6eB",
"url": "https://etherscan.io/address/0x383048265851aA10035bb32b2055632eC4FBB6eB",
"displayName": "EOA 25"
"displayName": "EOA 27"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"accounts": [
{
"address": "eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"type": "EOA",
"isVerified": true,
"name": "0x3c54…aAB6",
"url": "https://etherscan.io/address/0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"displayName": "EOA 28"
"displayName": "EOA 30"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayMinter \n* Can interact with GatewayMinter\n * configure supported tokens, mint authorities, attestation signers, pauser, denylister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-34",
"name": "EOA 34",
"id": "EOA-36",
"name": "EOA 36",
"accounts": [
{
"address": "eth:0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"type": "EOA",
"isVerified": true,
"name": "0x4914…8566",
"url": "https://etherscan.io/address/0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"displayName": "EOA 34"
"displayName": "EOA 36"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * pause the USDC token (no transfers, mints, burns) ",
"discoveryDrivenData": true
},
{
"id": "EOA-35",
"name": "EOA 35",
"id": "EOA-37",
"name": "EOA 37",
"accounts": [
{
"address": "eth:0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"type": "EOA",
"isVerified": true,
"name": "0x4aA5…D920",
"url": "https://etherscan.io/address/0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"displayName": "EOA 35"
"displayName": "EOA 37"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-36",
"name": "EOA 36",
"id": "EOA-38",
"name": "EOA 38",
"accounts": [
{
"address": "eth:0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"type": "EOA",
"isVerified": true,
"name": "0x4E89…AC69",
"url": "https://etherscan.io/address/0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"displayName": "EOA 36"
"displayName": "EOA 38"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-37-and-EOA-47",
"name": "EOA 37 and EOA 47",
"id": "EOA-39-and-EOA-49",
"name": "EOA 39 and EOA 49",
"accounts": [
{
"address": "eth:0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"type": "EOA",
"isVerified": true,
"name": "0x52Ed…bCeF",
"url": "https://etherscan.io/address/0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"displayName": "EOA 37"
"displayName": "EOA 39"
},
{
"address": "eth:0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"type": "EOA",
"isVerified": true,
"name": "0x725b…3F96",
"url": "https://etherscan.io/address/0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"displayName": "EOA 47"
"displayName": "EOA 49"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitterV2 → TokenMessengerV2 → TokenMinterV2]",
"discoveryDrivenData": true
},
{
"id": "EOA-38",
"name": "EOA 38",
"id": "EOA-40",
"name": "EOA 40",
"accounts": [
{
"address": "eth:0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"type": "EOA",
"isVerified": true,
"name": "0x53D8…1D84",
"url": "https://etherscan.io/address/0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"displayName": "EOA 38"
"displayName": "EOA 40"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-42",
"name": "EOA 42",
"id": "EOA-44",
"name": "EOA 44",
"accounts": [
{
"address": "eth:0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"type": "EOA",
"isVerified": true,
"name": "0x65cB…021B",
"url": "https://etherscan.io/address/0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"displayName": "EOA 42"
"displayName": "EOA 44"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-43",
"name": "EOA 43",
"id": "EOA-45",
"name": "EOA 45",
"accounts": [
{
"address": "eth:0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"type": "EOA",
"isVerified": true,
"name": "0x6b0b…78C4",
"url": "https://etherscan.io/address/0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"displayName": "EOA 43"
"displayName": "EOA 45"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-45",
"name": "EOA 45",
"id": "EOA-47",
"name": "EOA 47",
"accounts": [
{
"address": "eth:0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"type": "EOA",
"isVerified": true,
"name": "0x6fa3…e6Fb",
"url": "https://etherscan.io/address/0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"displayName": "EOA 45"
"displayName": "EOA 47"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * pause and unpause Gateway minting ",
"discoveryDrivenData": true
},
{
"id": "EOA-46",
"name": "EOA 46",
"id": "EOA-48",
"name": "EOA 48",
"accounts": [
{
"address": "eth:0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"type": "EOA",
"isVerified": true,
"name": "0x6Fa6…42ad",
"url": "https://etherscan.io/address/0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"displayName": "EOA 46"
"displayName": "EOA 48"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-48",
"name": "EOA 48",
"id": "EOA-50",
"name": "EOA 50",
"accounts": [
{
"address": "eth:0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"type": "EOA",
"isVerified": true,
"name": "0x7359…9a94",
"url": "https://etherscan.io/address/0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"displayName": "EOA 48"
"displayName": "EOA 50"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * denylist addresses, preventing them from interacting with the GatewayWallet ",
"discoveryDrivenData": true
},
{
"id": "EOA-49",
"name": "EOA 49",
"id": "EOA-51",
"name": "EOA 51",
"accounts": [
{
"address": "eth:0x740F494cD63f87547FEc1591646720e5cC285846",
"type": "EOA",
"isVerified": true,
"name": "0x740F…5846",
"url": "https://etherscan.io/address/0x740F494cD63f87547FEc1591646720e5cC285846",
"displayName": "EOA 49"
"displayName": "EOA 51"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-56",
"name": "EOA 56",
"id": "EOA-58",
"name": "EOA 58",
"accounts": [
{
"address": "eth:0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"type": "EOA",
"isVerified": true,
"name": "0x7D15…ae0E",
"url": "https://etherscan.io/address/0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"displayName": "EOA 56"
"displayName": "EOA 58"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-57",
"name": "EOA 57",
"id": "EOA-59",
"name": "EOA 59",
"accounts": [
{
"address": "eth:0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"type": "EOA",
"isVerified": true,
"name": "0x7e57…ae1c",
"url": "https://etherscan.io/address/0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"displayName": "EOA 57"
"displayName": "EOA 59"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * denylist addresses, preventing them from interacting with the GatewayMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"accounts": [
{
"address": "eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"type": "EOA",
"isVerified": true,
"name": "0x807a…95d2",
"url": "https://etherscan.io/address/0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"displayName": "EOA 59"
"displayName": "EOA 61"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * USD Coin Token ",
"discoveryDrivenData": true
},
{
"id": "EOA-60",
"name": "EOA 60",
"id": "EOA-62",
"name": "EOA 62",
"accounts": [
{
"address": "eth:0x817ae4109dC0f21E437b94c899962690514Ba09f",
"type": "EOA",
"isVerified": true,
"name": "0x817a…a09f",
"url": "https://etherscan.io/address/0x817ae4109dC0f21E437b94c899962690514Ba09f",
"displayName": "EOA 60"
"displayName": "EOA 62"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-65",
"name": "EOA 65",
"id": "EOA-67",
"name": "EOA 67",
"accounts": [
{
"address": "eth:0x8a9A13A106cB89E15410B2AB4488135155032169",
"type": "EOA",
"isVerified": true,
"name": "0x8a9A…2169",
"url": "https://etherscan.io/address/0x8a9A13A106cB89E15410B2AB4488135155032169",
"displayName": "EOA 65"
"displayName": "EOA 67"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-73",
"name": "EOA 73",
"id": "EOA-75",
"name": "EOA 75",
"accounts": [
{
"address": "eth:0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"type": "EOA",
"isVerified": true,
"name": "0x96D1…EB41",
"url": "https://etherscan.io/address/0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"displayName": "EOA 73"
"displayName": "EOA 75"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-74",
"name": "EOA 74",
"id": "EOA-76",
"name": "EOA 76",
"accounts": [
{
"address": "eth:0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"type": "EOA",
"isVerified": true,
"name": "0x9812…5b19",
"url": "https://etherscan.io/address/0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"displayName": "EOA 74"
"displayName": "EOA 76"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * pause and unpause deposits, burns, and withdrawals ",
"discoveryDrivenData": true
},
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"accounts": [
{
"address": "eth:0xa820A620F638114F3Eb45df87382383322dDBC49",
"type": "EOA",
"isVerified": true,
"name": "0xa820…BC49",
"url": "https://etherscan.io/address/0xa820A620F638114F3Eb45df87382383322dDBC49",
"displayName": "EOA 78"
"displayName": "EOA 80"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * TokenMessengerV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-81-and-EOA-97",
"name": "EOA 81 and EOA 97",
"id": "EOA-83-and-EOA-99",
"name": "EOA 83 and EOA 99",
"accounts": [
{
"address": "eth:0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"type": "EOA",
"isVerified": true,
"name": "0xb0Ea…7361",
"url": "https://etherscan.io/address/0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"displayName": "EOA 81"
"displayName": "EOA 83"
},
{
"address": "eth:0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"type": "EOA",
"isVerified": true,
"name": "0xE2fE…01CA",
"url": "https://etherscan.io/address/0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"displayName": "EOA 97"
"displayName": "EOA 99"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitter → TokenMessenger → TokenMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-82",
"name": "EOA 82",
"id": "EOA-84",
"name": "EOA 84",
"accounts": [
{
"address": "eth:0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"type": "EOA",
"isVerified": true,
"name": "0xB43a…9F65",
"url": "https://etherscan.io/address/0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"displayName": "EOA 82"
"displayName": "EOA 84"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-83",
"name": "EOA 83",
"id": "EOA-85",
"name": "EOA 85",
"accounts": [
{
"address": "eth:0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"type": "EOA",
"isVerified": true,
"name": "0xB72F…7ADe",
"url": "https://etherscan.io/address/0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"displayName": "EOA 83"
"displayName": "EOA 85"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayWallet]",
"discoveryDrivenData": true
},
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"accounts": [
{
"address": "eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"type": "EOA",
"isVerified": true,
"name": "0xB756…2258",
"url": "https://etherscan.io/address/0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"displayName": "EOA 84"
"displayName": "EOA 86"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * MessageTransmitterV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-85",
"name": "EOA 85",
"id": "EOA-87",
"name": "EOA 87",
"accounts": [
{
"address": "eth:0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"type": "EOA",
"isVerified": true,
"name": "0xBED4…fbc9",
"url": "https://etherscan.io/address/0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"displayName": "EOA 85"
"displayName": "EOA 87"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * denylist addresses, preventing them from interacting with this TokenMessenger ",
"discoveryDrivenData": true
},
{
"id": "EOA-86",
"name": "EOA 86",
"id": "EOA-88",
"name": "EOA 88",
"accounts": [
{
"address": "eth:0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"type": "EOA",
"isVerified": true,
"name": "0xc16b…c95a",
"url": "https://etherscan.io/address/0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"displayName": "EOA 86"
"displayName": "EOA 88"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-89",
"name": "EOA 89",
"id": "EOA-91",
"name": "EOA 91",
"accounts": [
{
"address": "eth:0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"type": "EOA",
"isVerified": true,
"name": "0xc809…C4ed",
"url": "https://etherscan.io/address/0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"displayName": "EOA 89"
"displayName": "EOA 91"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-96",
"name": "EOA 96",
"id": "EOA-98",
"name": "EOA 98",
"accounts": [
{
"address": "eth:0xE206be2331d6aAa4495887755BaBE892aecE704A",
"type": "EOA",
"isVerified": true,
"name": "0xE206…704A",
"url": "https://etherscan.io/address/0xE206be2331d6aAa4495887755BaBE892aecE704A",
"displayName": "EOA 96"
"displayName": "EOA 98"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-106",
"name": "EOA 106",
"id": "EOA-109",
"name": "EOA 109",
"accounts": [
{
"address": "eth:0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"type": "EOA",
"isVerified": true,
"name": "0xFcb1…AE3a",
"url": "https://etherscan.io/address/0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"displayName": "EOA 106"
"displayName": "EOA 109"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage all critical roles like pausers, blacklisters, minters, rescuer ",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "cctp-v2",
"bridgeType": "burnAndMint"
}
],
"type": "multichain"
}
+2 -2
+2 -2
{
"clusteredEventCount": 16,
"contracts": [
{
"name": "SuperchainConfig",
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "DisputeGameFactory",
"address": "eth:0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683",
"isVerified": true,
"ossifyingSince": 1779804539,
"codeChangeCount": 4,
"stateChangeCount": 11
},
{
"name": "OPSuccinctFaultDisputeGame",
"address": "eth:0xfF1caC738a5263736AF258e4b3D6a4970C6351FF",
"isVerified": true,
"ossifyingSince": 1779117911,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1776370439,
"codeChangeCount": 0,
"stateChangeCount": 23
},
{
"name": "AccessManager",
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"isVerified": true,
"ossifyingSince": 1776249827,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "SP1Verifier",
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"isVerified": true,
"ossifyingSince": 1776172415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "FaultDisputeGame",
"address": "eth:0x25Bd434Aa96EE31D6661c89CF4290281f1ed856F",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0x89E31965D844a309231B1f17759Ccaf1b7c09861",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "L1StandardBridge",
"address": "eth:0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 4,
"stateChangeCount": 1
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0xa83a2E8595b602aD98C928E9cD123c0E05C84FD9",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"isVerified": true,
"ossifyingSince": 1774940891,
"codeChangeCount": 4,
"stateChangeCount": 2
},
{
"name": "CeloSuperchainConfig",
"address": "eth:0x25035d2233d099f0BA710ca1e5a3834842870C66",
"isVerified": true,
"ossifyingSince": 1774940723,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AnchorStateRegistry",
"address": "eth:0x8fE58d2168b5412Cf1Bd212cE6137f8b7300222d",
"isVerified": true,
"ossifyingSince": 1774940723,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0x91FA5B653aFe81A79890A93ad83768A04cc011b4",
"isVerified": true,
"ossifyingSince": 1774940723,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0xC700d16428cF5Bfa71D91E66fA54Fc11A73f2552",
"isVerified": true,
"ossifyingSince": 1774940723,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"isVerified": true,
"ossifyingSince": 1771084331,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessModule",
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"isVerified": true,
"ossifyingSince": 1769109083,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "SaferSafes",
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"isVerified": true,
"ossifyingSince": 1764596735,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"isVerified": true,
"ossifyingSince": 1762212215,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DeputyPauseModule",
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"isVerified": true,
"ossifyingSince": 1753380539,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1748550023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Celo native asset Token",
"address": "eth:0x057898f3C43F129a17517B9056D23851F124b19f",
"isVerified": true,
"ossifyingSince": 1741879583,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x55093104b76FAA602F9d6c35A5FFF576bE78d753",
"isVerified": true,
"ossifyingSince": 1741879547,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x783A434532Ee94667979213af1711505E8bFE374",
"isVerified": true,
"ossifyingSince": 1741879547,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PreimageOracle",
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"isVerified": true,
"ossifyingSince": 1740762647,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SuperchainProxyAdmin",
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"isVerified": true,
"ossifyingSince": 1685377355,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2CrossDomainMessenger",
"address": "celo:0x4200000000000000000000000000000000000007",
"isVerified": false,
"ossifyingSince": 1587571205,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "celo:0x4200000000000000000000000000000000000010",
"isVerified": false,
"ossifyingSince": 1587571205,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "celo:0x4200000000000000000000000000000000000016",
"isVerified": false,
"ossifyingSince": 1587571205,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "celo:0x4200000000000000000000000000000000000018",
"isVerified": false,
"ossifyingSince": 1587571205,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1720099295,
1721270315,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729728863,
1730498375,
1731025967,
1735951931,
1736970023,
1742960075,
1743612623,
1748558771,
1750785371,
1751883851,
1753378247,
1764092795,
1765362083,
1769109083,
1770648059,
1771445567,
1774940723,
1776164147,
1776370439,
1777372319,
1779804539,
1782428747
],
"criticalChangesPerYear": 10.53211172559701,
"criticalChangesPerYear": 10.532110846241924,
"criticalUpdates": [
{
"id": "a6b1d9a2",
"type": "code"
},
{
"id": "4c71daa7",
"type": "state"
},
{
"id": "953d9862",
"type": "state"
},
{
"id": "eeb61c0d",
"type": "state"
},
{
"id": "616cc8c8",
"type": "code"
},
{
"id": "4e1af81f",
"type": "state"
},
{
"id": "13fde891",
"type": "state"
},
{
"id": "49f509dc",
"type": "state"
}
],
"lastCriticalChange": 1782428747,
"maturity": 0,
"perimeterResets": [
1587571205,
1685377355,
1705954799,
1717149791,
1720099223,
1721270315,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729728863,
1730498375,
1731025967,
1735951931,
1736970023,
1740762647,
1741879547,
1742960075,
1743612623,
1748550023,
1748963099,
1750785371,
1751883851,
1753378247,
1762212215,
1764092795,
1764596735,
1764689339,
1765362083,
1769109083,
1770648059,
1771084331,
1771445567,
1774940723,
1776164147,
1776370439,
1777372319,
1779117911,
1779804539,
1782428747
],
"projectClockStart": 1782428747,
"score": 0,
"windowSeconds": 47908341
"windowSeconds": 47908345
}
+244 -195
+244 -195
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "MessageTransmitter",
"isVerified": true,
"address": "eth:0x0a992d191DEeC32aFe36203Ad87D7d289a738F81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 24\n * **getEnabledAttester**: EOA 81, EOA 97\n * **owner**: EOA 35\n * **pauser**: EOA 89\n * **rescuer**: EOA 46",
"description": "Part of CCTP\n* Roles:\n * **attesterManager**: EOA 26\n * **getEnabledAttester**: EOA 83, EOA 99\n * **owner**: EOA 37\n * **pauser**: EOA 91\n * **rescuer**: EOA 48",
"discoveryDrivenData": true
},
{
"name": "GatewayMinter",
"isVerified": true,
"address": "eth:0x2222222d7164433c4C09B0b0D809a9b52C04C205",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6"
],
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0x868dA8E567a2C6D668f1bBFbC9B11d0567fc8C0C"
]
},
{
"timestamp": 1753120475,
"transactionHash": "0xb2a247f1c8466c02274231a9d5fed407fb546964166c1a784da6ca2ff06e3d05",
"implementations": [
"eth:0xc2ff68068362AEa1ca22a3896d05B2B812ce51B1"
]
}
],
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 28\n * **attestationSigners**: EOA 22\n * **denylister**: EOA 57\n * **owner**: EOA 28\n * **pauser**: EOA 45",
"description": "Entrypoint or minter of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 30\n * **attestationSigners**: EOA 24\n * **denylister**: EOA 59\n * **owner**: EOA 30\n * **pauser**: EOA 47",
"upgradableBy": [
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessengerV2",
"isVerified": true,
"address": "eth:0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xa820A620F638114F3Eb45df87382383322dDBC49"
],
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234111,
"transactionHash": "0x790ed794d50247273bdc386279972cb8bd05fb0d92eda2ddf496e9d20681a6f5",
"implementations": [
"eth:0x555E272506C06e7E559d57418563742AFE363ec8"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 78\n * **denylister**: EOA 85\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 17\n * **rescuer**: EOA 3",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 80\n * **denylister**: EOA 87\n * **localMessageTransmitter**: MessageTransmitterV2\n * **owner**: EOA 19\n * **rescuer**: EOA 3",
"upgradableBy": [
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "GatewayWallet",
"isVerified": true,
"address": "eth:0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5"
],
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0xdc92756F7Bbbd934345B6c14b7FcdC42E7FBA19F"
]
},
{
"timestamp": 1753120691,
"transactionHash": "0x3184d25af4d116a0ed0b24d8d41b5ae6b5663f1abe63d4ea30a41a3527ddb84a",
"implementations": [
"eth:0x899a4f5f5422cC5E8183280182e7096Fb923C762"
]
},
{
"timestamp": 1760730395,
"transactionHash": "0xdc67731c86a1e54bc1ed01654a64dc1518211aa20df0733ed96d6fa0f6e63cc0",
"implementations": [
"eth:0xdE4d0329Db2c046b8bA35180822aEECCf63D3294"
]
},
{
"timestamp": 1776720695,
"transactionHash": "0x1f5e227f100df6b0932df083c80a695d00a9d994963558dad8bdc30cacad6ffb",
"implementations": [
"eth:0x09E3740c97C7413693B7e07C32D42C53CD050d27"
]
},
{
"timestamp": 1784835131,
"transactionHash": "0x9032a846cd5f1fe703f17ab9b6015966a4f953412483a90d822992eeec99699d",
"implementations": [
"eth:0xF7a6D9D7Df917c072ac8987A820c58aA27A0e798"
]
}
],
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 19\n * **attestationSigners**: EOA 83\n * **contractSignersAllowlister**: EOA 9\n * **denylister**: EOA 48\n * **owner**: EOA 19\n * **pauser**: EOA 74",
"description": "Exit point or burner of USDC on this chain for the Gateway protocol.\n* Roles:\n * **admin**: EOA 21\n * **attestationSigners**: EOA 85\n * **contractSignersAllowlister**: EOA 10\n * **denylister**: EOA 50\n * **owner**: EOA 21\n * **pauser**: EOA 76",
"upgradableBy": [
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "MessageTransmitterV2",
"isVerified": true,
"address": "eth:0x81D40F21F12A8F0E3252Bccb954D722d4c464B64",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258"
],
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739234063,
"transactionHash": "0x5ffaa1582fac9975d8fb0aee75cc0d5bb67c3c2878c33321b84136eda12db0a1",
"implementations": [
"eth:0xa30C41865729C248067704d4DB9F38385Cbe1186"
]
}
],
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 84\n * **attesterManager**: EOA 86\n * **getEnabledAttester**: EOA 37, EOA 47\n * **owner**: EOA 82\n * **pauser**: EOA 25\n * **rescuer**: EOA 38",
"description": "Part of CCTP\n* Roles:\n * **admin**: EOA 86\n * **attesterManager**: EOA 88\n * **getEnabledAttester**: EOA 39, EOA 49\n * **owner**: EOA 84\n * **pauser**: EOA 27\n * **rescuer**: EOA 40",
"upgradableBy": [
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "USD Coin Token",
"isVerified": true,
"address": "eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2"
],
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1598542374,
"transactionHash": "0xe6f0f754398d89583da8e4229c5d7aaa00739a3ae334ecfc2839ac396b4836e3",
"implementations": [
"eth:0xB7277a6e95992041568D9391D09d0122023778A2"
]
},
{
"timestamp": 1619464491,
"transactionHash": "0xe2e40640ffd5f76538cd23660cf56f00bfebd5fe925ebad6b8067c4cee18a2c3",
"implementations": [
"eth:0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF"
]
},
{
"timestamp": 1704734195,
"transactionHash": "0xae3ad89e569f27d47a8a02999a6d937c12aaa6bc50e66650e7cbd3244bde9951",
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
]
}
],
"description": "* Roles:\n * **admin**: EOA 59\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **minters**: EOA 1, EOA 100, EOA 103, EOA 105, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 4, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 8, EOA 99, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2; ultimately EOA 22, EOA 37, EOA 47, EOA 81, EOA 83, EOA 97\n * **owner**: EOA 106\n * **pauser**: EOA 34",
"description": "* Roles:\n * **admin**: EOA 61\n * **blacklister**: EOA 6\n * **masterMinter**: MasterMinter; ultimately EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **minters**: EOA 1, EOA 101, EOA 102, EOA 105, EOA 107, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 4, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 8, GatewayMinter, GatewayWallet, TokenMinter, TokenMinterV2, UnverifiedUSDCMinter; ultimately EOA 24, EOA 39, EOA 49, EOA 83, EOA 85, EOA 99\n * **owner**: EOA 109\n * **pauser**: EOA 36",
"upgradableBy": [
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "TokenMessenger",
"isVerified": true,
"address": "eth:0xBd3fa81B58Ba92a82136038B25aDec7066af3155",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 43\n * **rescuer**: EOA 42",
"description": "Part of CCTP\n* Roles:\n * **localMessageTransmitter**: MessageTransmitter\n * **owner**: EOA 45\n * **rescuer**: EOA 44",
"discoveryDrivenData": true
},
{
"name": "TokenMinter",
"isVerified": true,
"address": "eth:0xc4922d64a24675E16e1586e3e3Aa56C06fABe907",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 60\n * **rescuer**: EOA 73\n * **tokenController**: EOA 65",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessenger\n * **owner**: EOA 2\n * **pauser**: EOA 62\n * **rescuer**: EOA 75\n * **tokenController**: EOA 67",
"discoveryDrivenData": true
},
{
"name": "MasterMinter",
"isVerified": true,
"address": "eth:0xE982615d461DD5cD06575BbeA87624fda4e3de17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **controllers**: EOA 10, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108, EOA 109, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 5, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 7, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98\n * **owner**: EOA 87",
"description": "* Roles:\n * **controllers**: EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 11, EOA 110, EOA 111, EOA 112, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 5, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 7, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 9, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97\n * **owner**: EOA 89",
"discoveryDrivenData": true
},
{
"name": "TokenMinterV2",
"isVerified": true,
"address": "eth:0xfd78EE919681417d192449715b2594ab58f5D002",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 56\n * **pauser**: EOA 36\n * **rescuer**: EOA 96\n * **tokenController**: EOA 49",
"description": "Part of CCTP: Used for automated access control for minting.\n* Roles:\n * **localTokenMessenger**: TokenMessengerV2\n * **owner**: EOA 58\n * **pauser**: EOA 38\n * **rescuer**: EOA 98\n * **tokenController**: EOA 51",
"discoveryDrivenData": true
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
},
"description": "Chain abstraction protocol built by Circle. Used mainly for USDC, users can deposit to get an offchain balance, that can then be used on any chain that is natively supported by Circle USDC.",
"detailedDescription": "# Architecture\n[Circle Gateway](https://developers.circle.com/gateway) is a chain-abstraction layer for USDC: users deposit native USDC into `GatewayWallet` contracts on supported source chains and Circle's Gateway system tracks those deposits as an offchain unified balance. The user can spend against the aggregate balance on any supported destination chain.\n\n# Crosschain Oracle and validation\nA user deposits through `GatewayWallet`. To spend the unified balance, the user signs one or more `BurnIntent` payloads specifying source and destination domains, token, recipient, amount, fee cap, expiry, and optional hook data. On the destination chain, anyone can call `GatewayMinter.gatewayMint` with the attestation payload and a signature from a configured Gateway attestation signer; `GatewayMinter` mints USDC to the destination recipient. On the source chain, `GatewayWallet` validates the signed burn intent, deducts the user's available or withdrawing balance, collects fees, and burns the corresponding USDC (this happens after the mint at the destination!). The Ethereum `GatewayWallet` and `GatewayMinter` use 1 burn signer on `GatewayWallet` and 1 attestation signer on `GatewayMinter`.\n\n# Withdrawal self-service\nIf the Circle API is unavailable, users can use an onchain two-step withdrawal path; on Ethereum the discovered `withdrawalDelay` is 7 days (50400 blocks at 12-second block time). This delay gives the Gateway system time to burn funds that may already have been minted elsewhere before the withdrawal completes.\n\n# Upgradeability\nBoth Gateway contracts are proxies with owner/admin, pauser, denylister, signer-management, fee-recipient, and token-support roles; upgrade admins on Ethereum can replace implementations with no onchain delay.\n\n# Monitoring\nCircle does not provide a block explorer. There currently is no security, transparency or monitoring related tooling for CCTP or Gateway users.",
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-11,-EOA-14,-EOA-15,-EOA-16,-EOA-18,-EOA-20,-EOA-21,-EOA-31,-EOA-33,-EOA-39,-EOA-40,-EOA-52,-EOA-55,-EOA-62,-EOA-63,-EOA-64,-EOA-67,-EOA-72,-EOA-76,-EOA-77,-EOA-99,-EOA-100,-EOA-103-and-EOA-105",
"name": "EOA 1, EOA 4, EOA 8, EOA 11, EOA 14, EOA 15, EOA 16, EOA 18, EOA 20, EOA 21, EOA 31, EOA 33, EOA 39, EOA 40, EOA 52, EOA 55, EOA 62, EOA 63, EOA 64, EOA 67, EOA 72, EOA 76, EOA 77, EOA 99, EOA 100, EOA 103 and EOA 105",
"id": "UnverifiedUSDCMinter",
"name": "UnverifiedUSDCMinter",
"accounts": [
{
"address": "eth:0xA669f564133A1612dbd6f5E579863aA0a34448Bd",
"type": "Contract",
"isVerified": false,
"name": "0xA669…48Bd",
"url": "https://etherscan.io/address/0xA669f564133A1612dbd6f5E579863aA0a34448Bd"
}
],
"chain": "ethereum",
"description": "Upgradeable contract with an unverified implementation that is registered as a USDC minter in the USDC token contract. Its minting allowance is set by its MasterMinter controllers.\n* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-4,-EOA-8,-EOA-12,-EOA-16,-EOA-17,-EOA-18,-EOA-20,-EOA-22,-EOA-23,-EOA-33,-EOA-35,-EOA-41,-EOA-42,-EOA-54,-EOA-57,-EOA-64,-EOA-65,-EOA-66,-EOA-69,-EOA-74,-EOA-78,-EOA-79,-EOA-101,-EOA-102,-EOA-105-and-EOA-107",
"name": "EOA 1, EOA 4, EOA 8, EOA 12, EOA 16, EOA 17, EOA 18, EOA 20, EOA 22, EOA 23, EOA 33, EOA 35, EOA 41, EOA 42, EOA 54, EOA 57, EOA 64, EOA 65, EOA 66, EOA 69, EOA 74, EOA 78, EOA 79, EOA 101, EOA 102, EOA 105 and EOA 107",
"accounts": [
{
"address": "eth:0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"type": "EOA",
"isVerified": true,
"name": "0x0057…6Ba5",
"url": "https://etherscan.io/address/0x0057f169b9E1E57dD25CAb68A23ae79C7B3F6Ba5",
"displayName": "EOA 1"
},
{
"address": "eth:0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"type": "EOA",
"isVerified": true,
"name": "0x0896…869a",
"url": "https://etherscan.io/address/0x08966c2561ef3AC77Ac479dF4590886B4Bfe869a",
"displayName": "EOA 4"
},
{
"address": "eth:0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"type": "EOA",
"isVerified": true,
"name": "0x119c…3E90",
"url": "https://etherscan.io/address/0x119cc12CB823EB6Ee1d2Da2b5E5De645AF8F3E90",
"displayName": "EOA 8"
},
{
"address": "eth:0x1375c5FF3785850314f5A612A7837CC295075eF1",
"type": "EOA",
"isVerified": true,
"name": "0x1375…5eF1",
"url": "https://etherscan.io/address/0x1375c5FF3785850314f5A612A7837CC295075eF1",
"displayName": "EOA 11"
"displayName": "EOA 12"
},
{
"address": "eth:0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"type": "EOA",
"isVerified": true,
"name": "0x1971…2186",
"url": "https://etherscan.io/address/0x1971773285A553C2100C97a3A3Ad04519F4e2186",
"displayName": "EOA 14"
"displayName": "EOA 16"
},
{
"address": "eth:0x19a932fC5A8320939c3575302a8705147a7f27D8",
"type": "EOA",
"isVerified": true,
"name": "0x19a9…27D8",
"url": "https://etherscan.io/address/0x19a932fC5A8320939c3575302a8705147a7f27D8",
"displayName": "EOA 15"
"displayName": "EOA 17"
},
{
"address": "eth:0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"type": "EOA",
"isVerified": true,
"name": "0x2322…1946",
"url": "https://etherscan.io/address/0x2322E81DB282F22849c2Eb0b749C688Ea3611946",
"displayName": "EOA 16"
"displayName": "EOA 18"
},
{
"address": "eth:0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"type": "EOA",
"isVerified": true,
"name": "0x24BD…1BE3",
"url": "https://etherscan.io/address/0x24BDd8771b08C2EA6FE0e898126e65BD49021BE3",
"displayName": "EOA 18"
"displayName": "EOA 20"
},
{
"address": "eth:0x2b52e60C844d7946b6d910D3296940dC889CC785",
"type": "EOA",
"isVerified": true,
"name": "0x2b52…C785",
"url": "https://etherscan.io/address/0x2b52e60C844d7946b6d910D3296940dC889CC785",
"displayName": "EOA 20"
"displayName": "EOA 22"
},
{
"address": "eth:0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"type": "EOA",
"isVerified": true,
"name": "0x3005…ca61",
"url": "https://etherscan.io/address/0x3005A4C0EFE7E66F3f60eF8704983247A5c6ca61",
"displayName": "EOA 21"
"displayName": "EOA 23"
},
{
"address": "eth:0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"type": "EOA",
"isVerified": true,
"name": "0x425a…26c5",
"url": "https://etherscan.io/address/0x425a4093405dcC888ec7931d57574e0Dfe0726c5",
"displayName": "EOA 31"
"displayName": "EOA 33"
},
{
"address": "eth:0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"type": "EOA",
"isVerified": true,
"name": "0x4654…C202",
"url": "https://etherscan.io/address/0x46544d6A546EF97d43a6Aaa783DB8CEFcDd6C202",
"displayName": "EOA 33"
"displayName": "EOA 35"
},
{
"address": "eth:0x55FE002aefF02F77364de339a1292923A15844B8",
"type": "EOA",
"isVerified": true,
"name": "0x55FE…44B8",
"url": "https://etherscan.io/address/0x55FE002aefF02F77364de339a1292923A15844B8",
"displayName": "EOA 39"
"displayName": "EOA 41"
},
{
"address": "eth:0x5B6122C109B78C6755486966148C1D70a50A47D7",
"type": "EOA",
"isVerified": true,
"name": "0x5B61…47D7",
"url": "https://etherscan.io/address/0x5B6122C109B78C6755486966148C1D70a50A47D7",
"displayName": "EOA 40"
"displayName": "EOA 42"
},
{
"address": "eth:0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"type": "EOA",
"isVerified": true,
"name": "0x77C9…377E",
"url": "https://etherscan.io/address/0x77C923526ec8B93fb8C645cC49a623ADe521377E",
"displayName": "EOA 52"
"displayName": "EOA 54"
},
{
"address": "eth:0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"type": "EOA",
"isVerified": true,
"name": "0x7BdD…9A2D",
"url": "https://etherscan.io/address/0x7BdDBa3607517a3a06B75C1Fad1744D571De9A2D",
"displayName": "EOA 55"
"displayName": "EOA 57"
},
{
"address": "eth:0x895F07957B863f4AB6086035a6990d8366Bc3266",
"type": "EOA",
"isVerified": true,
"name": "0x895F…3266",
"url": "https://etherscan.io/address/0x895F07957B863f4AB6086035a6990d8366Bc3266",
"displayName": "EOA 62"
"displayName": "EOA 64"
},
{
"address": "eth:0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"type": "EOA",
"isVerified": true,
"name": "0x8966…EEA7",
"url": "https://etherscan.io/address/0x89661a593106fF15B24B8DD25ab8Efad63cFEEA7",
"displayName": "EOA 63"
"displayName": "EOA 65"
},
{
"address": "eth:0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"type": "EOA",
"isVerified": true,
"name": "0x8967…0ca7",
"url": "https://etherscan.io/address/0x8967a7cE20043F876e42F8aD696b06bb632f0ca7",
"displayName": "EOA 64"
"displayName": "EOA 66"
},
{
"address": "eth:0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"type": "EOA",
"isVerified": true,
"name": "0x911c…40Cd",
"url": "https://etherscan.io/address/0x911cb2323c6fB580e39F92a6f58D1cb019E940Cd",
"displayName": "EOA 67"
"displayName": "EOA 69"
},
{
"address": "eth:0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"type": "EOA",
"isVerified": true,
"name": "0x93Cb…Bf7E",
"url": "https://etherscan.io/address/0x93Cb3290185Be000AfAeAd63c47C40EBcE86Bf7E",
"displayName": "EOA 72"
"displayName": "EOA 74"
},
{
"address": "eth:0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"type": "EOA",
"isVerified": true,
"name": "0xa1EF…3609",
"url": "https://etherscan.io/address/0xa1EF798A09CeA66625a1b0B0ed28FB2732743609",
"displayName": "EOA 76"
"displayName": "EOA 78"
},
{
"address": "eth:0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"type": "EOA",
"isVerified": true,
"name": "0xA582…d5c7",
"url": "https://etherscan.io/address/0xA5827F373Aa4D1a8d3cfb92d29963Ee97133d5c7",
"displayName": "EOA 77"
"displayName": "EOA 79"
},
{
"address": "eth:0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"type": "EOA",
"isVerified": true,
"name": "0xE400…646F",
"url": "https://etherscan.io/address/0xE400d09e98a5806bF501E93ED8E7623B78b4646F",
"displayName": "EOA 99"
"displayName": "EOA 101"
},
{
"address": "eth:0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"type": "EOA",
"isVerified": true,
"name": "0xe898…7096",
"url": "https://etherscan.io/address/0xe898a5C06C1166178495e0faf27dae8dd4C97096",
"displayName": "EOA 100"
"displayName": "EOA 102"
},
{
"address": "eth:0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"type": "EOA",
"isVerified": true,
"name": "0xEc72…b70b",
"url": "https://etherscan.io/address/0xEc72B99254d5a407b6CaEd24C1e771377e8Eb70b",
"displayName": "EOA 103"
"displayName": "EOA 105"
},
{
"address": "eth:0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"type": "EOA",
"isVerified": true,
"name": "0xF0f3…A74F",
"url": "https://etherscan.io/address/0xF0f3ef1340530A3983E1c510e49319D9Bfa8A74F",
"displayName": "EOA 105"
"displayName": "EOA 107"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"type": "EOA",
"isVerified": true,
"name": "0x0143…8dC8",
"url": "https://etherscan.io/address/0x01430Aa44F14007c8d5Ddc011FA63dCcE7878dC8",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"type": "EOA",
"isVerified": true,
"name": "0x070B…6f2A",
"url": "https://etherscan.io/address/0x070B2a0c255C148ae7b98B4BB9560Ff147C36f2A",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-5,-EOA-7,-EOA-10,-EOA-12,-EOA-13,-EOA-23,-EOA-26,-EOA-27,-EOA-29,-EOA-30,-EOA-32,-EOA-41,-EOA-44,-EOA-50,-EOA-51,-EOA-53,-EOA-54,-EOA-58,-EOA-61,-EOA-66,-EOA-68,-EOA-69,-EOA-70,-EOA-71,-EOA-75,-EOA-79,-EOA-80,-EOA-87,-EOA-88,-EOA-90,-EOA-91,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-98,-EOA-101,-EOA-102,-EOA-104,-EOA-107,-EOA-108-and-EOA-109",
"name": "EOA 5, EOA 7, EOA 10, EOA 12, EOA 13, EOA 23, EOA 26, EOA 27, EOA 29, EOA 30, EOA 32, EOA 41, EOA 44, EOA 50, EOA 51, EOA 53, EOA 54, EOA 58, EOA 61, EOA 66, EOA 68, EOA 69, EOA 70, EOA 71, EOA 75, EOA 79, EOA 80, EOA 87, EOA 88, EOA 90, EOA 91, EOA 92, EOA 93, EOA 94, EOA 95, EOA 98, EOA 101, EOA 102, EOA 104, EOA 107, EOA 108 and EOA 109",
"id": "EOA-5,-EOA-7,-EOA-9,-EOA-11,-EOA-13,-EOA-15,-EOA-25,-EOA-28,-EOA-29,-EOA-31,-EOA-32,-EOA-34,-EOA-43,-EOA-46,-EOA-52,-EOA-53,-EOA-55,-EOA-56,-EOA-60,-EOA-63,-EOA-68,-EOA-70,-EOA-71,-EOA-72,-EOA-73,-EOA-77,-EOA-81,-EOA-82,-EOA-89,-EOA-90,-EOA-92,-EOA-93,-EOA-94,-EOA-95,-EOA-96,-EOA-97,-EOA-100,-EOA-103,-EOA-104,-EOA-106,-EOA-108,-EOA-110,-EOA-111-and-EOA-112",
"name": "EOA 5, EOA 7, EOA 9, EOA 11, EOA 13, EOA 15, EOA 25, EOA 28, EOA 29, EOA 31, EOA 32, EOA 34, EOA 43, EOA 46, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60, EOA 63, EOA 68, EOA 70, EOA 71, EOA 72, EOA 73, EOA 77, EOA 81, EOA 82, EOA 89, EOA 90, EOA 92, EOA 93, EOA 94, EOA 95, EOA 96, EOA 97, EOA 100, EOA 103, EOA 104, EOA 106, EOA 108, EOA 110, EOA 111 and EOA 112",
"accounts": [
{
"address": "eth:0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"type": "EOA",
"isVerified": true,
"name": "0x08c7…2Ec3",
"url": "https://etherscan.io/address/0x08c71cA483e6C454A35D2eD56073A0297f0A2Ec3",
"displayName": "EOA 5"
},
{
"address": "eth:0x0F493479be830657ACa110199A70E826506A54d3",
"type": "EOA",
"isVerified": true,
"name": "0x0F49…54d3",
"url": "https://etherscan.io/address/0x0F493479be830657ACa110199A70E826506A54d3",
"displayName": "EOA 7"
},
{
"address": "eth:0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"type": "EOA",
"isVerified": true,
"name": "0x1238…27f3",
"url": "https://etherscan.io/address/0x1238060eedfF5cBc9929f53DFee5C986F52b27f3",
"displayName": "EOA 9"
},
{
"address": "eth:0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"type": "EOA",
"isVerified": true,
"name": "0x130A…246c",
"url": "https://etherscan.io/address/0x130AA42C371d1dDB3cc41FBBA99273fA9150246c",
"displayName": "EOA 10"
"displayName": "EOA 11"
},
{
"address": "eth:0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"type": "EOA",
"isVerified": true,
"name": "0x14b1…5a3e",
"url": "https://etherscan.io/address/0x14b1bc91cb99aad649b36341d5abEB50DF775a3e",
"displayName": "EOA 12"
"displayName": "EOA 13"
},
{
"address": "eth:0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"type": "EOA",
"isVerified": true,
"name": "0x162B…682E",
"url": "https://etherscan.io/address/0x162Bd3604c3bAfF49F91bA845ad79c6B2Cc7682E",
"displayName": "EOA 13"
"displayName": "EOA 15"
},
{
"address": "eth:0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"type": "EOA",
"isVerified": true,
"name": "0x355f…bcad",
"url": "https://etherscan.io/address/0x355fa241a4848dec8dCf453a5cCb16ec9207bcad",
"displayName": "EOA 23"
"displayName": "EOA 25"
},
{
"address": "eth:0x38d51f44B586b154159932F3681a30c54A6d25a9",
"type": "EOA",
"isVerified": true,
"name": "0x38d5…25a9",
"url": "https://etherscan.io/address/0x38d51f44B586b154159932F3681a30c54A6d25a9",
"displayName": "EOA 26"
"displayName": "EOA 28"
},
{
"address": "eth:0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"type": "EOA",
"isVerified": true,
"name": "0x39A3…7fB5",
"url": "https://etherscan.io/address/0x39A372b4CC3fc91Ba93238c9121CB4F98D057fB5",
"displayName": "EOA 27"
"displayName": "EOA 29"
},
{
"address": "eth:0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"type": "EOA",
"isVerified": true,
"name": "0x3F1d…9d2f",
"url": "https://etherscan.io/address/0x3F1d9e1b241C918eFd1564018eE0e1Dc3C429d2f",
"displayName": "EOA 29"
"displayName": "EOA 31"
},
{
"address": "eth:0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"type": "EOA",
"isVerified": true,
"name": "0x4024…F82C",
"url": "https://etherscan.io/address/0x4024071Fe3FAd805F922a9098630D09A2EC0F82C",
"displayName": "EOA 30"
"displayName": "EOA 32"
},
{
"address": "eth:0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"type": "EOA",
"isVerified": true,
"name": "0x4403…b806",
"url": "https://etherscan.io/address/0x44036cE4ab4Bf87898f013A35d543F204e91b806",
"displayName": "EOA 32"
"displayName": "EOA 34"
},
{
"address": "eth:0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"type": "EOA",
"isVerified": true,
"name": "0x6301…cEb7",
"url": "https://etherscan.io/address/0x63015E0Ab081680eC85E9b6E62Df5584BD48cEb7",
"displayName": "EOA 41"
"displayName": "EOA 43"
},
{
"address": "eth:0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"type": "EOA",
"isVerified": true,
"name": "0x6e19…3F2D",
"url": "https://etherscan.io/address/0x6e1965bA05D34E0772754779B9e8Fb5EF7e73F2D",
"displayName": "EOA 44"
"displayName": "EOA 46"
},
{
"address": "eth:0x74F471Af556aBff915804C0f19D642497aFa13B5",
"type": "EOA",
"isVerified": true,
"name": "0x74F4…13B5",
"url": "https://etherscan.io/address/0x74F471Af556aBff915804C0f19D642497aFa13B5",
"displayName": "EOA 50"
"displayName": "EOA 52"
},
{
"address": "eth:0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"type": "EOA",
"isVerified": true,
"name": "0x768d…7d65",
"url": "https://etherscan.io/address/0x768d96ef334BA5d0914040a5485D3777ecF07d65",
"displayName": "EOA 51"
"displayName": "EOA 53"
},
{
"address": "eth:0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"type": "EOA",
"isVerified": true,
"name": "0x79E0…9F71",
"url": "https://etherscan.io/address/0x79E0946e1C186E745f1352d7C21AB04700C99F71",
"displayName": "EOA 53"
"displayName": "EOA 55"
},
{
"address": "eth:0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"type": "EOA",
"isVerified": true,
"name": "0x7B3d…c6AB",
"url": "https://etherscan.io/address/0x7B3d54052DF209679Fce721516Cc1b566ef1c6AB",
"displayName": "EOA 54"
"displayName": "EOA 56"
},
{
"address": "eth:0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"type": "EOA",
"isVerified": true,
"name": "0x7Ee7…c5B2",
"url": "https://etherscan.io/address/0x7Ee759ea02624E29a39b81726B72eCFF2F09c5B2",
"displayName": "EOA 58"
"displayName": "EOA 60"
},
{
"address": "eth:0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"type": "EOA",
"isVerified": true,
"name": "0x8627…e049",
"url": "https://etherscan.io/address/0x86274d6Ed4301f40d5E28D5805cEa0E7DC4ee049",
"displayName": "EOA 61"
"displayName": "EOA 63"
},
{
"address": "eth:0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"type": "EOA",
"isVerified": true,
"name": "0x8E07…e40d",
"url": "https://etherscan.io/address/0x8E079873EFb4f3B76a4be111E8a55418bCe6e40d",
"displayName": "EOA 66"
"displayName": "EOA 68"
},
{
"address": "eth:0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"type": "EOA",
"isVerified": true,
"name": "0x9138…dB6d",
"url": "https://etherscan.io/address/0x9138a70014749f7F3f9B7a5b5c159b14779EdB6d",
"displayName": "EOA 68"
"displayName": "EOA 70"
},
{
"address": "eth:0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"type": "EOA",
"isVerified": true,
"name": "0x919f…04b3",
"url": "https://etherscan.io/address/0x919f33bdbF59e92F9c87a5ddd4A9f1aADA3C04b3",
"displayName": "EOA 69"
"displayName": "EOA 71"
},
{
"address": "eth:0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"type": "EOA",
"isVerified": true,
"name": "0x92c3…0684",
"url": "https://etherscan.io/address/0x92c3A3136eC730295E41D5E6461Ecac5b6B40684",
"displayName": "EOA 70"
"displayName": "EOA 72"
},
{
"address": "eth:0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"type": "EOA",
"isVerified": true,
"name": "0x936F…bBfD",
"url": "https://etherscan.io/address/0x936F08395aB1Afc97C09838A1A6AD1C854C4bBfD",
"displayName": "EOA 71"
"displayName": "EOA 73"
},
{
"address": "eth:0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"type": "EOA",
"isVerified": true,
"name": "0x9d5C…c5E4",
"url": "https://etherscan.io/address/0x9d5C50Ae9dC377b1fDE6786bcfE8a70854fAc5E4",
"displayName": "EOA 75"
"displayName": "EOA 77"
},
{
"address": "eth:0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"type": "EOA",
"isVerified": true,
"name": "0xAF60…24dF",
"url": "https://etherscan.io/address/0xAF60Becd8f8042C1FcDE81D0FEcFC720099d24dF",
"displayName": "EOA 79"
"displayName": "EOA 81"
},
{
"address": "eth:0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"type": "EOA",
"isVerified": true,
"name": "0xB0C9…9017",
"url": "https://etherscan.io/address/0xB0C9f95c1F0e686249AE0461e5e7657545379017",
"displayName": "EOA 80"
"displayName": "EOA 82"
},
{
"address": "eth:0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"type": "EOA",
"isVerified": true,
"name": "0xC1d9…c704",
"url": "https://etherscan.io/address/0xC1d9fe41D19Dd52cb3Ae5d1D3b0030B5D498c704",
"displayName": "EOA 87"
"displayName": "EOA 89"
},
{
"address": "eth:0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"type": "EOA",
"isVerified": true,
"name": "0xC2Bb…0a06",
"url": "https://etherscan.io/address/0xC2Bbc3A94408096EDfbfC2f61A8bBb5c9ED10a06",
"displayName": "EOA 88"
"displayName": "EOA 90"
},
{
"address": "eth:0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"type": "EOA",
"isVerified": true,
"name": "0xCE4D…43Bd",
"url": "https://etherscan.io/address/0xCE4DddbfbE2c338B679c4F186d5F60B60FAa43Bd",
"displayName": "EOA 90"
"displayName": "EOA 92"
},
{
"address": "eth:0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"type": "EOA",
"isVerified": true,
"name": "0xD058…8275",
"url": "https://etherscan.io/address/0xD05850359114bfE0b37A0Af048E1E8F9f7ce8275",
"displayName": "EOA 91"
"displayName": "EOA 93"
},
{
"address": "eth:0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"type": "EOA",
"isVerified": true,
"name": "0xd285…67a3",
"url": "https://etherscan.io/address/0xd285766FB23198087d781FbF22D8Ddbc8b0067a3",
"displayName": "EOA 92"
"displayName": "EOA 94"
},
{
"address": "eth:0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"type": "EOA",
"isVerified": true,
"name": "0xD3eF…0623",
"url": "https://etherscan.io/address/0xD3eFE568763BD4A96e4115B993b3fB89B35A0623",
"displayName": "EOA 93"
"displayName": "EOA 95"
},
{
"address": "eth:0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"type": "EOA",
"isVerified": true,
"name": "0xdBEb…8B85",
"url": "https://etherscan.io/address/0xdBEbB37e94984A249f8a514bE9e3120E13C18B85",
"displayName": "EOA 94"
"displayName": "EOA 96"
},
{
"address": "eth:0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"type": "EOA",
"isVerified": true,
"name": "0xDe59…2444",
"url": "https://etherscan.io/address/0xDe5983C50E3b06D6473d3E7C179b85b30bf32444",
"displayName": "EOA 95"
"displayName": "EOA 97"
},
{
"address": "eth:0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"type": "EOA",
"isVerified": true,
"name": "0xe37e…4378",
"url": "https://etherscan.io/address/0xe37eDF8B4f5Dc846AF472CF7aD086A14d4024378",
"displayName": "EOA 98"
"displayName": "EOA 100"
},
{
"address": "eth:0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"type": "EOA",
"isVerified": true,
"name": "0xe969…c19d",
"url": "https://etherscan.io/address/0xe9697bcf46ff6125003282d5e1DE22c52033c19d",
"displayName": "EOA 101"
"displayName": "EOA 103"
},
{
"address": "eth:0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"type": "EOA",
"isVerified": true,
"name": "0xeb10…8314",
"url": "https://etherscan.io/address/0xeb10024C7761e78cbbE78773aC6F6E98f3ED8314",
"displayName": "EOA 102"
"displayName": "EOA 104"
},
{
"address": "eth:0xEff933714A1B1F8600873BB61dc8F522F6438971",
"type": "EOA",
"isVerified": true,
"name": "0xEff9…8971",
"url": "https://etherscan.io/address/0xEff933714A1B1F8600873BB61dc8F522F6438971",
"displayName": "EOA 104"
"displayName": "EOA 106"
},
{
"address": "eth:0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"type": "EOA",
"isVerified": true,
"name": "0xfB9a…C42c",
"url": "https://etherscan.io/address/0xfB9a1Af976e70113b6879a70144cDECe1EA8C42c",
"displayName": "EOA 108"
},
{
"address": "eth:0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"type": "EOA",
"isVerified": true,
"name": "0xfe0F…916E",
"url": "https://etherscan.io/address/0xfe0F536D7Ea2eD598fd54993F03208B03de1916E",
"displayName": "EOA 107"
"displayName": "EOA 110"
},
{
"address": "eth:0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"type": "EOA",
"isVerified": true,
"name": "0xFe1e…398B",
"url": "https://etherscan.io/address/0xFe1e61E23698d619235B88936eF670AcF9FB398B",
"displayName": "EOA 108"
"displayName": "EOA 111"
},
{
"address": "eth:0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"type": "EOA",
"isVerified": true,
"name": "0xFE8c…bCEa",
"url": "https://etherscan.io/address/0xFE8c6a384fD37BCc4E4f8c837A570e09EDd6bCEa",
"displayName": "EOA 109"
"displayName": "EOA 112"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage minter addresses [via: MasterMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"type": "EOA",
"isVerified": true,
"name": "0x0A06…78F9",
"url": "https://etherscan.io/address/0x0A06BE16275B95a7d2567fBdAE118b36C7DA78F9",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * blacklist addresses, freezing any interactions with the USDC token for them ",
"discoveryDrivenData": true
},
{
"id": "EOA-9",
"name": "EOA 9",
"id": "EOA-10",
"name": "EOA 10",
"accounts": [
{
"address": "eth:0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"type": "EOA",
"isVerified": true,
"name": "0x12De…6C1B",
"url": "https://etherscan.io/address/0x12De0d11519B2FCc2F9017AC100F65D236326C1B",
"displayName": "EOA 9"
"displayName": "EOA 10"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * allowlist or disallowlist contract signers for Gateway burn intents ",
"discoveryDrivenData": true
},
{
"id": "EOA-17",
"name": "EOA 17",
"id": "EOA-14",
"name": "EOA 14",
"accounts": [
{
"address": "eth:0x162aB6063C172013F03F55D10e8531F3436E31B5",
"type": "EOA",
"isVerified": true,
"name": "0x162a…31B5",
"url": "https://etherscan.io/address/0x162aB6063C172013F03F55D10e8531F3436E31B5",
"displayName": "EOA 14"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * UnverifiedUSDCMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"accounts": [
{
"address": "eth:0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"type": "EOA",
"isVerified": true,
"name": "0x2329…6CD5",
"url": "https://etherscan.io/address/0x2329BAF15f86023e5B0f5592e230D02a51116CD5",
"displayName": "EOA 17"
"displayName": "EOA 19"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-19",
"name": "EOA 19",
"id": "EOA-21",
"name": "EOA 21",
"accounts": [
{
"address": "eth:0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"type": "EOA",
"isVerified": true,
"name": "0x2A6A…58c5",
"url": "https://etherscan.io/address/0x2A6A86466F181721ec8ff946967b56f1AA4758c5",
"displayName": "EOA 19"
"displayName": "EOA 21"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayWallet \n* Can interact with GatewayWallet\n * configure supported tokens, withdrawal delay, burn signers, batch signers, fee recipient, pauser, denylister, contract signer allowlister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-22",
"name": "EOA 22",
"id": "EOA-24",
"name": "EOA 24",
"accounts": [
{
"address": "eth:0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"type": "EOA",
"isVerified": true,
"name": "0x311a…a85d",
"url": "https://etherscan.io/address/0x311ac5F3a327C18E27eA544694e20AbD15CAa85d",
"displayName": "EOA 22"
"displayName": "EOA 24"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-24",
"name": "EOA 24",
"id": "EOA-26",
"name": "EOA 26",
"accounts": [
{
"address": "eth:0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"type": "EOA",
"isVerified": true,
"name": "0x358a…c252",
"url": "https://etherscan.io/address/0x358a85e032aA9507a1303683b2B6A1d1cac3c252",
"displayName": "EOA 24"
"displayName": "EOA 26"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-25",
"name": "EOA 25",
"id": "EOA-27",
"name": "EOA 27",
"accounts": [
{
"address": "eth:0x383048265851aA10035bb32b2055632eC4FBB6eB",
"type": "EOA",
"isVerified": true,
"name": "0x3830…B6eB",
"url": "https://etherscan.io/address/0x383048265851aA10035bb32b2055632eC4FBB6eB",
"displayName": "EOA 25"
"displayName": "EOA 27"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-28",
"name": "EOA 28",
"id": "EOA-30",
"name": "EOA 30",
"accounts": [
{
"address": "eth:0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"type": "EOA",
"isVerified": true,
"name": "0x3c54…aAB6",
"url": "https://etherscan.io/address/0x3c54FFa14d01EF3A555106007A4fED6E8964aAB6",
"displayName": "EOA 28"
"displayName": "EOA 30"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * GatewayMinter \n* Can interact with GatewayMinter\n * configure supported tokens, mint authorities, attestation signers, pauser, denylister, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-34",
"name": "EOA 34",
"id": "EOA-36",
"name": "EOA 36",
"accounts": [
{
"address": "eth:0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"type": "EOA",
"isVerified": true,
"name": "0x4914…8566",
"url": "https://etherscan.io/address/0x4914f61d25e5C567143774B76EdbF4D5109a8566",
"displayName": "EOA 34"
"displayName": "EOA 36"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * pause the USDC token (no transfers, mints, burns) ",
"discoveryDrivenData": true
},
{
"id": "EOA-35",
"name": "EOA 35",
"id": "EOA-37",
"name": "EOA 37",
"accounts": [
{
"address": "eth:0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"type": "EOA",
"isVerified": true,
"name": "0x4aA5…D920",
"url": "https://etherscan.io/address/0x4aA5bF962852DcC59695F600d346D3F751B0D920",
"displayName": "EOA 35"
"displayName": "EOA 37"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-36",
"name": "EOA 36",
"id": "EOA-38",
"name": "EOA 38",
"accounts": [
{
"address": "eth:0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"type": "EOA",
"isVerified": true,
"name": "0x4E89…AC69",
"url": "https://etherscan.io/address/0x4E898CEe7c5809A63de0eF745177A9BB82FeAC69",
"displayName": "EOA 36"
"displayName": "EOA 38"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-37-and-EOA-47",
"name": "EOA 37 and EOA 47",
"id": "EOA-39-and-EOA-49",
"name": "EOA 39 and EOA 49",
"accounts": [
{
"address": "eth:0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"type": "EOA",
"isVerified": true,
"name": "0x52Ed…bCeF",
"url": "https://etherscan.io/address/0x52Ed4cBff8DcE6A19748043F3240ec03c834bCeF",
"displayName": "EOA 37"
"displayName": "EOA 39"
},
{
"address": "eth:0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"type": "EOA",
"isVerified": true,
"name": "0x725b…3F96",
"url": "https://etherscan.io/address/0x725b06F73ff761eF5390e39315e2BfbF60d33F96",
"displayName": "EOA 47"
"displayName": "EOA 49"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitterV2 → TokenMessengerV2 → TokenMinterV2]",
"discoveryDrivenData": true
},
{
"id": "EOA-38",
"name": "EOA 38",
"id": "EOA-40",
"name": "EOA 40",
"accounts": [
{
"address": "eth:0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"type": "EOA",
"isVerified": true,
"name": "0x53D8…1D84",
"url": "https://etherscan.io/address/0x53D81DF780baed54FdCa7020618aD6e1c4AC1D84",
"displayName": "EOA 38"
"displayName": "EOA 40"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-42",
"name": "EOA 42",
"id": "EOA-44",
"name": "EOA 44",
"accounts": [
{
"address": "eth:0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"type": "EOA",
"isVerified": true,
"name": "0x65cB…021B",
"url": "https://etherscan.io/address/0x65cBcdbE95567A8F9519242f9C52F65E8067021B",
"displayName": "EOA 42"
"displayName": "EOA 44"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-43",
"name": "EOA 43",
"id": "EOA-45",
"name": "EOA 45",
"accounts": [
{
"address": "eth:0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"type": "EOA",
"isVerified": true,
"name": "0x6b0b…78C4",
"url": "https://etherscan.io/address/0x6b0b72E63764101Fc4d5BD914B107987041578C4",
"displayName": "EOA 43"
"displayName": "EOA 45"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessenger\n * configure remote TokenMessengers, the local minter, V2 fee recipient and denylister, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-45",
"name": "EOA 45",
"id": "EOA-47",
"name": "EOA 47",
"accounts": [
{
"address": "eth:0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"type": "EOA",
"isVerified": true,
"name": "0x6fa3…e6Fb",
"url": "https://etherscan.io/address/0x6fa314D4Dce1d49233c329a60fDBd96a6BCbe6Fb",
"displayName": "EOA 45"
"displayName": "EOA 47"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * pause and unpause Gateway minting ",
"discoveryDrivenData": true
},
{
"id": "EOA-46",
"name": "EOA 46",
"id": "EOA-48",
"name": "EOA 48",
"accounts": [
{
"address": "eth:0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"type": "EOA",
"isVerified": true,
"name": "0x6Fa6…42ad",
"url": "https://etherscan.io/address/0x6Fa60A88b42AFb0aEe6488826A58864B192442ad",
"displayName": "EOA 46"
"displayName": "EOA 48"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-48",
"name": "EOA 48",
"id": "EOA-50",
"name": "EOA 50",
"accounts": [
{
"address": "eth:0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"type": "EOA",
"isVerified": true,
"name": "0x7359…9a94",
"url": "https://etherscan.io/address/0x7359fD9aA258992eb4B6d9572c6f6c74Cf719a94",
"displayName": "EOA 48"
"displayName": "EOA 50"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * denylist addresses, preventing them from interacting with the GatewayWallet ",
"discoveryDrivenData": true
},
{
"id": "EOA-49",
"name": "EOA 49",
"id": "EOA-51",
"name": "EOA 51",
"accounts": [
{
"address": "eth:0x740F494cD63f87547FEc1591646720e5cC285846",
"type": "EOA",
"isVerified": true,
"name": "0x740F…5846",
"url": "https://etherscan.io/address/0x740F494cD63f87547FEc1591646720e5cC285846",
"displayName": "EOA 49"
"displayName": "EOA 51"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-56",
"name": "EOA 56",
"id": "EOA-58",
"name": "EOA 58",
"accounts": [
{
"address": "eth:0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"type": "EOA",
"isVerified": true,
"name": "0x7D15…ae0E",
"url": "https://etherscan.io/address/0x7D1565698cddf4C8f90d6b8574729fef565cae0E",
"displayName": "EOA 56"
"displayName": "EOA 58"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * set the local TokenMessenger, token controller, pauser, rescuer, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-57",
"name": "EOA 57",
"id": "EOA-59",
"name": "EOA 59",
"accounts": [
{
"address": "eth:0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"type": "EOA",
"isVerified": true,
"name": "0x7e57…ae1c",
"url": "https://etherscan.io/address/0x7e575bC81e8a4A57f841512fbE72ed4C9976ae1c",
"displayName": "EOA 57"
"displayName": "EOA 59"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayMinter\n * denylist addresses, preventing them from interacting with the GatewayMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-59",
"name": "EOA 59",
"id": "EOA-61",
"name": "EOA 61",
"accounts": [
{
"address": "eth:0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"type": "EOA",
"isVerified": true,
"name": "0x807a…95d2",
"url": "https://etherscan.io/address/0x807a96288A1A408dBC13DE2b1d087d10356395d2",
"displayName": "EOA 59"
"displayName": "EOA 61"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * USD Coin Token ",
"discoveryDrivenData": true
},
{
"id": "EOA-60",
"name": "EOA 60",
"id": "EOA-62",
"name": "EOA 62",
"accounts": [
{
"address": "eth:0x817ae4109dC0f21E437b94c899962690514Ba09f",
"type": "EOA",
"isVerified": true,
"name": "0x817a…a09f",
"url": "https://etherscan.io/address/0x817ae4109dC0f21E437b94c899962690514Ba09f",
"displayName": "EOA 60"
"displayName": "EOA 62"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * pause and unpause minting and burning through this TokenMinter ",
"discoveryDrivenData": true
},
{
"id": "EOA-65",
"name": "EOA 65",
"id": "EOA-67",
"name": "EOA 67",
"accounts": [
{
"address": "eth:0x8a9A13A106cB89E15410B2AB4488135155032169",
"type": "EOA",
"isVerified": true,
"name": "0x8a9A…2169",
"url": "https://etherscan.io/address/0x8a9A13A106cB89E15410B2AB4488135155032169",
"displayName": "EOA 65"
"displayName": "EOA 67"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * link or unlink remote tokens and configure per-message burn limits ",
"discoveryDrivenData": true
},
{
"id": "EOA-73",
"name": "EOA 73",
"id": "EOA-75",
"name": "EOA 75",
"accounts": [
{
"address": "eth:0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"type": "EOA",
"isVerified": true,
"name": "0x96D1…EB41",
"url": "https://etherscan.io/address/0x96D16c491aDA31f609eC72Ae33018b8B7e80EB41",
"displayName": "EOA 73"
"displayName": "EOA 75"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinter\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-74",
"name": "EOA 74",
"id": "EOA-76",
"name": "EOA 76",
"accounts": [
{
"address": "eth:0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"type": "EOA",
"isVerified": true,
"name": "0x9812…5b19",
"url": "https://etherscan.io/address/0x9812d5F0a0832d9A0a78a1ba728fACd87bC35b19",
"displayName": "EOA 74"
"displayName": "EOA 76"
}
],
"chain": "ethereum",
"description": "* Can interact with GatewayWallet\n * pause and unpause deposits, burns, and withdrawals ",
"discoveryDrivenData": true
},
{
"id": "EOA-78",
"name": "EOA 78",
"id": "EOA-80",
"name": "EOA 80",
"accounts": [
{
"address": "eth:0xa820A620F638114F3Eb45df87382383322dDBC49",
"type": "EOA",
"isVerified": true,
"name": "0xa820…BC49",
"url": "https://etherscan.io/address/0xa820A620F638114F3Eb45df87382383322dDBC49",
"displayName": "EOA 78"
"displayName": "EOA 80"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * TokenMessengerV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-81-and-EOA-97",
"name": "EOA 81 and EOA 97",
"id": "EOA-83-and-EOA-99",
"name": "EOA 83 and EOA 99",
"accounts": [
{
"address": "eth:0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"type": "EOA",
"isVerified": true,
"name": "0xb0Ea…7361",
"url": "https://etherscan.io/address/0xb0Ea8E1bE37F346C7EA7ec708834D0db18A17361",
"displayName": "EOA 81"
"displayName": "EOA 83"
},
{
"address": "eth:0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"type": "EOA",
"isVerified": true,
"name": "0xE2fE…01CA",
"url": "https://etherscan.io/address/0xE2fEfe09E74b921CbbFF229E7cD40009231501CA",
"displayName": "EOA 97"
"displayName": "EOA 99"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: MessageTransmitter → TokenMessenger → TokenMinter]",
"discoveryDrivenData": true
},
{
"id": "EOA-82",
"name": "EOA 82",
"id": "EOA-84",
"name": "EOA 84",
"accounts": [
{
"address": "eth:0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"type": "EOA",
"isVerified": true,
"name": "0xB43a…9F65",
"url": "https://etherscan.io/address/0xB43aA882f497c0Ecb395A5a54f8fa29d12289F65",
"displayName": "EOA 82"
"displayName": "EOA 84"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * set the attester manager, pauser, rescuer, maximum message body size, and transfer ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-83",
"name": "EOA 83",
"id": "EOA-85",
"name": "EOA 85",
"accounts": [
{
"address": "eth:0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"type": "EOA",
"isVerified": true,
"name": "0xB72F…7ADe",
"url": "https://etherscan.io/address/0xB72F2Bb8AD7aDB4e40e3ACD8F34160B4991e7ADe",
"displayName": "EOA 83"
"displayName": "EOA 85"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * mint the token in the bounds of a preset minting allowance [via: GatewayWallet]",
"discoveryDrivenData": true
},
{
"id": "EOA-84",
"name": "EOA 84",
"id": "EOA-86",
"name": "EOA 86",
"accounts": [
{
"address": "eth:0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"type": "EOA",
"isVerified": true,
"name": "0xB756…2258",
"url": "https://etherscan.io/address/0xB7569E9eB64eaEd5C4166E510b4F6fF54ef42258",
"displayName": "EOA 84"
"displayName": "EOA 86"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * MessageTransmitterV2 ",
"discoveryDrivenData": true
},
{
"id": "EOA-85",
"name": "EOA 85",
"id": "EOA-87",
"name": "EOA 87",
"accounts": [
{
"address": "eth:0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"type": "EOA",
"isVerified": true,
"name": "0xBED4…fbc9",
"url": "https://etherscan.io/address/0xBED4b046f7d185d730E9930b2bcddc86Eb3cfbc9",
"displayName": "EOA 85"
"displayName": "EOA 87"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMessengerV2\n * denylist addresses, preventing them from interacting with this TokenMessenger ",
"discoveryDrivenData": true
},
{
"id": "EOA-86",
"name": "EOA 86",
"id": "EOA-88",
"name": "EOA 88",
"accounts": [
{
"address": "eth:0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"type": "EOA",
"isVerified": true,
"name": "0xc16b…c95a",
"url": "https://etherscan.io/address/0xc16b03F84563C1467017C9F7216F8ad6098dc95a",
"displayName": "EOA 86"
"displayName": "EOA 88"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitterV2\n * enable or disable attesters and set the attestation signature threshold ",
"discoveryDrivenData": true
},
{
"id": "EOA-89",
"name": "EOA 89",
"id": "EOA-91",
"name": "EOA 91",
"accounts": [
{
"address": "eth:0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"type": "EOA",
"isVerified": true,
"name": "0xc809…C4ed",
"url": "https://etherscan.io/address/0xc809b0216B149cc301Cb203EDD84FCdB8F15C4ed",
"displayName": "EOA 89"
"displayName": "EOA 91"
}
],
"chain": "ethereum",
"description": "* Can interact with MessageTransmitter\n * pause and unpause message transmission and receiving ",
"discoveryDrivenData": true
},
{
"id": "EOA-96",
"name": "EOA 96",
"id": "EOA-98",
"name": "EOA 98",
"accounts": [
{
"address": "eth:0xE206be2331d6aAa4495887755BaBE892aecE704A",
"type": "EOA",
"isVerified": true,
"name": "0xE206…704A",
"url": "https://etherscan.io/address/0xE206be2331d6aAa4495887755BaBE892aecE704A",
"displayName": "EOA 96"
"displayName": "EOA 98"
}
],
"chain": "ethereum",
"description": "* Can interact with TokenMinterV2\n * transfer any ERC-20 tokens out of the contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-106",
"name": "EOA 106",
"id": "EOA-109",
"name": "EOA 109",
"accounts": [
{
"address": "eth:0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"type": "EOA",
"isVerified": true,
"name": "0xFcb1…AE3a",
"url": "https://etherscan.io/address/0xFcb19e6a322b27c06842A71e8c725399f049AE3a",
"displayName": "EOA 106"
"displayName": "EOA 109"
}
],
"chain": "ethereum",
"description": "* Can interact with USD Coin Token\n * manage all critical roles like pausers, blacklisters, minters, rescuer ",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "circle-gateway",
"bridgeType": "burnAndMint"
}
],
"transfersTimeMode": "unknown",
"type": "multichain"
}
+14 -0
+14 -0
[
{
"id": "1f72cf8d",
"date": "Thu, 01 Oct 2026 11:10:29 GMT",
"timestamp": 1790850976,
"description": "DLN on Ethereum enabled two new chains (Tempo, chain ID 4217 and Arc, chain ID 5042) in `DlnSource.dlnDestinationAddressesMap` and `DlnDestination.dlnSourceAddressesMap`. The counterparts are configured at the same addresses as on Ethereum.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract DlnDestination (eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f) [debridge/DlnDestination] {\n +++ description: Destination side of the deBridge Liquidity Network (DLN) intent protocol: takers fulfill orders here permissionlessly by paying the 'take' amount, which is forwarded to the order recipient in the same transaction (this contract holds no user funds). The taker then sends an unlock message back to the source chain's DlnSource through the deBridge messaging protocol to claim the escrowed maker funds.\n+++ description: The admin-configured DlnSource address per source chain ID, used as the receiver of outbound unlock/cancel messages.\n values.dlnSourceAddressesMap.4217:\n+ \"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\"\n+++ description: The admin-configured DlnSource address per source chain ID, used as the receiver of outbound unlock/cancel messages.\n values.dlnSourceAddressesMap.5042:\n+ \"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\"\n }\n```\n\n```diff\n contract DlnSource (eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66) [debridge/DlnSource] {\n +++ description: Source-side escrow of the deBridge Liquidity Network (DLN) intent protocol: users lock the 'give' funds of a cross-chain order directly in this contract. Funds are released to the taker (claimUnlock) or refunded to the maker (claimCancel) only on a message from the DlnDestination configured for the order's destination chain, authenticated via the CallProxy of the deBridge messaging protocol (i.e. ultimately by deBridge validator signatures).\n+++ description: The admin-configured DlnDestination address per destination chain ID. Messages authenticated as coming from these addresses can unlock or refund all escrowed order funds.\n values.dlnDestinationAddressesMap.4217:\n+ \"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\"\n+++ description: The admin-configured DlnDestination address per destination chain ID. Messages authenticated as coming from these addresses can unlock or refund all escrowed order funds.\n values.dlnDestinationAddressesMap.5042:\n+ \"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\"\n }\n```"
}
]
},
{
"id": "3c878efb",
"date": "Tue, 01 Sep 2026 13:08:53 GMT",
"timestamp": 1788265000,
"description": "Add more signature verification modes (incl delegation): https://disco.l2beat.com/diff/eth:0xcfa67cDc75FFaac55bbf92f012cC75f47f479c35/eth:0xFf09c2C917180cDDb5d217073dd774fAA4A47677",
"isHighSeverity": true,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract DeBridgeIntentManager (eth:0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708) [debridge/DeBridgeIntentManager] {\n +++ description: Fills user-signed intents by creating DLN orders on their behalf: it pulls input tokens from users through the DeBridgeAllowanceHolder and forwards them into DlnSource in the same transaction, charging a variable fee that is not part of the user-signed intent.\n sourceHashes.1:\n- \"0xab4d827474b8362b953864f2ccb0de7e02c8c7150914446ea11c4c3f64413967\"\n+ \"0x8bc472a2f0e9dd05e3781fa6f0e5b4bedc8e395196df151a26af1120fa398c8c\"\n values.$implementation:\n- \"eth:0xcfa67cDc75FFaac55bbf92f012cC75f47f479c35\"\n+ \"eth:0xFf09c2C917180cDDb5d217073dd774fAA4A47677\"\n values.$pastUpgrades.2:\n+ [\"2026-08-31T18:05:47.000Z\",\"0x42218e55e5eab2e3c79d608b6302fd5dec0750f4426a55ed69d8564ed4a8dfb8\",[\"eth:0xFf09c2C917180cDDb5d217073dd774fAA4A47677\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.version:\n- \"2.1.0\"\n+ \"2.3.0\"\n implementationNames.eth:0xcfa67cDc75FFaac55bbf92f012cC75f47f479c35:\n- \"DeBridgeIntentManager\"\n implementationNames.eth:0xFf09c2C917180cDDb5d217073dd774fAA4A47677:\n+ \"DeBridgeIntentManager\"\n }\n```"
}
]
},
{
"id": "5d04b105",
"date": "Thu, 20 Aug 2026 13:17:37 GMT",
"timestamp": 1787230295,
"description": "Verified source code of 3 proxy admins and external call executor. The sources of two more contract were not identified",
"isHighSeverity": false,
"changeCount": 24,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract ProxyAdmin (eth:0x368Fa5E37EF1aCefF359Dc2E9DC7393C1CbCC4A3) [global/ProxyAdmin] {\n +++ description: None\n name:\n- \"\"\n+ \"ProxyAdmin\"\n unverified:\n- true\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n implementationNames.eth:0x368Fa5E37EF1aCefF359Dc2E9DC7393C1CbCC4A3:\n- \"\"\n+ \"ProxyAdmin\"\n template:\n+ \"global/ProxyAdmin\"\n sourceHashes:\n+ [\"0x8fd8f837bb320bd2a7463c103bea2ff207b0969b5795f320a6c868858aa92074\"]\n }\n```\n\n```diff\n contract ProxyAdmin (eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F) [global/ProxyAdmin] {\n +++ description: None\n name:\n- \"\"\n+ \"ProxyAdmin\"\n unverified:\n- true\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n implementationNames.eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F:\n- \"\"\n+ \"ProxyAdmin\"\n template:\n+ \"global/ProxyAdmin\"\n sourceHashes:\n+ [\"0x8fd8f837bb320bd2a7463c103bea2ff207b0969b5795f320a6c868858aa92074\"]\n }\n```\n\n```diff\n contract ExternalCallExecutor (eth:0xAE0361b1C3454b297129e01046057F1D294c7974) [N/A] {\n +++ description: The default executor in the ExternalCallAdapter: it executes external calldata attached to DLN orders.\n unverified:\n- true\n description:\n- \"Unverified contract registered as the default executor in the ExternalCallAdapter: it executes external calldata attached to DLN orders.\"\n+ \"The default executor in the ExternalCallAdapter: it executes external calldata attached to DLN orders.\"\n values.ADAPTER_ROLE:\n+ \"0xdbeb657137b1822b3d5418bea6fd641226d964b4c3871ef23546db2622258871\"\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n implementationNames.eth:0xAE0361b1C3454b297129e01046057F1D294c7974:\n- \"\"\n+ \"ExternalCallExecutor\"\n sourceHashes:\n+ [\"0x6c5aae59f2a5722455f7f6b27b17e514a918ab56299c83ae29aed90c2f8863b0\"]\n }\n```\n\n```diff\n contract ProxyAdmin (eth:0xb54CD1e74f232C6de444464C81f81D13E6978816) [global/ProxyAdmin] {\n +++ description: None\n name:\n- \"\"\n+ \"ProxyAdmin\"\n unverified:\n- true\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n implementationNames.eth:0xb54CD1e74f232C6de444464C81f81D13E6978816:\n- \"\"\n+ \"ProxyAdmin\"\n template:\n+ \"global/ProxyAdmin\"\n sourceHashes:\n+ [\"0x8fd8f837bb320bd2a7463c103bea2ff207b0969b5795f320a6c868858aa92074\"]\n }\n```"
}
]
},
{
"id": "77235d02",
"date": "Tue, 18 Aug 2026 06:41:07 GMT",
"timestamp": 1787035190,
"description": "Common theme: support for fee-on-transfer/rebasing tokens on the fulfillment path by measuring actual received amounts instead of requiring exact transfers.\n\n- DlnSource 1.7.1 -> 1.8.0 ([impl diff](https://disco.l2beat.com/diff/eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF/eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611))\n- DlnDestination 1.7.0 -> 1.7.1 ([impl diff](https://disco.l2beat.com/diff/eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5/eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e))\n- ExternalCallAdapter 1.1.0 -> 1.2.0 ([impl diff](https://disco.l2beat.com/diff/eth:0x7EA200f06c17cB9f64A3c8973a76DD8359fd68FA/eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1))\n- DeBridgeRouter 3.1.0 -> 3.2.0 ([impl diff](https://disco.l2beat.com/diff/eth:0x3c857eD51c8a2747EE8c6F30EdDA5ea0D487CC64/eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3))\n\nNo significant permission or governance changes",
"isHighSeverity": true,
"changeCount": 29,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ExternalCallAdapter (eth:0x61eF2e01E603aEB5Cd96F9eC9AE76cc6A68f6cF9) [debridge/ExternalCallAdapter] {\n +++ description: Escrow and dispatcher for external calls attached to DLN orders: it receives the taker's funds of orders that carry calldata and releases them when the calldata is executed by the registered executor, or refunds the order authority on cancellation.\n sourceHashes.1:\n- \"0x9e1d6978ce2fd4ad04aa5969d3bcef97fd54b2ded7c0d62599131196aec314dc\"\n+ \"0x18bbebb819a937958472cbe9848d10adb1983dbffea723e7ba5e79e2ac6a50f2\"\n values.$implementation:\n- \"eth:0x7EA200f06c17cB9f64A3c8973a76DD8359fd68FA\"\n+ \"eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1\"\n values.$pastUpgrades.3:\n+ [\"2026-08-17T10:20:35.000Z\",\"0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb\",[\"eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.version:\n- \"1.1.0\"\n+ \"1.2.0\"\n implementationNames.eth:0x7EA200f06c17cB9f64A3c8973a76DD8359fd68FA:\n- \"DlnExternalCallAdapter\"\n implementationNames.eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1:\n+ \"DlnExternalCallAdapter\"\n }\n```\n\n```diff\n contract DeBridgeRouter (eth:0x663DC15D3C1aC63ff12E45Ab68FeA3F0a883C251) [debridge/DeBridgeRouter] {\n +++ description: Optional periphery router that can swap input tokens via whitelisted DEX routers and forward the proceeds into the DLN contracts (order creation, or order fulfillment on the hardcoded DlnDestination via fillCrossChain) in a single transaction. It does not custody funds across transactions and is not part of the DLN critical path.\n sourceHashes.1:\n- \"0xfbd0e32e74cd0871ed9aaf242684ccae1423b67493f683b6c31d4282d6813a6a\"\n+ \"0xbb3368874361b195a217b8488d3a15b0b0f5a6e5a1189b88964a97715889bbc8\"\n values.$implementation:\n- \"eth:0x3c857eD51c8a2747EE8c6F30EdDA5ea0D487CC64\"\n+ \"eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3\"\n values.$pastUpgrades.10:\n+ [\"2026-08-17T10:20:35.000Z\",\"0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb\",[\"eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3\"]]\n values.$upgradeCount:\n- 10\n+ 11\n values.version:\n- 310\n+ 320\n values.dlnDestination:\n+ \"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\"\n implementationNames.eth:0x3c857eD51c8a2747EE8c6F30EdDA5ea0D487CC64:\n- \"DeBridgeRouter\"\n implementationNames.eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3:\n+ \"DeBridgeRouter\"\n }\n```\n\n```diff\n contract DlnDestination (eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f) [debridge/DlnDestination] {\n +++ description: Destination side of the deBridge Liquidity Network (DLN) intent protocol: takers fulfill orders here permissionlessly by paying the 'take' amount, which is forwarded to the order recipient in the same transaction (this contract holds no user funds). The taker then sends an unlock message back to the source chain's DlnSource through the deBridge messaging protocol to claim the escrowed maker funds.\n sourceHashes.1:\n- \"0x925d0cfe1e1388a72765060d6905fa5bfd29e5a50bf4dcd11c2747a9d3097825\"\n+ \"0xcca702480efa62cd07a9ea9b50d25bd2fec07bdb974ed969b52461235e056c6b\"\n values.$implementation:\n- \"eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5\"\n+ \"eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e\"\n values.$pastUpgrades.5:\n+ [\"2026-08-17T10:20:35.000Z\",\"0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb\",[\"eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.version:\n- \"1.7.0\"\n+ \"1.7.1\"\n implementationNames.eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5:\n- \"DlnDestination\"\n implementationNames.eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e:\n+ \"DlnDestination\"\n }\n```\n\n```diff\n contract DlnSource (eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66) [debridge/DlnSource] {\n +++ description: Source-side escrow of the deBridge Liquidity Network (DLN) intent protocol: users lock the 'give' funds of a cross-chain order directly in this contract. Funds are released to the taker (claimUnlock) or refunded to the maker (claimCancel) only on a message from the DlnDestination configured for the order's destination chain, authenticated via the CallProxy of the deBridge messaging protocol (i.e. ultimately by deBridge validator signatures).\n sourceHashes.1:\n- \"0x1ee6b36758f7c1cb71e4ed6d4e731d42a09413cdfeaf71a16c0554633c6047c9\"\n+ \"0x1a65dd672c1d690b7748bf1c367c91be2553be1610e4efa604279e7855978cb5\"\n values.$implementation:\n- \"eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF\"\n+ \"eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611\"\n values.$pastUpgrades.5:\n+ [\"2026-08-17T10:20:35.000Z\",\"0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb\",[\"eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.version:\n- \"1.7.1\"\n+ \"1.8.0\"\n implementationNames.eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF:\n- \"DlnSource\"\n implementationNames.eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611:\n+ \"DlnSource\"\n }\n```"
}
]
},
{
"id": "cc7f70c0",
"date": "Fri, 14 Aug 2026 11:20:27 GMT",
"timestamp": 1786706330,
"description": "Full rediscovery of deBridge on Ethereum for the interop research: extended the discovery from the DeBridgeGate messaging/token bridge to the complete deployed stack including DLN (DlnSource/DlnDestination), the external call contracts (ExternalCallAdapter, unverified ExternalCallExecutor), the periphery DeBridgeRouter, and the new intent-manager stack (DeBridgeIntentManager, DeBridgeAllowanceHolder, IntentManagerValidator). Added debridge/* templates with descriptions and dynamic permissions (validator set, admin roles, fee collector, governance cancel role, allowance holder spender role). Notable: the intent-manager stack is administered and upgradeable by a single EOA (0x844e5b...) via unverified ProxyAdmins, unlike the multisig-governed core.",
"isHighSeverity": true,
"changeCount": 61,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x391276932b5105C2DB8eE928dfd8872564d6d246) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"description\":\"withdraw accumulated DLN protocol fees (not user principal) to itself.\",\"role\":\".feeCollectorAC\"}\n }\n```\n\n```diff\n contract Admin Multisig (eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5) [GnosisSafe] {\n +++ description: None\n receivedPermissions.9:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"description\":\"set the trusted DlnSource address (message receiver) for each supported chain, replace the external call adapter that custodies funds of orders with attached calldata, unpause the contract, and grant/revoke all roles.\",\"role\":\".defaultAdminAC\"}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"description\":\"set the trusted DlnDestination address for each supported chain (a malicious address there can drain all escrowed order funds via forged unlock messages), change DLN fees without upper bound, unpause the contract, and grant/revoke all roles.\",\"role\":\".defaultAdminAC\"}\n }\n```\n\n```diff\n contract DlnDestination (eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f) [debridge/DlnDestination] {\n +++ description: Destination side of the deBridge Liquidity Network (DLN) intent protocol: takers fulfill orders here permissionlessly by paying the 'take' amount, which is forwarded to the order recipient in the same transaction (this contract holds no user funds). The taker then sends an unlock message back to the source chain's DlnSource through the deBridge messaging protocol to claim the escrowed maker funds.\n sourceHashes.1:\n- \"0x5ed9ca82d8103a5414cd152cef8ee9140f15a2e0e8dc0a36b7074ccb95098566\"\n+ \"0x925d0cfe1e1388a72765060d6905fa5bfd29e5a50bf4dcd11c2747a9d3097825\"\n values.$implementation:\n- \"eth:0x33B72F60F2CEB7BDb64873Ac10015a35bed81717\"\n+ \"eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5\"\n values.$pastUpgrades.4:\n+ [\"2026-02-13T12:08:35.000Z\",\"0xf187915dcb7b435138135f96d4a9bf6f606255d5247b00f0282afd2516bc02d2\",[\"eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.chainEngines:\n- [0,0,0,0,0]\n values.dlnSourceAddresses:\n- [\"0x\",\"0x\",\"0x\",\"0x\",\"0x\"]\n+++ description: Maximum number of orders that can be unlocked in a single batch message to an EVM source chain.\n values.maxOrderCountPerBatchEvmUnlock:\n- 10\n+ 50\n values.version:\n- \"1.3.0\"\n+ \"1.7.0\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5\"]},\"GOVERNANCE_DELEGATED_ORDER_CANCEL_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x0746e7e4d15F30885616B4ac3D274393354E80c0\"]}}\n values.defaultAdminAC:\n+ [\"eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5\"]\n+++ description: The admin-configured DlnSource address per source chain ID, used as the receiver of outbound unlock/cancel messages.\n values.dlnSourceAddressesMap:\n+ {\"10\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"56\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"137\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"250\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"4663\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"8453\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"42161\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"43114\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"59144\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"7565164\":\"0x0d0720fe448de59d8811e24d6df917dc8d0d98b392ddf4dd2b622a747a60fded\",\"100000001\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000002\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000003\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000004\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000005\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000006\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000008\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000009\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000010\":\"eth:0xA13771CAbd2e44dcA8DeA846cc954D1FbAc0623b\",\"100000012\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000013\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000014\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000015\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000017\":\"eth:0xA13771CAbd2e44dcA8DeA846cc954D1FbAc0623b\",\"100000019\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000020\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000021\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000022\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000023\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000024\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000025\":\"eth:0xA13771CAbd2e44dcA8DeA846cc954D1FbAc0623b\",\"100000026\":\"eth:0xE6f924E3C42350684aF70F798c3cA2533A4c5Bd0\",\"100000027\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000028\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000029\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000030\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\",\"100000031\":\"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\"}\n values.govCancelAC:\n+ [\"eth:0x0746e7e4d15F30885616B4ac3D274393354E80c0\"]\n values.GOVERNANCE_DELEGATED_ORDER_CANCEL_ROLE:\n+ \"0x01bd451848033b83db2d5c21b44e19dc2cf0e3067ae17fafefe1ac665572eeb3\"\n values.subscriptionId:\n+ 0\n errors:\n- {\"chainEngines\":\"Processing error occurred.\",\"dlnSourceAddresses\":\"Processing error occurred.\"}\n implementationNames.eth:0x33B72F60F2CEB7BDb64873Ac10015a35bed81717:\n- \"DlnDestination\"\n implementationNames.eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5:\n+ \"DlnDestination\"\n template:\n+ \"debridge/DlnDestination\"\n description:\n+ \"Destination side of the deBridge Liquidity Network (DLN) intent protocol: takers fulfill orders here permissionlessly by paying the 'take' amount, which is forwarded to the order recipient in the same transaction (this contract holds no user funds). The taker then sends an unlock message back to the source chain's DlnSource through the deBridge messaging protocol to claim the escrowed maker funds.\"\n fieldMeta:\n+ {\"dlnSourceAddressesMap\":{\"description\":\"The admin-configured DlnSource address per source chain ID, used as the receiver of outbound unlock/cancel messages.\"},\"externalCallAdapter\":{\"description\":\"Admin-settable contract that receives the taker's funds of orders carrying attached calldata before executing it (a malicious adapter could steal the funds of every such order).\"},\"maxOrderCountPerBatchEvmUnlock\":{\"description\":\"Maximum number of orders that can be unlocked in a single batch message to an EVM source chain.\"}}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract DlnSource (eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66) [debridge/DlnSource] {\n +++ description: Source-side escrow of the deBridge Liquidity Network (DLN) intent protocol: users lock the 'give' funds of a cross-chain order directly in this contract. Funds are released to the taker (claimUnlock) or refunded to the maker (claimCancel) only on a message from the DlnDestination configured for the order's destination chain, authenticated via the CallProxy of the deBridge messaging protocol (i.e. ultimately by deBridge validator signatures).\n sourceHashes.1:\n- \"0x9523aef2a126e91098e5c19a00872b86dc7fee8ba257f2015672763d85b2b683\"\n+ \"0x1ee6b36758f7c1cb71e4ed6d4e731d42a09413cdfeaf71a16c0554633c6047c9\"\n values.$implementation:\n- \"eth:0xbF20cB9614a0059bBe4b599d1D04358aFe31eDfb\"\n+ \"eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF\"\n values.$pastUpgrades.3:\n+ [\"2025-09-15T11:47:11.000Z\",\"0xf1d50e3b14cf974394d925c71087896c185c14c9e79506744a9fd57d5f2aa738\",[\"eth:0xe13a85137f8752AbE4c5A614Dc3BaF396b00308D\"]]\n values.$pastUpgrades.4:\n+ [\"2025-12-08T14:40:11.000Z\",\"0x25b20353a5814918c4c569e1f9e8fede74138c9b7ab2043428a60f1c632d0ce6\",[\"eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF\"]]\n values.$upgradeCount:\n- 3\n+ 5\n values.chainEngines:\n- [0,0,0,0,0]\n values.dlnDestinationAddresses:\n- [\"0x\",\"0x\",\"0x\",\"0x\",\"0x\"]\n values.version:\n- \"1.5.0\"\n+ \"1.7.1\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5\"]},\"FEE_COLLECTOR_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x391276932b5105C2DB8eE928dfd8872564d6d246\"]}}\n values.defaultAdminAC:\n+ [\"eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5\"]\n+++ description: The admin-configured DlnDestination address per destination chain ID. Messages authenticated as coming from these addresses can unlock or refund all escrowed order funds.\n values.dlnDestinationAddressesMap:\n+ {\"10\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"56\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"137\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"250\":\"0x\",\"4663\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"8453\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"42161\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"43114\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"59144\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"7565164\":\"0xa192b7f8b3eddc1e930a8e141564bb0ddc9d23f607cf13fd3a9fc15a638ed033\",\"100000001\":\"0x\",\"100000002\":\"0x\",\"100000003\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000004\":\"0x\",\"100000005\":\"0x\",\"100000006\":\"0x\",\"100000008\":\"0x\",\"100000009\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000010\":\"0x\",\"100000012\":\"0x\",\"100000013\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000014\":\"0x\",\"100000015\":\"0x\",\"100000017\":\"0x\",\"100000019\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000020\":\"0x\",\"100000021\":\"0x\",\"100000022\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000023\":\"0x\",\"100000024\":\"0x\",\"100000025\":\"0x\",\"100000026\":\"eth:0xe8E2948B1E24E05C017aca0dCe44630595c464eb\",\"100000027\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000028\":\"0x\",\"100000029\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000030\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\",\"100000031\":\"eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f\"}\n values.feeCollectorAC:\n+ [\"eth:0x391276932b5105C2DB8eE928dfd8872564d6d246\"]\n values.intentManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n+++ description: Immutable allowlist contract: addresses it validates can create orders with custom or zero protocol fees (createSaltedOrderForIntent).\n values.intentManagerRights:\n+ \"eth:0x4247c6f71407359E4C8D29787E98D752F264CD4b\"\n errors:\n- {\"chainEngines\":\"Processing error occurred.\",\"dlnDestinationAddresses\":\"Processing error occurred.\"}\n implementationNames.eth:0xbF20cB9614a0059bBe4b599d1D04358aFe31eDfb:\n- \"DlnSource\"\n implementationNames.eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF:\n+ \"DlnSource\"\n template:\n+ \"debridge/DlnSource\"\n description:\n+ \"Source-side escrow of the deBridge Liquidity Network (DLN) intent protocol: users lock the 'give' funds of a cross-chain order directly in this contract. Funds are released to the taker (claimUnlock) or refunded to the maker (claimCancel) only on a message from the DlnDestination configured for the order's destination chain, authenticated via the CallProxy of the deBridge messaging protocol (i.e. ultimately by deBridge validator signatures).\"\n fieldMeta:\n+ {\"dlnDestinationAddressesMap\":{\"description\":\"The admin-configured DlnDestination address per destination chain ID. Messages authenticated as coming from these addresses can unlock or refund all escrowed order funds.\"},\"globalFixedNativeFee\":{\"description\":\"Flat protocol fee in native tokens charged per order (refunded if the order is cancelled).\"},\"globalTransferFeeBps\":{\"description\":\"Variable protocol fee in basis points deducted from the order's give amount (no upper bound check; admin changes apply to new orders immediately).\"},\"intentManagerRights\":{\"description\":\"Immutable allowlist contract: addresses it validates can create orders with custom or zero protocol fees (createSaltedOrderForIntent).\"}}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x0746e7e4d15F30885616B4ac3D274393354E80c0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (eth:0x368Fa5E37EF1aCefF359Dc2E9DC7393C1CbCC4A3) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract IntentManagerValidator (eth:0x4247c6f71407359E4C8D29787E98D752F264CD4b) [debridge/IntentManagerValidator]\n +++ description: Immutable allowlist contract referenced by DlnSource: addresses holding the INTENT_MANAGER_ROLE can create DLN orders with custom or zero protocol fees. It grants no access to existing funds.\n```\n\n```diff\n+ Status: CREATED\n contract (eth:0x6D83EAEb957986FEA14Ff0E88AF23736598e22cc) [N/A]\n +++ description: Unverified proxy referenced as the feeTreasury of the DeBridgeIntentManager.\n```\n\n```diff\n+ Status: CREATED\n contract (eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (eth:0xb54CD1e74f232C6de444464C81f81D13E6978816) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07) [N/A]\n +++ description: Unverified proxy holding the INTENT_MANAGER_ROLE on the IntentManagerValidator, allowing it to create DLN orders with custom or zero protocol fees.\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeAllowanceHolder (eth:0xddddddddd4B6472c5002F95610b194D1161223d0) [debridge/DeBridgeAllowanceHolder]\n +++ description: Immutable allowance sink of the deBridge intent system: users approve this contract (directly or as Permit2 spender) so that the upgradeable executor contracts never hold approvals themselves. Its transfer functions carry no intent-level checks: any ALLOWED_SPENDER_ROLE holder can move any approved token from any approver to any recipient.\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeIntentManager (eth:0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708) [debridge/DeBridgeIntentManager]\n +++ description: Fills user-signed intents by creating DLN orders on their behalf: it pulls input tokens from users through the DeBridgeAllowanceHolder (Permit2 or direct approvals) and forwards them into DlnSource in the same transaction, charging a variable fee that is NOT part of the user-signed intent. It is non-custodial in steady state. Note that the EIP-712 signature users sign covers only an opaque intent hash, and fills are permissionless unless the intent restricts senders.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ExternalCallAdapter (eth:0x61eF2e01E603aEB5Cd96F9eC9AE76cc6A68f6cF9) [debridge/ExternalCallAdapter]\n +++ description: Escrow and dispatcher for external calls attached to DLN orders: it receives the taker's funds of orders that carry calldata and releases them when the calldata is executed by the registered executor, or refunds the order authority on cancellation.\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeRouter (eth:0x663DC15D3C1aC63ff12E45Ab68FeA3F0a883C251) [debridge/DeBridgeRouter]\n +++ description: Optional periphery router that can swap input tokens via whitelisted DEX routers and forward the proceeds into the DLN contracts in a single transaction. It does not custody funds across transactions and is not part of the DLN critical path.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xA7b88A746FA457578D5abd6234471f07D895F46b) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ExternalCallExecutor (eth:0xAE0361b1C3454b297129e01046057F1D294c7974) [N/A]\n +++ description: Unverified contract registered as the default executor in the ExternalCallAdapter: it executes external calldata attached to DLN orders.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xC86ab72dc6da7eF91a96650f3BC23125cD997130) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DlnDestination (eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DlnSource (eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "6e5f0511",
"date": "Mon, 21 Jul 2025 10:11:14 GMT",
"timestamp": 1753092674,
"description": "SimpleFeeProxy [upgraded](https://disco.l2beat.com/diff/eth:0x37a52ddb753c924f8C914de65ef00b5210Caa83C/eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE):\n- flash loans removed\n- AMB function added (sends only message, no tokens)\n- treasury deprecated, fees can now be removed by a permissioned actor",
"isHighSeverity": true,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract GnosisSafe (0xa0D6062Be29710c666aE850395Ac1A2AeCd14885)\n +++ description: None\n```\n\n```diff\n contract SimpleFeeProxy (0xC2bAC0DB5B18B0c3225581Ba14BD0B448c623636) {\n +++ description: None\n sourceHashes.1:\n- \"0xc18d3818f9e809ced3dcce60fbe4287220ce2fced4f6c66711de5e704738bb9a\"\n+ \"0x90a1adff0012e17a22d9eb35cecd932a71923919b443758b02b2c43ad666a352\"\n values.$implementation:\n- \"eth:0x37a52ddb753c924f8C914de65ef00b5210Caa83C\"\n+ \"eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE\"\n values.$pastUpgrades.2:\n+ [\"2025-07-16T10:55:35.000Z\",\"0x2891ca2643f9cb857b006952744b633088f22b57a8a04495abec7b79a500f1e3\",[\"eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getChainId:\n- 1\n values.treasury:\n- \"eth:0xa0D6062Be29710c666aE850395Ac1A2AeCd14885\"\n values.version:\n- 400\n+ 410\n values.FEE_COLLECTOR_ROLE:\n+ \"0x2dca0f5ce7e75a4b43fe2b0d6f5d0b7a2bf92ecf89f8f0aa17b8308b67038821\"\n implementationNames.eth:0x37a52ddb753c924f8C914de65ef00b5210Caa83C:\n- \"SimpleFeeProxy\"\n implementationNames.eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE:\n+ \"SimpleFeeProxy\"\n }\n```"
}
]
},
{
"id": "de384fc2",
"date": "Mon, 14 Jul 2025 12:44:57 GMT",
"timestamp": 1752497097,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract DeBridgeGate (0x43dE2d77BF8027e25dBD179B491e8d64f38398aA)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Admin Multisig (0x6bec1faF33183e1Bc316984202eCc09d46AC92D5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeTokenDeployer (0x8244d6Ffe0695B30b2bAD424683Ee3bc534Ea464)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CallProxy (0x8a0C79F5532f3b2a16AD1E4282A5DAF81928a824)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SignatureVerifier (0x949b3B3c098348b879C9e4F15cecc8046d9C8A8c)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xa0D6062Be29710c666aE850395Ac1A2AeCd14885)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SimpleFeeProxy (0xC2bAC0DB5B18B0c3225581Ba14BD0B448c623636)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeToken (0xCAceBE8c354b70Fa6E3107f3F6F699e4Fbb3A98B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xE4427af3555CD9303D728C491364FAdFDD7494Fe)\n +++ description: None\n```"
}
]
}
]
+1 -1
+1 -1
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "DeBridgeGate",
"isVerified": true,
"address": "eth:0x43dE2d77BF8027e25dBD179B491e8d64f38398aA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe"
],
"implementations": [
"eth:0x797161BCC625155D2302251404ccB93c2632658e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1637595390,
"transactionHash": "0x1f191abb3e293e615df529fef0c7f1f0a9c5a9dacd44154c47df269d2a68d8b8",
"implementations": [
"eth:0xB1A20D1c885fd775df97396397d6f8F07Abdd20D"
]
},
{
"timestamp": 1639666435,
"transactionHash": "0x0cd2756ab739a46f966c013e709225d6e5e8a10f30bc0842b207205f6aa32670",
"implementations": [
"eth:0xFCe0502293dCacbFc2d663f7814b2771dEcfd576"
]
},
{
"timestamp": 1642498197,
"transactionHash": "0x7a4bc7d90aada3516e4fc057714f46e5b25dcaf4c2524e49148f5c317a04b149",
"implementations": [
"eth:0x51bFD427D06B2a5FC3588f9d023994A9f70e0Ce0"
]
},
{
"timestamp": 1645018041,
"transactionHash": "0x361b7193ffb8462e6ccb8a6237cbbf67f3367a08a9e8f781ac245f8b72c5783c",
"implementations": [
"eth:0xc8550d85759BAbE6851235212563Fa2Ff04961BF"
]
},
{
"timestamp": 1647346668,
"transactionHash": "0xd71afcf98347af3e96dc8ba6a61c4c9cdbb213e82893639945a1b8d4ab51d9e2",
"implementations": [
"eth:0x24455aa55DED7728783c9474bE8eA2f5C935f8EB"
]
},
{
"timestamp": 1671101939,
"transactionHash": "0x4c0887fede83ae4bb405125f1f08a3e6604ca712ae7c135de79e4595a9b408dd",
"implementations": [
"eth:0x797161BCC625155D2302251404ccB93c2632658e"
]
}
],
"description": "Central hub of the deBridge messaging protocol on this chain: it emits cross-chain submissions (asset transfers and/or arbitrary messages), locks and releases native assets, mints and burns deBridge-wrapped assets (deTokens), and executes claimed submissions after their validator signatures are checked by the SignatureVerifier. Claiming is permissionless: anyone can execute a submission that carries enough validator signatures.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig\n * **govMonitoring**: Admin Multisig",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "DeBridgeTokenDeployer",
"isVerified": true,
"address": "eth:0x8244d6Ffe0695B30b2bAD424683Ee3bc534Ea464",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe"
],
"implementations": [
"eth:0x4c7CA8fcFFE77281A8B81D4580CFf8257d785491"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1637613802,
"transactionHash": "0x291ee8bccd951b70182aee107393bc15fe0f12aa49d9759b196040f8c7ba219b",
"implementations": [
"eth:0x4c7CA8fcFFE77281A8B81D4580CFf8257d785491"
]
}
],
"description": "Deploys deBridge-wrapped token (deToken) contracts when an asset is bridged to this chain for the first time (callable only by the DeBridgeGate). All deTokens are beacon proxies whose beacon is this contract itself, so its tokenImplementation applies to every deToken on this chain at once.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **deBridgeTokenAdmin**: Admin Multisig\n * **defaultAdmin**: Admin Multisig",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "CallProxy",
"isVerified": true,
"address": "eth:0x8a0C79F5532f3b2a16AD1E4282A5DAF81928a824",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe"
],
"implementations": [
"eth:0xBd3d657AE87671eC6f8D6272A9f431a7c4a9B6f8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1637625277,
"transactionHash": "0x36e5d0f595838f33403445a5570b731087b16f2d7cb133aeb584f1ac1d444e3d",
"implementations": [
"eth:0x4e446b6Cf4d127827c83Ca0c848Db0B43841c391"
]
},
{
"timestamp": 1642498322,
"transactionHash": "0xc3bf11577e383e1292663bd254b218f4c4f4d9dd682a6d51f2a7149eb0991420",
"implementations": [
"eth:0xd5317E82BFEFf70b4773f0fcab5e2ABFA3c7D63b"
]
},
{
"timestamp": 1645016104,
"transactionHash": "0x580899ecfd63515c52fec86f09211a5c68fc6945256cd13ef45f5e4fc8aaba61",
"implementations": [
"eth:0x752A9e96e8683400ae238270C97c1D0160861fEF"
]
},
{
"timestamp": 1651500522,
"transactionHash": "0x6d3f1f876d002a58b8c95bc7ebcbd107bae9d1474e9e92125d83b4bec578a2da",
"implementations": [
"eth:0x0C4B79205F6Cc20c0E0201b61b99e77F3CE3B67A"
]
},
{
"timestamp": 1652966679,
"transactionHash": "0x883ba2edf63b460976d0de98a7089f3ea4d0a26257cfeb94af96d557e8e02f25",
"implementations": [
"eth:0xe5a04b307B31Af07F4DfCaA840952Ff7d3845c7e"
]
},
{
"timestamp": 1653739487,
"transactionHash": "0xd5a418a542f27929f6bbf34f70ce62607626d83b8503bda49bcef3e5e0591ce9",
"implementations": [
"eth:0xBd3d657AE87671eC6f8D6272A9f431a7c4a9B6f8"
]
}
],
"description": "Sandbox that executes arbitrary calldata attached to claimed cross-chain submissions on behalf of the DeBridgeGate. Calls are performed from this contract's address with attacker-choosable target and data, so external contracts must never trust it as a caller; it isolates such calls from the gate's balances.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "SignatureVerifier",
"isVerified": true,
"address": "eth:0x949b3B3c098348b879C9e4F15cecc8046d9C8A8c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe"
],
"implementations": [
"eth:0xfE7De3c1e1BD252C67667B56347cABFC6df08dF4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1637621914,
"transactionHash": "0xd8f65ce63f16eefd8816d0faa6c975cb1422ef4d6bbb58bd8e7507fb27b2dc5f",
"implementations": [
"eth:0x2a3e72eD893b5958690e16c3BBe1BD92137b6250"
]
},
{
"timestamp": 1639739366,
"transactionHash": "0x190291e3c01fd074908fb41309a0438c8458d7b7f0f659dcfc5d9dbb5ea3807f",
"implementations": [
"eth:0xfE7De3c1e1BD252C67667B56347cABFC6df08dF4"
]
}
],
"description": "Validation layer of the deBridge messaging protocol on this chain: it accepts a cross-chain submission if at least minConfirmations of the registered validators (oracles) have signed its submission ID with a plain ECDSA signature, and every validator flagged as 'required' has signed. There is no other proof system.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig\n * **oracleAddresses**: EOA 10, EOA 11, EOA 12, EOA 13, EOA 14, EOA 2, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "DlnDestination",
"isVerified": true,
"address": "eth:0xE7351Fd770A37282b91D153Ee690B63579D6dd7f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA7b88A746FA457578D5abd6234471f07D895F46b"
],
"implementations": [
"eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1670855123,
"transactionHash": "0xd606c6f939028171d2b15a50ac3af8f87d21a5623730d4ed45e5771980819393",
"implementations": [
"eth:0x60E50145db18e09fF2bB277e88D3C264FF57b91f"
]
},
{
"timestamp": 1692616259,
"transactionHash": "0xb7d8cfb77cd7ee0be426477583ed4597fe238e699cd690bdaf882371b9f98f0e",
"implementations": [
"eth:0x177c8AeDc61EFc47DE70616C89464c5d2A56E4AB"
]
},
{
"timestamp": 1692865787,
"transactionHash": "0xeada1e2b8eb5ca1dca54b7cd4e41c87dee29b6c9841fd05edd39f126edd8e539",
"implementations": [
"eth:0x979791C607a388702690599120c46332f61f592C"
]
},
{
"timestamp": 1694190863,
"transactionHash": "0xce0ae6434e2eca80d8a4efbfbe15f1fa7f9c8b32f4452fda42dcd9e34b9fef16",
"implementations": [
"eth:0x33B72F60F2CEB7BDb64873Ac10015a35bed81717"
]
},
{
"timestamp": 1770984515,
"transactionHash": "0xf187915dcb7b435138135f96d4a9bf6f606255d5247b00f0282afd2516bc02d2",
"implementations": [
"eth:0xE540eb6BfEE129d28d47E26Ad33a138d66FD78f5"
]
},
{
"timestamp": 1786962035,
"transactionHash": "0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb",
"implementations": [
"eth:0xD9b4f9CacFFB59F2B982ad3c45096e3AA4B4020e"
]
}
],
"description": "Destination side of the deBridge Liquidity Network (DLN) intent protocol: takers fulfill orders here permissionlessly by paying the 'take' amount, which is forwarded to the order recipient in the same transaction (this contract holds no user funds). The taker then sends an unlock message back to the source chain's DlnSource through the deBridge messaging protocol to claim the escrowed maker funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig\n * **govCancel**: EOA 1",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "DlnSource",
"isVerified": true,
"address": "eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA7b88A746FA457578D5abd6234471f07D895F46b"
],
"implementations": [
"eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1670855039,
"transactionHash": "0x45e08da232b5aea7adc3aaccd8ba54ced78667d11fc356eb46bce459a5289c85",
"implementations": [
"eth:0x95c99EA6D7e72e99F18049019a427A4a17C53A30"
]
},
{
"timestamp": 1694190863,
"transactionHash": "0xce0ae6434e2eca80d8a4efbfbe15f1fa7f9c8b32f4452fda42dcd9e34b9fef16",
"implementations": [
"eth:0x7Ec2E51A9c4f088354aD8Ad8703C12D81BF21677"
]
},
{
"timestamp": 1752663335,
"transactionHash": "0x2891ca2643f9cb857b006952744b633088f22b57a8a04495abec7b79a500f1e3",
"implementations": [
"eth:0xbF20cB9614a0059bBe4b599d1D04358aFe31eDfb"
]
},
{
"timestamp": 1757936831,
"transactionHash": "0xf1d50e3b14cf974394d925c71087896c185c14c9e79506744a9fd57d5f2aa738",
"implementations": [
"eth:0xe13a85137f8752AbE4c5A614Dc3BaF396b00308D"
]
},
{
"timestamp": 1765204811,
"transactionHash": "0x25b20353a5814918c4c569e1f9e8fede74138c9b7ab2043428a60f1c632d0ce6",
"implementations": [
"eth:0x322B481088143d9Ff74e4169Fb7f12F7808690DF"
]
},
{
"timestamp": 1786962035,
"transactionHash": "0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb",
"implementations": [
"eth:0x2b426a0Ac391490e88d15B304436e7a84Df78611"
]
}
],
"description": "Source-side escrow of the deBridge Liquidity Network (DLN) intent protocol: users lock the 'give' funds of a cross-chain order directly in this contract. Funds are released to the taker (claimUnlock) or refunded to the maker (claimCancel) only on a message from the DlnDestination configured for the order's destination chain, authenticated via the CallProxy of the deBridge messaging protocol (i.e. ultimately by deBridge validator signatures).\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig\n * **feeCollector**: EOA 3",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x368Fa5E37EF1aCefF359Dc2E9DC7393C1CbCC4A3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 15",
"discoveryDrivenData": true
},
{
"name": "IntentManagerValidator",
"isVerified": true,
"address": "eth:0x4247c6f71407359E4C8D29787E98D752F264CD4b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable allowlist contract referenced by DlnSource: addresses holding the INTENT_MANAGER_ROLE can create DLN orders with custom or zero protocol fees. It grants no access to existing funds.\n* Roles:\n * **defaultAdmin**: EOA 16",
"discoveryDrivenData": true
},
{
"name": "ExternalCallAdapter",
"isVerified": true,
"address": "eth:0x61eF2e01E603aEB5Cd96F9eC9AE76cc6A68f6cF9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA7b88A746FA457578D5abd6234471f07D895F46b"
],
"implementations": [
"eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1694079551,
"transactionHash": "0x39c864edd3630cf628c32b5d52f5a6f17348a27f6a906698bf0a4f4f6cfa0701",
"implementations": [
"eth:0x5706875cef89AB69E818D4921a47D0d2663D2728"
]
},
{
"timestamp": 1697470559,
"transactionHash": "0x609ef19a09385ad022a973b6dd98868a56d3354c0cff07eddefb4599327adf44",
"implementations": [
"eth:0xA85437470f38F004C2F4b0D75d282E47bF555a3a"
]
},
{
"timestamp": 1752663335,
"transactionHash": "0x2891ca2643f9cb857b006952744b633088f22b57a8a04495abec7b79a500f1e3",
"implementations": [
"eth:0x7EA200f06c17cB9f64A3c8973a76DD8359fd68FA"
]
},
{
"timestamp": 1786962035,
"transactionHash": "0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb",
"implementations": [
"eth:0xE143DbAEC892cEf2Af836dB49870A0Bcf9d5E6A1"
]
}
],
"description": "Escrow and dispatcher for external calls attached to DLN orders: it receives the taker's funds of orders that carry calldata and releases them when the calldata is executed by the registered executor, or refunds the order authority on cancellation.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "DeBridgeRouter",
"isVerified": true,
"address": "eth:0x663DC15D3C1aC63ff12E45Ab68FeA3F0a883C251",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC86ab72dc6da7eF91a96650f3BC23125cD997130"
],
"implementations": [
"eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1647386234,
"transactionHash": "0x8f0d57e6b8090d7fb51e0eb4b05441f33abffa7229e72d86491826572c4ba923",
"implementations": [
"eth:0xF7399C83B12edD1a21aAB250D30CCB4474902688"
]
},
{
"timestamp": 1647855729,
"transactionHash": "0x14a6e854be2f9e8bee48b2c30d5f4a1b0affbf5d0619e6d435bb63c3d9967a25",
"implementations": [
"eth:0x4084FDAA5088427496102a994b079C6018B0d55D"
]
},
{
"timestamp": 1648035756,
"transactionHash": "0x66f5f83371866f46654a42040198c3a53221057eb8b141a4f1793c4ac0adff70",
"implementations": [
"eth:0x069820f4828dC7ADE62a549e007A018E4A7c9E41"
]
},
{
"timestamp": 1651821943,
"transactionHash": "0xb2e03a93ad55ce3d348d54b7754f92b958e881985c64d5085aa9211667c66db0",
"implementations": [
"eth:0x8ACA115f66B9E1c5411757fe01a5E9E59bC5B612"
]
},
{
"timestamp": 1656544607,
"transactionHash": "0x96d253b49e32869f11a0a4c836151f4918963ecd44d795235898e2a741276165",
"implementations": [
"eth:0xbeb2b37D6f2DdB463e2154Bd34C5229386960ac0"
]
},
{
"timestamp": 1661713828,
"transactionHash": "0x3c720600e3f74aec8bf944adc034025d5f074492d24e936160d87c1fcb123318",
"implementations": [
"eth:0x777c22F63A83ee27D375865C65AfdaBaf96e213a"
]
},
{
"timestamp": 1671133091,
"transactionHash": "0xdd3506ddba7b564a441499bd3859c0e0fed34690a2747df7f44e7b069beb9207",
"implementations": [
"eth:0xd095A2B84E80532cEF267dEf3561DD66e5414946"
]
},
{
"timestamp": 1697470559,
"transactionHash": "0x609ef19a09385ad022a973b6dd98868a56d3354c0cff07eddefb4599327adf44",
"implementations": [
"eth:0xE67534A9F24cc000f467EAA17f920BF63b87a2Cd"
]
},
{
"timestamp": 1749049283,
"transactionHash": "0x0c4b7189c746fcafd0e3b3c22b124e2575da35777eef74c4ceeea42a954c81ef",
"implementations": [
"eth:0x7C5CC78333960E787B53C4D292320aE64dc68CFA"
]
},
{
"timestamp": 1752663335,
"transactionHash": "0x2891ca2643f9cb857b006952744b633088f22b57a8a04495abec7b79a500f1e3",
"implementations": [
"eth:0x3c857eD51c8a2747EE8c6F30EdDA5ea0D487CC64"
]
},
{
"timestamp": 1786962035,
"transactionHash": "0x30e7e8dac55cb6f8ac7b7cc81c9132f01acb5fbb87ed1f44b568183518670fbb",
"implementations": [
"eth:0xCe56012E880851baa234cD092aF516A0fcA9CFe3"
]
}
],
"description": "Optional periphery router that can swap input tokens via whitelisted DEX routers and forward the proceeds into the DLN contracts (order creation, or order fulfillment on the hardcoded DlnDestination via fillCrossChain) in a single transaction. It does not custody funds across transactions and is not part of the DLN critical path.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "",
"isVerified": false,
"address": "eth:0x6D83EAEb957986FEA14Ff0E88AF23736598e22cc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x368Fa5E37EF1aCefF359Dc2E9DC7393C1CbCC4A3"
],
"implementations": [
"eth:0x4F2f3d3949B37A944A10Bf3C5355d0c827BbaF68"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1765183175,
"transactionHash": "0x3c2b659c54b706e3a1ca5d39e32bac118205c416692541f56e496759101820fc",
"implementations": [
"eth:0x4F2f3d3949B37A944A10Bf3C5355d0c827BbaF68"
]
}
],
"description": "Unverified proxy referenced as the feeTreasury of the DeBridgeIntentManager.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 15",
"upgradableBy": [
{
"id": "EOA-15",
"name": "EOA 15",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xA7b88A746FA457578D5abd6234471f07D895F46b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Admin Multisig",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 15",
"discoveryDrivenData": true
},
{
"name": "ExternalCallExecutor",
"isVerified": true,
"address": "eth:0xAE0361b1C3454b297129e01046057F1D294c7974",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The default executor in the ExternalCallAdapter: it executes external calldata attached to DLN orders.\n",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xb54CD1e74f232C6de444464C81f81D13E6978816",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 17",
"discoveryDrivenData": true
},
{
"name": "SimpleFeeProxy",
"isVerified": true,
"address": "eth:0xC2bAC0DB5B18B0c3225581Ba14BD0B448c623636",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe"
],
"implementations": [
"eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1637651844,
"transactionHash": "0xd83a1e2513ffd001193b5d56264f9a3acce5eb31ccd7f122256afa5505c3213d",
"implementations": [
"eth:0x27406EbF0b76923d93b4C6c6224bCaB7fFf11f87"
]
},
{
"timestamp": 1645016006,
"transactionHash": "0x67612f4676f3c141f8360be940caf971519f9bf1265465f94a6c13ed1e64adca",
"implementations": [
"eth:0x37a52ddb753c924f8C914de65ef00b5210Caa83C"
]
},
{
"timestamp": 1752663335,
"transactionHash": "0x2891ca2643f9cb857b006952744b633088f22b57a8a04495abec7b79a500f1e3",
"implementations": [
"eth:0xa1cc7E623423169e1C10e6e5CC8Ae6f1d11042DE"
]
}
],
"description": "The only contract allowed to withdraw protocol fees accrued in the DeBridgeGate. Fees are paid out directly to the caller of withdrawFees(), so the effective fee destination is whoever holds the FEE_COLLECTOR_ROLE.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Admin Multisig\n * **defaultAdmin**: Admin Multisig\n * **feeCollector**: EOA 3",
"upgradableBy": [
{
"name": "Admin Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC86ab72dc6da7eF91a96650f3BC23125cD997130",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Admin Multisig",
"discoveryDrivenData": true
},
{
"name": "DeBridgeToken",
"isVerified": true,
"address": "eth:0xCAceBE8c354b70Fa6E3107f3F6F699e4Fbb3A98B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Implementation contract for deBridge-wrapped tokens (deTokens). Minting and burning of deTokens is restricted to the MINTER_ROLE, which is held by the DeBridgeGate.\n",
"discoveryDrivenData": true
},
{
"name": "",
"isVerified": false,
"address": "eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb54CD1e74f232C6de444464C81f81D13E6978816"
],
"implementations": [
"eth:0x87Da5Cb5Ab2d98d4f0C0c9df195f33d08f6caD59"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761039275,
"transactionHash": "0xd05622c8b766b98e8dcb241b295bd77a831ab2a07bb04a333c94e18e94ea5a4b",
"implementations": [
"eth:0x87Da5Cb5Ab2d98d4f0C0c9df195f33d08f6caD59"
]
}
],
"description": "Unverified proxy holding the INTENT_MANAGER_ROLE on the IntentManagerValidator, allowing it to create DLN orders with custom or zero protocol fees.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 17",
"upgradableBy": [
{
"id": "EOA-17",
"name": "EOA 17",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "DeBridgeAllowanceHolder",
"isVerified": true,
"address": "eth:0xddddddddd4B6472c5002F95610b194D1161223d0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable allowance sink of the deBridge intent system: users approve this contract (directly or as Permit2 spender) so that the upgradeable executor contracts never hold approvals themselves. Its transfer functions carry no intent-level checks: any ALLOWED_SPENDER_ROLE holder can move any approved token from any approver to any recipient.\n* Roles:\n * **allowedSpender**: DeBridgeIntentManager\n * **defaultAdmin**: EOA 15",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xE4427af3555CD9303D728C491364FAdFDD7494Fe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Admin Multisig",
"discoveryDrivenData": true
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
},
"description": "Intent framework built on top of the deBridge messaging protocol. Maker funds are escrowed in the DlnSource contract on the source chain and released to takers on unlock messages attested by the deBridge validator set.",
"detailedDescription": "# Architecture\n\nThe deBridge Liquidity Network (DLN) is an intent protocol built on top of the deBridge messaging protocol, sharing its validation layer and governance. Users (*makers*) create cross-chain orders by locking their *give* funds directly in the `DlnSource` contract on the source chain. On the destination chain, *takers* fulfill orders through the `DlnDestination` contract by paying the *take* amount, which is forwarded to the recipient within the same transaction, so `DlnDestination` holds no user funds. A protocol fee (currently 0.001 ETH flat plus 4 bps on Ethereum, refunded on cancellation) is deducted from the give amount at order creation.\n\n# Order lifecycle\n\nFulfillment is permissionless — anyone can fill any order unless the maker restricted it — and the filler names an *unlock authority* for the order. Only that unlock authority can later trigger the unlock, which sends a message back to the source chain's `DlnSource` through the `DeBridgeGate`. Once the deBridge validators attest the message, the escrowed give funds are released to the taker's chosen beneficiary.\n\n# Crosschain validation\n\n`DlnSource` releases escrowed funds only to calls from the deBridge `CallProxy` whose authenticated original sender is the `DlnDestination` address configured for the order's destination chain (an admin-set, event-tracked map currently routing to 19 chains). The authenticity of that claim rests entirely on the deBridge validator set: a quorum of validator signatures (currently 8 of 12 on Ethereum) attests each unlock or cancellation message. A compromised validator quorum, or an admin change of the per-chain routing addresses, allows draining all order funds escrowed in `DlnSource`.\n\n# User recovery\n\nUnfilled orders can be cancelled from the destination chain by the maker-designated order authority, refunding the full escrow to the maker on the source chain. A `GOVERNANCE_DELEGATED_ORDER_CANCEL_ROLE` can force-cancel unfulfilled orders on behalf of makers, but refunds can only go to a maker-designated address, making it a liveness rather than a theft power. Fulfilled orders cannot be cancelled.\n\n# External calls\n\nOrders can carry calldata to be executed on the destination chain after fulfillment. In that case the taker's funds are routed to an `ExternalCallAdapter` escrow, which releases them when the registered executor contract runs the calldata or refunds the order authority on cancellation. The adapter is admin-replaceable in `DlnDestination`, so a malicious adapter could steal the funds of every order carrying calldata.\n\n# Intents\n\nA newer intent-manager stack automates order creation: users sign an EIP-712 *intent* offchain — the signature covers only an opaque 32-byte intent hash, so wallets cannot display the actual constraints — and permissionless fillers turn intents into DLN orders through the `DeBridgeIntentManager`. There is no signature nonce; an intent is multi-fill until its budget is exhausted, expired, cancelled or nullified. Input tokens are pulled through the `DeBridgeAllowanceHolder`, the single immutable contract holding all user approvals of the intent system: its transfer functions carry no intent-level checks, so any holder of its `ALLOWED_SPENDER_ROLE` can move any approved token from any approver to any recipient. All user protection lives in the constraints of the signed intent itself (price bounds, allowed senders, receivers, budgets); the fill fee is *not* part of the signed intent and is set by the intent manager admin.\n\n# Upgradeability and governance\n\n`DlnSource` (which escrows all in-flight maker funds), `DlnDestination` and the `ExternalCallAdapter` are upgradeable by the same 5/8 deBridge multisig that governs the messaging protocol, with no timelock or exit window. The multisig also holds the `DEFAULT_ADMIN_ROLE` on both DLN contracts, controlling the trusted cross-chain routing addresses, fees, the external call adapter, and unpausing. The intent-manager stack has a weaker setup: on Ethereum, a single EOA is simultaneously the admin of `DeBridgeIntentManager` and `DeBridgeAllowanceHolder` and the owner of the ProxyAdmin that can upgrade the intent manager — an upgrade there could abuse the allowance holder's spender role to drain all outstanding user approvals. Several satellite contracts have unverified source code.\n\n# Monitoring\n\nOrder creation, fulfillment, unlock and cancellation all emit events, and the per-chain routing configuration is event-tracked. deBridge provides an [explorer](https://app.debridge.finance/explorer) (DLN trades are labeled as such) for tracking order flow.",
"detailedDescription": "# Architecture\n\nThe deBridge Liquidity Network (DLN) is an intent protocol built on top of the deBridge messaging protocol, sharing its validation layer and governance. Users (*makers*) create cross-chain orders by locking their *give* funds directly in the `DlnSource` contract on the source chain. On the destination chain, *takers* fulfill orders through the `DlnDestination` contract by paying the *take* amount, which is forwarded to the recipient within the same transaction, so `DlnDestination` holds no user funds. A protocol fee (currently 0.001 ETH flat plus 4 bps on Ethereum, refunded on cancellation) is deducted from the give amount at order creation.\n\n# Order lifecycle\n\nFulfillment is permissionless — anyone can fill any order unless the maker restricted it — and the filler names an *unlock authority* for the order. Only that unlock authority can later trigger the unlock, which sends a message back to the source chain's `DlnSource` through the `DeBridgeGate`. Once the deBridge validators attest the message, the escrowed give funds are released to the taker's chosen beneficiary.\n\n# Crosschain validation\n\n`DlnSource` releases escrowed funds only to calls from the deBridge `CallProxy` whose authenticated original sender is the `DlnDestination` address configured for the order's destination chain (an admin-set, event-tracked map currently routing to 21 chains). The authenticity of that claim rests entirely on the deBridge validator set: a quorum of validator signatures (currently 8 of 12 on Ethereum) attests each unlock or cancellation message. A compromised validator quorum, or an admin change of the per-chain routing addresses, allows draining all order funds escrowed in `DlnSource`.\n\n# User recovery\n\nUnfilled orders can be cancelled from the destination chain by the maker-designated order authority, refunding the full escrow to the maker on the source chain. A `GOVERNANCE_DELEGATED_ORDER_CANCEL_ROLE` can force-cancel unfulfilled orders on behalf of makers, but refunds can only go to a maker-designated address, making it a liveness rather than a theft power. Fulfilled orders cannot be cancelled.\n\n# External calls\n\nOrders can carry calldata to be executed on the destination chain after fulfillment. In that case the taker's funds are routed to an `ExternalCallAdapter` escrow, which releases them when the registered executor contract runs the calldata or refunds the order authority on cancellation. The adapter is admin-replaceable in `DlnDestination`, so a malicious adapter could steal the funds of every order carrying calldata.\n\n# Intents\n\nA newer intent-manager stack automates order creation: users sign an EIP-712 *intent* offchain — the signature covers only an opaque 32-byte intent hash, so wallets cannot display the actual constraints — and permissionless fillers turn intents into DLN orders through the `DeBridgeIntentManager`. There is no signature nonce; an intent is multi-fill until its budget is exhausted, expired, cancelled or nullified. Input tokens are pulled through the `DeBridgeAllowanceHolder`, the single immutable contract holding all user approvals of the intent system: its transfer functions carry no intent-level checks, so any holder of its `ALLOWED_SPENDER_ROLE` can move any approved token from any approver to any recipient. All user protection lives in the constraints of the signed intent itself (price bounds, allowed senders, receivers, budgets); the fill fee is *not* part of the signed intent and is set by the intent manager admin.\n\n# Upgradeability and governance\n\n`DlnSource` (which escrows all in-flight maker funds), `DlnDestination` and the `ExternalCallAdapter` are upgradeable by the same 5/8 deBridge multisig that governs the messaging protocol, with no timelock or exit window. The multisig also holds the `DEFAULT_ADMIN_ROLE` on both DLN contracts, controlling the trusted cross-chain routing addresses, fees, the external call adapter, and unpausing. The intent-manager stack has a weaker setup: on Ethereum, a single EOA is simultaneously the admin of `DeBridgeIntentManager` and `DeBridgeAllowanceHolder` and the owner of the ProxyAdmin that can upgrade the intent manager — an upgrade there could abuse the allowance holder's spender role to drain all outstanding user approvals. Several satellite contracts have unverified source code.\n\n# Monitoring\n\nOrder creation, fulfillment, unlock and cancellation all emit events, and the per-chain routing configuration is event-tracked. deBridge provides an [explorer](https://app.debridge.finance/explorer) (DLN trades are labeled as such) for tracking order flow.",
"intent": {
"color": "#F97316",
"intentModel": {
"value": "Intent framework",
"description": "Users create orders that takers can fulfill."
},
"userRecovery": {
"value": "Order cancellation",
"description": "Unfilled orders can be cancelled through the DLN flow."
},
"solverAccess": {
"value": "Permissionless",
"description": "Order fulfillment is designed around independent takers."
},
"settlement": {
"value": "deBridge messaging",
"description": "Order state and settlement use deBridge infrastructure."
}
},
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "Admin Multisig",
"name": "Admin Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * DeBridgeGate [via: ProxyAdmin]\n * ExternalCallAdapter [via: ProxyAdmin]\n * DeBridgeRouter [via: ProxyAdmin]\n * DeBridgeTokenDeployer [via: ProxyAdmin]\n * CallProxy [via: ProxyAdmin]\n * SignatureVerifier [via: ProxyAdmin]\n * SimpleFeeProxy [via: ProxyAdmin]\n * DlnDestination [via: ProxyAdmin]\n * DlnSource [via: ProxyAdmin]\n* Can interact with DeBridgeGate\n * pause the DeBridgeGate, stopping all sends, claims and deToken deployments on this chain (only the admin can unpause) \n * replace the SignatureVerifier (and with it the entire validation layer of the deBridge messaging protocol), the CallProxy and the deToken deployer, censor individual submissions (blockSubmission), toggle supported chains, set all fees and per-address fee discounts, designate the fee withdrawal contract, unpause the gate, and grant/revoke all roles. Most of these setters emit no events \n* Can interact with ExternalCallAdapter\n * replace the executor contract that handles external calldata of DLN orders and pause the adapter \n* Can interact with DeBridgeRouter\n * manage the whitelist of swap routers and forwarding targets this contract may call with arbitrary calldata (and grant infinite token approvals to), set the service fee and fee treasury, and sweep any funds held by the router \n* Can interact with DeBridgeTokenDeployer\n * administer all deployed deTokens: pause their transfers and grant/revoke minter rights, including the ability to grant itself the right to mint unbacked deTokens \n * replace the implementation of all deTokens at once (this contract acts as their beacon), change the admin assigned to newly deployed deTokens, and override deToken names/symbols. None of these setters emit events \n* Can interact with CallProxy\n * grant and revoke the DEBRIDGE_GATE_ROLE that authorizes contracts to execute arbitrary external calls through the CallProxy \n* Can interact with SignatureVerifier\n * add and remove deBridge validators (oracles), change all signature thresholds (quorum must remain a majority of the oracle set), and re-point the gate contract allowed to request verification. Threshold changes emit no events \n* Can interact with SimpleFeeProxy\n * grant/revoke the FEE_COLLECTOR_ROLE that receives all deBridge protocol fees, pause fee withdrawals, and change the referenced gate contract \n* Can interact with DlnDestination\n * set the trusted DlnSource address (message receiver) for each supported chain, replace the external call adapter that custodies funds of orders with attached calldata, unpause the contract, and grant/revoke all roles \n* Can interact with DlnSource\n * set the trusted DlnDestination address for each supported chain (a malicious address there can drain all escrowed order funds via forged unlock messages), change DLN fees without upper bound, unpause the contract, and grant/revoke all roles ",
"accounts": [
{
"address": "eth:0x6bec1faF33183e1Bc316984202eCc09d46AC92D5",
"type": "Contract",
"isVerified": true,
"name": "0x6bec…92D5",
"url": "https://etherscan.io/address/0x6bec1faF33183e1Bc316984202eCc09d46AC92D5"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xbA7cE717928A6C51ab530aD9AdB69bA6E76D09B5",
"type": "EOA",
"isVerified": true,
"name": "0xbA7c…09B5",
"url": "https://etherscan.io/address/0xbA7cE717928A6C51ab530aD9AdB69bA6E76D09B5"
},
{
"address": "eth:0xC351f905d810Cb33c54fE771e1bE4ec5A5048c2D",
"type": "EOA",
"isVerified": true,
"name": "0xC351…8c2D",
"url": "https://etherscan.io/address/0xC351f905d810Cb33c54fE771e1bE4ec5A5048c2D"
},
{
"address": "eth:0xD4Aa80C7a35B2C996Ef3F83baf91D5721c86dA2C",
"type": "EOA",
"isVerified": true,
"name": "0xD4Aa…dA2C",
"url": "https://etherscan.io/address/0xD4Aa80C7a35B2C996Ef3F83baf91D5721c86dA2C"
},
{
"address": "eth:0x874B1d14bF4FE455C9eCAcDf66b629e10664c6E1",
"type": "EOA",
"isVerified": true,
"name": "0x874B…c6E1",
"url": "https://etherscan.io/address/0x874B1d14bF4FE455C9eCAcDf66b629e10664c6E1"
},
{
"address": "eth:0xE9666D80e5617bA1470E2cA09F2D9B0C8CCd56B7",
"type": "EOA",
"isVerified": true,
"name": "0xE966…56B7",
"url": "https://etherscan.io/address/0xE9666D80e5617bA1470E2cA09F2D9B0C8CCd56B7"
},
{
"address": "eth:0x6f572a24c5C009fC8C844Fab5352edf79F132FBD",
"type": "EOA",
"isVerified": true,
"name": "0x6f57…2FBD",
"url": "https://etherscan.io/address/0x6f572a24c5C009fC8C844Fab5352edf79F132FBD"
},
{
"address": "eth:0xd725E456D5beD8275E297C4Dd11135e3C5cDe544",
"type": "EOA",
"isVerified": true,
"name": "0xd725…e544",
"url": "https://etherscan.io/address/0xd725E456D5beD8275E297C4Dd11135e3C5cDe544"
},
{
"address": "eth:0x24C0E1C19c8eC997b781dF4B4A0f812aE9667c96",
"type": "EOA",
"isVerified": true,
"name": "0x24C0…7c96",
"url": "https://etherscan.io/address/0x24C0E1C19c8eC997b781dF4B4A0f812aE9667c96"
}
],
"discoveryDrivenData": true
},
{
"id": "DeBridgeIntentManager",
"name": "DeBridgeIntentManager",
"accounts": [
{
"address": "eth:0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708",
"type": "Contract",
"isVerified": true,
"name": "0xDDDD…9708",
"url": "https://etherscan.io/address/0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708"
}
],
"chain": "ethereum",
"description": "Fills user-signed intents by creating DLN orders on their behalf: it pulls input tokens from users through the DeBridgeAllowanceHolder and forwards them into DlnSource in the same transaction, charging a variable fee that is not part of the user-signed intent.\n* Can interact with DeBridgeAllowanceHolder\n * unconditionally transfer any amount of any token from any user who approved the DeBridgeAllowanceHolder (directly or via Permit2) to any recipient, and make arbitrary calls from its address ",
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x0746e7e4d15F30885616B4ac3D274393354E80c0",
"type": "EOA",
"isVerified": true,
"name": "0x0746…80c0",
"url": "https://etherscan.io/address/0x0746e7e4d15F30885616B4ac3D274393354E80c0",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with DlnDestination\n * force-cancel any not-yet-fulfilled order that has a cancel beneficiary set by its maker (refunds can only go to that maker-designated address) ",
"discoveryDrivenData": true
},
{
"id": "EOA-2,-EOA-4,-EOA-5,-EOA-6,-EOA-7,-EOA-8,-EOA-9,-EOA-10,-EOA-11,-EOA-12,-EOA-13-and-EOA-14",
"name": "EOA 2, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9, EOA 10, EOA 11, EOA 12, EOA 13 and EOA 14",
"accounts": [
{
"address": "eth:0x1c0720B124e7251e881a0fbCfe259d085C59f205",
"type": "EOA",
"isVerified": true,
"name": "0x1c07…f205",
"url": "https://etherscan.io/address/0x1c0720B124e7251e881a0fbCfe259d085C59f205",
"displayName": "EOA 2"
},
{
"address": "eth:0x4bC16662A2cE381E7bb54Dc577c05619C5E67526",
"type": "EOA",
"isVerified": true,
"name": "0x4bC1…7526",
"url": "https://etherscan.io/address/0x4bC16662A2cE381E7bb54Dc577c05619C5E67526",
"displayName": "EOA 4"
},
{
"address": "eth:0x4CA2191cDE585d65EB6AFC09D23D60b8A0AB677D",
"type": "EOA",
"isVerified": true,
"name": "0x4CA2…677D",
"url": "https://etherscan.io/address/0x4CA2191cDE585d65EB6AFC09D23D60b8A0AB677D",
"displayName": "EOA 5"
},
{
"address": "eth:0x573F5E2940789B378BA09cf7d3fD010C422a9ff5",
"type": "EOA",
"isVerified": true,
"name": "0x573F…9ff5",
"url": "https://etherscan.io/address/0x573F5E2940789B378BA09cf7d3fD010C422a9ff5",
"displayName": "EOA 6"
},
{
"address": "eth:0x59CE95b8955F0E7Be128d5Af77161B36f6084214",
"type": "EOA",
"isVerified": true,
"name": "0x59CE…4214",
"url": "https://etherscan.io/address/0x59CE95b8955F0E7Be128d5Af77161B36f6084214",
"displayName": "EOA 7"
},
{
"address": "eth:0x6436BBcA322b8cD0c56d8b9aD7837b13960dA426",
"type": "EOA",
"isVerified": true,
"name": "0x6436…A426",
"url": "https://etherscan.io/address/0x6436BBcA322b8cD0c56d8b9aD7837b13960dA426",
"displayName": "EOA 8"
},
{
"address": "eth:0x83f81E7f9E284AAFFEDED797008663595f7342bF",
"type": "EOA",
"isVerified": true,
"name": "0x83f8…42bF",
"url": "https://etherscan.io/address/0x83f81E7f9E284AAFFEDED797008663595f7342bF",
"displayName": "EOA 9"
},
{
"address": "eth:0x874f46124C1DAaD4749B94f82eD142754826240E",
"type": "EOA",
"isVerified": true,
"name": "0x874f…240E",
"url": "https://etherscan.io/address/0x874f46124C1DAaD4749B94f82eD142754826240E",
"displayName": "EOA 10"
},
{
"address": "eth:0xbCF516826eD7F3b0E487C7ca6A87b3b4EccDD4DC",
"type": "EOA",
"isVerified": true,
"name": "0xbCF5…D4DC",
"url": "https://etherscan.io/address/0xbCF516826eD7F3b0E487C7ca6A87b3b4EccDD4DC",
"displayName": "EOA 11"
},
{
"address": "eth:0xDD523FD4DebcF0dB6f0B2c2D30D075CaaeE023e0",
"type": "EOA",
"isVerified": true,
"name": "0xDD52…23e0",
"url": "https://etherscan.io/address/0xDD523FD4DebcF0dB6f0B2c2D30D075CaaeE023e0",
"displayName": "EOA 12"
},
{
"address": "eth:0xebec9bc53f9C65f69DB8591B9f240BbCDb563c54",
"type": "EOA",
"isVerified": true,
"name": "0xebec…3c54",
"url": "https://etherscan.io/address/0xebec9bc53f9C65f69DB8591B9f240BbCDb563c54",
"displayName": "EOA 13"
},
{
"address": "eth:0xf27Af436A6F2d9C64B4CA40a483eC46acDc33fe8",
"type": "EOA",
"isVerified": true,
"name": "0xf27A…3fe8",
"url": "https://etherscan.io/address/0xf27Af436A6F2d9C64B4CA40a483eC46acDc33fe8",
"displayName": "EOA 14"
}
],
"chain": "ethereum",
"description": "* Can interact with SignatureVerifier\n * sign cross-chain submissions as a deBridge validator. A quorum of these signers can authorize arbitrary messages, mint deTokens and unlock collateral from the deBridge gate on this chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x391276932b5105C2DB8eE928dfd8872564d6d246",
"type": "EOA",
"isVerified": true,
"name": "0x3912…d246",
"url": "https://etherscan.io/address/0x391276932b5105C2DB8eE928dfd8872564d6d246",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with SimpleFeeProxy\n * withdraw all protocol fees accrued in the DeBridgeGate to itself \n* Can interact with DlnSource\n * withdraw accumulated DLN protocol fees (not user principal) to itself ",
"discoveryDrivenData": true
},
{
"id": "EOA-15",
"name": "EOA 15",
"accounts": [
{
"address": "eth:0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"type": "EOA",
"isVerified": true,
"name": "0x844e…6444",
"url": "https://etherscan.io/address/0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"displayName": "EOA 15"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * [via: ProxyAdmin]\n * DeBridgeIntentManager [via: ProxyAdmin]\n* Can interact with DeBridgeAllowanceHolder\n * grant and revoke the ALLOWED_SPENDER_ROLE, i.e. authorize any address (including itself) to spend all outstanding user approvals of the deBridge intent system \n* Can interact with DeBridgeIntentManager\n * set intent fill fees up to 100% with immediate effect (fees are not part of the user-signed intent), manage the trusted solver set, sweep funds held by the contract, and grant/revoke all roles ",
"discoveryDrivenData": true
},
{
"id": "EOA-16",
"name": "EOA 16",
"accounts": [
{
"address": "eth:0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"type": "EOA",
"isVerified": true,
"name": "0xbda4…39e5",
"url": "https://etherscan.io/address/0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"displayName": "EOA 16"
}
],
"chain": "ethereum",
"description": "* Can interact with IntentManagerValidator\n * grant and revoke the INTENT_MANAGER_ROLE that allows creating DLN orders with custom or zero protocol fees ",
"discoveryDrivenData": true
},
{
"id": "EOA-17",
"name": "EOA 17",
"accounts": [
{
"address": "eth:0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"type": "EOA",
"isVerified": true,
"name": "0xd6dF…C1EC",
"url": "https://etherscan.io/address/0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"displayName": "EOA 17"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * [via: ProxyAdmin]",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "debridge-dln",
"bridgeType": "nonMinting"
}
],
"type": "intent"
}
+61 -26
+1 -1
{
"badges": [],
"description": "ether.fi is a liquid staking and restaking protocol. Deposit ETH for eETH (rebasing) or its wrapper weETH, and the pool stakes it both through ether.fi's own permissioned operators and through third-party liquid staking tokens it accepts, with restaking in EigenLayer. A 3-of-3 committee sets the exchange rate under hard caps of at most 0.25% per report. To exit, holders burn eETH for a withdrawal NFT the oracle must finalize, or swap instantly through a buffer for a fee up to 5%, though only a small buffer is instantly liquid, so large exits wait for validators to unwind. Upgrades and roles sit behind a 10 days timelock, with multisigs for day-to-day pausing and parameters.",
"detailedDescription": "ether.fi is a liquid staking and restaking protocol for ETH. Deposit ETH for eETH (rebasing) or its wrapper weETH, and the pool stakes it both through its own permissioned operators and through third-party liquid staking tokens it accepts. Operators are whitelisted, a committee sets the exchange rate, and privileged functions are controlled by multisigs behind timelocks.\n\n\n\n### The exchange rate\n\nA 3-of-3 oracle committee reports staking rewards and EtherFiAdmin applies them. Hard caps bound every report: at most 0.25% up per report and 5% implied APR, with negative moves capped tighter. Each report executes only after a delay of 10 minutes past consensus, in which the operating multisig can cancel it.\n\n### Custody and exit\n\neETH is a staking aggregator rather than a single validator set. ETH deposits fund 32-ETH validators run by ether.fi's permissioned operators, whose withdrawal credentials are fixed in code to protocol-controlled EigenLayer pods, so operators run the keys but cannot redirect the stake. The Liquifier accepts already-staked liquid staking tokens from other providers against a governance-set whitelist and mints eETH for them, and EtherFiRestaker can hold them, restake them in EigenLayer, or unwind them to ETH through the provider's own exit. To exit, burn eETH for a withdrawal NFT that the oracle must finalize before the pool pays, or swap instantly through a buffer for a fee up to 5%. On-chain finalization depends on the 3-of-3 committee, and the permissionless stale-oracle backstop only opens if the committee stops reporting entirely. Only a small buffer is instantly liquid, so large exits wait for validators to unwind.\n\n\n\n### Who holds the keys\n\nUpgrades and every role grant sit behind a 10 days timelock. A shorter 2 days timelock and a set of multisigs run day-to-day operations: pausing, blacklisting, approving operators, and tuning parameters within fixed ceilings.",
"detailedDescription": "ether.fi is a liquid staking and restaking protocol for ETH. Deposit ETH for eETH (rebasing) or its wrapper weETH, and the pool stakes it both through its own permissioned operators and through third-party liquid staking tokens it accepts. Operators are whitelisted, a committee sets the exchange rate, and privileged functions are controlled by multisigs behind timelocks.\n\n\n\n### The exchange rate\n\nA 3-of-3 oracle committee reports staking rewards and EtherFiAdmin applies them. Hard caps bound every report: at most 0.25% up per report and 5% implied APR, with negative moves capped tighter. Each report executes only after a delay of 10 minutes past consensus, in which the operating multisig can cancel it.\n\n### Custody and exit\n\neETH is a staking aggregator rather than a single validator set. ETH deposits fund new compounding validators of 1901 ETH each, run by ether.fi's permissioned operators. Their withdrawal credentials are fixed in code to a protocol-controlled address, the EigenLayer pod of the ether.fi node they belong to or, for a node created without a pod, the node contract itself, so operators run the keys but cannot redirect the stake. The Liquifier accepts already-staked liquid staking tokens from other providers against a governance-set whitelist and mints eETH for them, and EtherFiRestaker can hold them, restake them in EigenLayer, or unwind them to ETH through the provider's own exit. To exit, burn eETH for a withdrawal NFT that the oracle must finalize before the pool pays, or swap instantly through a buffer for a fee up to 5%. On-chain finalization depends on the 3-of-3 committee, and the permissionless stale-oracle backstop only opens if the committee stops reporting entirely. Only a small buffer is instantly liquid, so large exits wait for validators to unwind.\n\n\n\n### Who holds the keys\n\nUpgrades and every role grant sit behind a 10 days timelock. A shorter 2 days timelock and a set of multisigs run day-to-day operations: pausing, blacklisting, approving operators, and tuning parameters within fixed ceilings.",
"links": {
"websites": [
"https://ether.fi/"
],
"documentation": [
"https://etherfi.gitbook.io/etherfi"
],
"repositories": [
"https://github.com/etherfi-protocol/smart-contracts"
],
"socialMedia": [
"https://x.com/ether_fi"
]
},
"references": [
{
"title": "Deployed Contracts — ether.fi docs",
"url": "https://etherfi.gitbook.io/etherfi/developers/contracts-and-integrations/deployed-contracts"
}
]
}
+1 -1
[
{
"type": "not-tracked",
"name": "EigenLayer",
"icon": "eigenlayer",
"description": "Holds the native stake. Every validator's withdrawal credentials point at an EigenLayer EigenPod, so ether.fi's own ETH sits inside EigenLayer contracts. Its DelegationManager, EigenPodManager and StrategyManager are upgradeable by EigenLayer governance, and since the slashing release an AVS can slash delegated stake. Exits also wait out EigenLayer's roughly 14-day withdrawal delay."
"description": "Holds the native stake of EigenPod-backed nodes: their validators' withdrawal credentials point at an EigenLayer EigenPod, so that ETH sits inside EigenLayer contracts. Its DelegationManager, EigenPodManager and StrategyManager are upgradeable by EigenLayer governance, and since the slashing release an AVS can slash delegated stake. Exits from these pods also wait out EigenLayer's roughly 14-day withdrawal delay. A node created without a pod is itself its validators' withdrawal address and requests exits directly through the EIP-7002 system contract, outside EigenLayer."
},
{
"type": "tracked",
"projectId": "lido",
"description": "About a quarter of the backing is stETH taken through the Liquifier and held by EtherFiRestaker rather than native ETH. A stETH depeg or a Lido failure directly impairs that share of eETH."
},
{
"type": "not-tracked",
"name": "LayerZero",
"icon": "layerzero",
"description": "weETH crosses chains as a LayerZero OFT. The mainnet lock-box holds ~110k weETH, and an L1 sync pool anticipatorily mints weETH against a dummy placeholder when a LayerZero message reports an L2 deposit, before the bridged ETH arrives (live unbacked ~45 weETH). A compromise of the LayerZero endpoint or its verifiers could forge inbound messages to unlock real weETH from the lock-box or mint against shared backing, and a messaging halt would strand cross-chain holders. Cross-chain integrity depends on LayerZero, bounded by the lock-box balance and the dummy token's Liquifier cap."
}
]
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EtherFiTimelock",
"name": "EtherFiTimelock",
"accounts": [
{
"address": "eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761",
"type": "Contract",
"isVerified": true,
"name": "0x9f26…0761",
"url": "https://etherscan.io/address/0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761"
}
],
"chain": "ethereum",
"description": "OpenZeppelin TimelockController governing contract upgrades and privileged operations. Two instances: a longer Upgrade timelock and a shorter Operating timelock.\n* Can upgrade **with no delay**\n * AvsOperatorManager \n * MembershipManager \n * RoleRegistry \n * MembershipNFT \n * EtherfiOFTAdapterUpgradeable [via: ProxyAdmin]\n * EtherfiL1SyncPoolETH [via: ProxyAdmin]",
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/7 threshold. \n* Can upgrade **with no delay**\n * CumulativeMerkleDrop ",
"accounts": [
{
"address": "eth:0xA000244b4a36D57Ea1ECB39b5F02f255e4C8cd52",
"type": "Contract",
"isVerified": true,
"name": "0xA000…cd52",
"url": "https://etherscan.io/address/0xA000244b4a36D57Ea1ECB39b5F02f255e4C8cd52"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9eaC7114D1a1EaBc4732A886795cFD9E6E35843f",
"type": "EOA",
"isVerified": true,
"name": "0x9eaC…843f",
"url": "https://etherscan.io/address/0x9eaC7114D1a1EaBc4732A886795cFD9E6E35843f"
},
{
"address": "eth:0x0fCe5cd3FB6F3b3FB7f0f707070A0A7e2442f444",
"type": "EOA",
"isVerified": true,
"name": "0x0fCe…f444",
"url": "https://etherscan.io/address/0x0fCe5cd3FB6F3b3FB7f0f707070A0A7e2442f444"
},
{
"address": "eth:0x95A2115018b84cfe0630C16CCA277E1569a84BEf",
"type": "EOA",
"isVerified": true,
"name": "0x95A2…4BEf",
"url": "https://etherscan.io/address/0x95A2115018b84cfe0630C16CCA277E1569a84BEf"
},
{
"address": "eth:0x544bDcBb88F2756000De227580aaad7376f3794E",
"type": "EOA",
"isVerified": true,
"name": "0x544b…794E",
"url": "https://etherscan.io/address/0x544bDcBb88F2756000De227580aaad7376f3794E"
},
{
"address": "eth:0x000D4FdD11B99abD59a9463027F55897aE6523B2",
"type": "EOA",
"isVerified": true,
"name": "0x000D…23B2",
"url": "https://etherscan.io/address/0x000D4FdD11B99abD59a9463027F55897aE6523B2"
},
{
"address": "eth:0xeF01c0D205961f792b72C568B6209872d0e82807",
"type": "EOA",
"isVerified": true,
"name": "0xeF01…2807",
"url": "https://etherscan.io/address/0xeF01c0D205961f792b72C568B6209872d0e82807"
},
{
"address": "eth:0x9506429A421757711806c5cAF25ba1830E349B09",
"type": "EOA",
"isVerified": true,
"name": "0x9506…9B09",
"url": "https://etherscan.io/address/0x9506429A421757711806c5cAF25ba1830E349B09"
}
],
"discoveryDrivenData": true
},
{
"id": "GnosisSafe",
"name": "GnosisSafe",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * EtherFiOperationParameters ",
"accounts": [
{
"address": "eth:0x2aCA71020De61bb532008049e1Bd41E451aE8AdC",
"type": "Contract",
"isVerified": true,
"name": "0x2aCA…8AdC",
"url": "https://etherscan.io/address/0x2aCA71020De61bb532008049e1Bd41E451aE8AdC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xDE3bf1FA3B3829342bC4356592Bb7CF3BAAD8264",
"type": "EOA",
"isVerified": true,
"name": "0xDE3b…8264",
"url": "https://etherscan.io/address/0xDE3bf1FA3B3829342bC4356592Bb7CF3BAAD8264"
},
{
"address": "eth:0xE63794CF405678382764A4dEc1e56C43B45605C9",
"type": "EOA",
"isVerified": true,
"name": "0xE637…05C9",
"url": "https://etherscan.io/address/0xE63794CF405678382764A4dEc1e56C43B45605C9"
},
{
"address": "eth:0x566E58ac0F2c4BCaF6De63760C56cC3f825C48f5",
"type": "EOA",
"isVerified": true,
"name": "0x566E…48f5",
"url": "https://etherscan.io/address/0x566E58ac0F2c4BCaF6De63760C56cC3f825C48f5"
},
{
"address": "eth:0x71b67AC997056c9935f8AA98F3344432Ea2ec15c",
"type": "EOA",
"isVerified": true,
"name": "0x71b6…c15c",
"url": "https://etherscan.io/address/0x71b67AC997056c9935f8AA98F3344432Ea2ec15c"
},
{
"address": "eth:0x5dfb8BC4830ccF60d469D546aEC36531c97B96b5",
"type": "EOA",
"isVerified": true,
"name": "0x5dfb…96b5",
"url": "https://etherscan.io/address/0x5dfb8BC4830ccF60d469D546aEC36531c97B96b5"
},
{
"address": "eth:0xFa238cB37E58556b23ea45643FFe4Da382162a53",
"type": "EOA",
"isVerified": true,
"name": "0xFa23…2a53",
"url": "https://etherscan.io/address/0xFa238cB37E58556b23ea45643FFe4Da382162a53"
},
{
"address": "eth:0x5c8c76F2e990F194462dC5f8a8c76Ba16966Ed42",
"type": "EOA",
"isVerified": true,
"name": "0x5c8c…Ed42",
"url": "https://etherscan.io/address/0x5c8c76F2e990F194462dC5f8a8c76Ba16966Ed42"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/8 threshold. ",
"accounts": [
{
"address": "eth:0x0c83EAe1FE72c390A02E426572854931EefF93BA",
"type": "Contract",
"isVerified": true,
"name": "0x0c83…93BA",
"url": "https://etherscan.io/address/0x0c83EAe1FE72c390A02E426572854931EefF93BA"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x566E58ac0F2c4BCaF6De63760C56cC3f825C48f5",
"type": "EOA",
"isVerified": true,
"name": "0x566E…48f5",
"url": "https://etherscan.io/address/0x566E58ac0F2c4BCaF6De63760C56cC3f825C48f5"
},
{
"address": "eth:0x5c8c76F2e990F194462dC5f8a8c76Ba16966Ed42",
"type": "EOA",
"isVerified": true,
"name": "0x5c8c…Ed42",
"url": "https://etherscan.io/address/0x5c8c76F2e990F194462dC5f8a8c76Ba16966Ed42"
},
{
"address": "eth:0xD31074937B28f65db4eeB243916883E335261650",
"type": "EOA",
"isVerified": true,
"name": "0xD310…1650",
"url": "https://etherscan.io/address/0xD31074937B28f65db4eeB243916883E335261650"
},
{
"address": "eth:0x781C3EF0C0F5DCEae69D7e1e164F82b2F8e47d18",
"type": "EOA",
"isVerified": true,
"name": "0x781C…7d18",
"url": "https://etherscan.io/address/0x781C3EF0C0F5DCEae69D7e1e164F82b2F8e47d18"
},
{
"address": "eth:0x0e706A98F414F49A412107641c0820b0153Ff5Dc",
"type": "EOA",
"isVerified": true,
"name": "0x0e70…f5Dc",
"url": "https://etherscan.io/address/0x0e706A98F414F49A412107641c0820b0153Ff5Dc"
},
{
"address": "eth:0x2f2806e8b288428f23707A69faA60f52BC565c17",
"type": "EOA",
"isVerified": true,
"name": "0x2f28…5c17",
"url": "https://etherscan.io/address/0x2f2806e8b288428f23707A69faA60f52BC565c17"
},
{
"address": "eth:0x173286FaFABEA063eeB3726Ee5eFD4ff414057B9",
"type": "EOA",
"isVerified": true,
"name": "0x1732…57B9",
"url": "https://etherscan.io/address/0x173286FaFABEA063eeB3726Ee5eFD4ff414057B9"
},
{
"address": "eth:0x4024380A7c52328a0BB2B608846dCf2E4621f049",
"address": "eth:0x513A849d64C3a199C288D679946a65e5a5B709F4",
"type": "EOA",
"isVerified": true,
"name": "0x4024…f049",
"url": "https://etherscan.io/address/0x4024380A7c52328a0BB2B608846dCf2E4621f049"
"name": "0x513A…09F4",
"url": "https://etherscan.io/address/0x513A849d64C3a199C288D679946a65e5a5B709F4"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xf8a86ea1Ac39EC529814c377Bd484387D395421e",
"type": "EOA",
"isVerified": true,
"name": "0xf8a8…421e",
"url": "https://etherscan.io/address/0xf8a86ea1Ac39EC529814c377Bd484387D395421e",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * EtherFiViewer ",
"discoveryDrivenData": true
}
]
}
}
+41 -20
{
"addresses": {
"ethereum": [
{
"name": "AuctionManager",
"isVerified": true,
"address": "eth:0x00C452aFFee3a17d9Cecc1Bcd2B8d5C7635C4CB9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x3311c72A04D2779f4425c036dBC40d14fEc0162b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683046907,
"transactionHash": "0xe2146259cafb8d6221b45a05e00c71a5e78fbbc4cac7ac7954e5835ce5a85537",
"implementations": [
"eth:0xBdFadd8fb6d5011A5a3528cA76AB28e4D9686281"
]
},
{
"timestamp": 1689013571,
"transactionHash": "0xee2cc7975bab551cbd50d6be9f78abffd8edf7d0c0432149f03569aeb8256ce2",
"implementations": [
"eth:0xcBF18F68e2aBd480231241fa97BD41aE556433A0"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x68FE80C6e97E0c8613e2FED344358c6635ba5366"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x3311c72A04D2779f4425c036dBC40d14fEc0162b"
]
}
],
"description": "Node-operator bid auction: operators post bids that are consumed when validators are assigned to them.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x00C452aFFee3a17d9Cecc1Bcd2B8d5C7635C4CB9#code"
},
{
"name": "EtherFiRestaker",
"isVerified": true,
"address": "eth:0x1B7a4C3797236A1C37f8741c0Be35c2c72736fFf",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x51357a700B309637F109A897a6479A563D5AFb8E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1730091995,
"transactionHash": "0xd77b56cac3d8cdfd4c5976558e51e689ddd80a8a7486782b5cf71b93cd14a219",
"implementations": [
"eth:0x3dBe6B40e3b65f2D1f60Ea118cCB35DF61a6d4E2"
]
},
{
"timestamp": 1744948259,
"transactionHash": "0xe7e323bb61abb34624c411611c18f6e0ae38d0fcb92ae6e3e4d9011229d7751a",
"implementations": [
"eth:0x0052F731a6BEA541843385ffBA408F52B74Cb624"
]
},
{
"timestamp": 1761867083,
"transactionHash": "0x1c76b07c7e41440a0fa3ef3d34843ef9cb96fb683844caebe8322d86f0c17e0a",
"implementations": [
"eth:0x71bEf55739F0b148E2C3e645FDE947f380C48615"
]
},
{
"timestamp": 1765810847,
"transactionHash": "0xd7e028c41ac9c95718679a6d026b0471df56c895c15f53af0db46ea98ec3ab54",
"implementations": [
"eth:0x3905b79B1c9D5424921f50286b4782527217F10f"
]
},
{
"timestamp": 1770938747,
"transactionHash": "0xa8fb51d6316fdc5c43a2869e110372235017501d2377ec3f39e5324033cbb87d",
"implementations": [
"eth:0x9D795b303B9dA3488FD3A4ca4702c872576BD0c6"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x51357a700B309637F109A897a6479A563D5AFb8E"
]
}
],
"description": "Routes protocol ETH/LSTs into EigenLayer restaking and Lido withdrawals. EigenLayer and Lido contracts are external dependencies.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1B7a4C3797236A1C37f8741c0Be35c2c72736fFf#code"
},
{
"name": "AvsOperatorManager",
"isVerified": true,
"address": "eth:0x2093Bbb221f1d8C7c932c32ee28Be6dEe4a37A6a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761"
],
"implementations": [
"eth:0xA4C83200e0c9a61296C63333F2Bd22559058852E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712588927,
"transactionHash": "0xd2d386ae01d16c356d020ba7c45ef879503fbd2475829015b7dea9d5727289e2",
"implementations": [
"eth:0x7c37CD26F0E534d87e195BdC6319b56dBDbCF63F"
]
},
{
"timestamp": 1712826083,
"transactionHash": "0xc8fc7d108a9578d0ddfcbb2f05bab3216260adbf315fcf431b9d4eacb520de1f",
"implementations": [
"eth:0x176bFD9863C349cc8b21e6CfEB7AE01F33E18bBB"
]
},
{
"timestamp": 1713067103,
"transactionHash": "0x75a32f672c7ab36ab94668266ae85b53cb8a4d074e3cfe25d6d91bc2cba037ea",
"implementations": [
"eth:0x642fb929257071249d9F1E33663B4b6ac00B6583"
]
},
{
"timestamp": 1713222071,
"transactionHash": "0xba24047c00fde29d8251bab2763736357bbff2e4c4975fd32edfaa34c0a15eaf",
"implementations": [
"eth:0xc2709A091c5C56009472B6f1cde2daa936A3d321"
]
},
{
"timestamp": 1713436703,
"transactionHash": "0xfb21ea8c42a7ec8e857f290946abcb6b0eff376696939dd4a9dab826d8b01b51",
"implementations": [
"eth:0x2261ef65a61b2E3dcdE68D74536E9BE096280138"
]
},
{
"timestamp": 1713487691,
"transactionHash": "0xb1a411b26de60d3ebcc79302c8c91ae4dff65d2a1c3e0988e3bdb070a2da65f8",
"implementations": [
"eth:0x2261ef65a61b2E3dcdE68D74536E9BE096280138"
]
},
{
"timestamp": 1713488747,
"transactionHash": "0x32d0626aab1365ae2da162f49efae3c8e43b5d94a4bcc16ba9ec66b0c39f25a3",
"implementations": [
"eth:0x91121c0404EC13Af4279eD90ba929e26C575EdCb"
]
},
{
"timestamp": 1718075183,
"transactionHash": "0xcbbdb6e46b384ba2f88981ce6858d83abe7f82c0b1b76cfcedde97003fa41fe4",
"implementations": [
"eth:0xeda445E67Be1898296C3751Ec75D37aF51419e55"
]
},
{
"timestamp": 1737681179,
"transactionHash": "0xd3f288221e856c9a9fc29182411a7306f398f8a023c4f23e27ac2b04ff9526f8",
"implementations": [
"eth:0xDC9E0d46Bd75aA2837B266715d870B497104Fae7"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xA4C83200e0c9a61296C63333F2Bd22559058852E"
]
}
],
"description": "Deploys and controls per-AVS operator contracts (behind a beacon) for EigenLayer AVS registration. EigenLayer core is external.\n* Roles:\n * **admin**: EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2093Bbb221f1d8C7c932c32ee28Be6dEe4a37A6a#code"
},
{
"name": "StakingManager",
"isVerified": true,
"address": "eth:0x25e821b7197B146F7713C3b89B6A4D83516B912d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x66e1C53e846eF3E9f3722591868AfcFfB7f39800"
"eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683046943,
"transactionHash": "0x190cd406ac50af3f5154196d5017f5dc49769919cbe3eb88193dd7051caab897",
"implementations": [
"eth:0x26c64a915Bc24B228dc0890E6431a1E32A3771cD"
]
},
{
"timestamp": 1683571979,
"transactionHash": "0x395502e8b14b097a32f55d9d728d02c805c8b937d84cebce5327d1868d2a7938",
"implementations": [
"eth:0x733015E8606F4f079828f0bf71A2FC7135F9d119"
]
},
{
"timestamp": 1683748907,
"transactionHash": "0x94d8c3978508ea739ed5dd2857245491a55ccb46f9c6bfb8f86fe06751184ed5",
"implementations": [
"eth:0xbCd9e3FaF68DEA61b90E64c29881B711559e8a15"
]
},
{
"timestamp": 1689013511,
"transactionHash": "0x8a1a58932ae1b02bab861f66d444180a590cb63999422091c383fa95c184b036",
"implementations": [
"eth:0xE55eacdC1EC9dA0f33B9CEa7D136a47CC6008C69"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x4aD639Fc9c73F547bffF8b28D091D86d2472FA1e"
]
},
{
"timestamp": 1711325927,
"transactionHash": "0xf32d13d78ca8250c622ee5c7135b50e4a41144c39aa0161a390f95ac818b33dc",
"implementations": [
"eth:0xB27d4e7b8fF1EF21751b50F3821D99719Ad5868f"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0x433d06fFc5EfE0e93daa22fcEF7eD60e65Bf70b4"
]
},
{
"timestamp": 1760629595,
"transactionHash": "0x680252e61a9aefec07d38525e57222d0cf484659dc2f98c0937a0c939caec94f",
"implementations": [
"eth:0xa38d03ea42F8bc31892336E1F42523e94FB91a7A"
]
},
{
"timestamp": 1765810847,
"transactionHash": "0xd7e028c41ac9c95718679a6d026b0471df56c895c15f53af0db46ea98ec3ab54",
"implementations": [
"eth:0xd3985048Bf1Cb613F5E199713a86B2aD3954F82A"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x66e1C53e846eF3E9f3722591868AfcFfB7f39800"
]
},
{
"timestamp": 1790348351,
"transactionHash": "0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d",
"implementations": [
"eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2"
]
}
],
"description": "Registers validators and creates EtherFiNode instances (behind a beacon). Batches beacon-chain deposits from LiquidityPool ETH.\n",
"description": "Registers validators and creates EtherFiNode instances (behind a beacon), with or without an EigenLayer EigenPod. Batches beacon-chain deposits from LiquidityPool ETH, binding withdrawal credentials to the node's EigenPod or, for a node without a pod, to the node itself.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x25e821b7197B146F7713C3b89B6A4D83516B912d#code"
},
{
"name": "EtherFiViewer",
"isVerified": true,
"address": "eth:0x2ecd155405cA52a5ca0e552981fF44A8252FAb81",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf8a86ea1Ac39EC529814c377Bd484387D395421e"
],
"implementations": [
"eth:0x19C10a7E39D5457C4A3cB2c8909297D6020594d7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1711588595,
"transactionHash": "0x2458e61adc4a609f7965e1c5301174a8d5efa848a0ffdfb5df48daab0eac93c6",
"implementations": [
"eth:0x83DD4Bd90A36FD93201B4a9e938078D5d6C43c7f"
]
},
{
"timestamp": 1712711471,
"transactionHash": "0xa0aaabd831c79c2dfb0822a4e02fe6198337f0131905f41a75a157b6e276c904",
"implementations": [
"eth:0x97176e3719ad43be1C67C218d4B44ca056dE57e9"
]
},
{
"timestamp": 1723169327,
"transactionHash": "0x6127737f8045eeb79d57cbd9c1e48d2477c81b410e434d5bdf3e207c8d86db7d",
"implementations": [
"eth:0xb619F9Aa69ad5ee6C40F96d3eac87572dc6dd42C"
]
},
{
"timestamp": 1723527479,
"transactionHash": "0xaba8d460df1da8dbe45dbbb95e045861039a6528cd800f7d6d59fae887e1c426",
"implementations": [
"eth:0x6827Bf34b86e5332c449744b048ED883E609b710"
]
},
{
"timestamp": 1723528703,
"transactionHash": "0x237d600dd7757b811b10fb405a2acf953a5891b73ef328bd7cb8a9b3670c9c7e",
"implementations": [
"eth:0x5573d63C3e6df33f82497d1B58dbF63eE3E77fA8"
]
},
{
"timestamp": 1723538375,
"transactionHash": "0xa5d5c1b10663e67457a549b47017bc8c52d5c341b71082e9f50b6276080b52b3",
"implementations": [
"eth:0xA9094E33585bB1b4F82F9BB0CfF1862173acb147"
]
},
{
"timestamp": 1741592015,
"transactionHash": "0xe838832152625bb195aed13e3121d348529904b94c73512f5373e61a334af898",
"implementations": [
"eth:0x0fb6CcBae1360dC1c3c256349D56A3d3F4F85fE7"
]
},
{
"timestamp": 1741592315,
"transactionHash": "0x797a02db89328a655640ac34401e50a7afa38cc0fcbaf960e414f467c3aebc5d",
"implementations": [
"eth:0xa6C7065D345CB4E24A904E8c9B02B54a5698f223"
]
},
{
"timestamp": 1745015063,
"transactionHash": "0x916886a798fd435d3e3e1e1d1f6740829d8b43ac8639dec56763f945a486e10d",
"implementations": [
"eth:0x68384037D671a7e897aB9b37e2b48530172430C1"
]
},
{
"timestamp": 1750368887,
"transactionHash": "0x841fbece8589b04e4f36cdc6ee7f084aa4615a1f2ea968a8291ce02c12b0e93d",
"implementations": [
"eth:0xD88F3F593a616dA662275Aa201b204299189FeD3"
]
},
{
"timestamp": 1750393907,
"transactionHash": "0xdee8747f87eaafae0413b0d194ae888bc7fa9ec21bf8218745232d144e851012",
"implementations": [
"eth:0x26A2ca0164D27F5d9dd1bCe94B2b3b5B5179C22A"
]
},
{
"timestamp": 1751501519,
"transactionHash": "0x274597270f39ebaaef61be9ec6a7dd116d2184abd7d3ee28b2987268e00ee9ec",
"implementations": [
"eth:0x19C10a7E39D5457C4A3cB2c8909297D6020594d7"
]
}
],
"description": "Stateless read-only aggregator for off-chain interfaces. Holds no funds or permissions.\n* Roles:\n * **admin**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2ecd155405cA52a5ca0e552981fF44A8252FAb81#code"
},
{
"name": "LiquidityPool",
"isVerified": true,
"address": "eth:0x308861A430be4cce5502d0A12724771Fc6DaF216",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x17A16747D03006c9754548AC0d0afF48783A4a45"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689004931,
"transactionHash": "0x491b823bc15ced4c54f0ed5a235d39e478f8aae3ad02eb553924b40ad9859e10",
"implementations": [
"eth:0xe869222529075639CbBC7b637001054195A5Eb79"
]
},
{
"timestamp": 1689812555,
"transactionHash": "0x1382dd9cce1b0ffb4e6489dd1b20f21e3ce2cf450d5d4be0d4e356f8ff637120",
"implementations": [
"eth:0xCEf4286E4274433f167320dB9AE81073AccfC474"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x4D784Aa9eacc108ea5A326747870897f88d93860"
]
},
{
"timestamp": 1701990071,
"transactionHash": "0xf6ec6eb3c9d8bc0f1db17fefef0dabe33f26e689c0374176af350f1bb521f980",
"implementations": [
"eth:0x72481fB01EedE2093Af919f2Fe29334527B97f4A"
]
},
{
"timestamp": 1705621799,
"transactionHash": "0x91867318df51701729eeb1085d5228b8c13b30d6fa10d6aeab4b7549080b3a2c",
"implementations": [
"eth:0x833514B6D9BaFDdA9B45669C1f15Dc0Cd33cc0B8"
]
},
{
"timestamp": 1707181331,
"transactionHash": "0x072e16fd0ed21041860f110d64b6aab783044899a4bfd83f6dd6e53545114153",
"implementations": [
"eth:0x11858bCaC85832aCDda0BDe9B867830f7D21cF63"
]
},
{
"timestamp": 1708523723,
"transactionHash": "0x734ddfc3a9568d718f7ea10475a20d9cad3decd3849121e520ac56a3485b1517",
"implementations": [
"eth:0x403ba4cd327293A4d23beE172982509d37310cEF"
]
},
{
"timestamp": 1711325927,
"transactionHash": "0xf32d13d78ca8250c622ee5c7135b50e4a41144c39aa0161a390f95ac818b33dc",
"implementations": [
"eth:0x605F17E88027e25E18C95be0d8011aC969426399"
]
},
{
"timestamp": 1719957887,
"transactionHash": "0x1c3a292123bc0fc8ba38c673912c09481b0952d2dbed0c989d57bf97ed497b5a",
"implementations": [
"eth:0x02656fe285FAC5d5c756C2F03C17277Df9BAc65B"
]
},
{
"timestamp": 1728343199,
"transactionHash": "0xc271ccc7b8f101d0cf2f728b81476181432a14bae2772b2ef7cdb045643f1482",
"implementations": [
"eth:0xa8A8Be862BA6301E5949ABDE93b1D892C14FfB1F"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0xA6099d83A67a2c653feB5e4e48ec24C5aeE1C515"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0x025911766aEF6fF0C294FD831a2b5c17dC299B3f"
]
},
{
"timestamp": 1761867083,
"transactionHash": "0x1c76b07c7e41440a0fa3ef3d34843ef9cb96fb683844caebe8322d86f0c17e0a",
"implementations": [
"eth:0xA5C1ddD9185901E3c05E0660126627E039D0a626"
]
},
{
"timestamp": 1765810847,
"transactionHash": "0xd7e028c41ac9c95718679a6d026b0471df56c895c15f53af0db46ea98ec3ab54",
"implementations": [
"eth:0x45c2fB84E35a097055716A2d92e3ED499c519b98"
]
},
{
"timestamp": 1770052751,
"transactionHash": "0x9eeb5acafb20ce0b6955e72a2244d41e4253361b841550b344d23e4f15dede6c",
"implementations": [
"eth:0x8765bb2f362a4b72e614DF81E2841275b9358f8b"
]
},
{
"timestamp": 1773682163,
"transactionHash": "0x475ff56ea5e3767e64a38d41c9395e116e4432f44157473542684a9e8deff45d",
"implementations": [
"eth:0x83bc649fCdb2c8DA146b2154a559ddEDf937eF12"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x17A16747D03006c9754548AC0d0afF48783A4a45"
]
}
],
"description": "The protocol hub and ETH custodian. Holds pooled ETH, mints/burns eETH, prices shares, routes deposits to validators via StakingManager and serves withdrawals through the WithdrawRequestNFT queue and the EtherFiRedemptionManager buffer.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x308861A430be4cce5502d0A12724771Fc6DaF216#code"
},
{
"name": "PriorityWithdrawalQueue",
"isVerified": true,
"address": "eth:0x35e7D6feF6f72aDd3c3e39dEc6d9CCc29e3345FA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x77b929bEFe793367712C0c28Ca8E857bf23A2296"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772742191,
"transactionHash": "0xb58a7c2b2766b709bf21a4397b2d496637de41b911bc23bc213a40cdcd49d1c7",
"implementations": [
"eth:0x554B2a0c78840bBD4fDB24e198cdD93f99E29456"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x77b929bEFe793367712C0c28Ca8E857bf23A2296"
]
}
],
"description": "Priority lane of the withdrawal system for privileged/large redemptions.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35e7D6feF6f72aDd3c3e39dEc6d9CCc29e3345FA#code"
},
{
"name": "eETH",
"isVerified": true,
"address": "eth:0x35fA164735182de50811E8e2E824cFb9B6118ac2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xd1901dD36CBf4a81386d0162DF2707f7dDb60527"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689005015,
"transactionHash": "0xf6763c707b90b260bba114fce9a141aa4a923327539ded9d4d4ae4395b2200ff",
"implementations": [
"eth:0x5e9035F3f4b5Ce6BCcb45010B4aeCCeB639E5242"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0xe8e55a0734F81fd8cfFCB14447Bf52054722E3E6"
]
},
{
"timestamp": 1699720175,
"transactionHash": "0x948619778c0518e9348d3d68e7e87686935d6d64e0b2bb4695bf11369f4f637d",
"implementations": [
"eth:0x1B47A665364bC15C28B05f449B53354d0CefF72f"
]
},
{
"timestamp": 1737388499,
"transactionHash": "0xcd3df37e52936ec0b941cf99217f4ace487c7e3335c14a6bcb384b0c3c9e981a",
"implementations": [
"eth:0x46c51d2E6d5FEF0400d26320bC96995176c369DD"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0xCB3D917A965A70214f430a135154Cd5ADdA2ad84"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xd1901dD36CBf4a81386d0162DF2707f7dDb60527"
]
}
],
"description": "Rebasing liquid staking token. Balances are shares × the LiquidityPool exchange rate and total supply tracks pooled ETH. Only the LiquidityPool can mint and burn.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35fA164735182de50811E8e2E824cFb9B6118ac2#code"
},
{
"name": "EtherFiNode",
"isVerified": true,
"address": "eth:0x556Db8c611FE63e694413F718d795f976dcF5881",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Per-node implementation (behind a beacon) that holds an EigenLayer EigenPod and splits validator rewards. EigenLayer contracts are external.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x556Db8c611FE63e694413F718d795f976dcF5881#code"
},
{
"name": "EtherFiRateLimiter",
"isVerified": true,
"address": "eth:0x6C7c54cfC2225fA985cD25F04d923B93c60a02F8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x9Ea4D0Fd09B628E23B1998F2153e27E5261B1B67"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758756431,
"transactionHash": "0x178f4d3c8bea157cb9d4e6bccb0eb9c324dd5e1299a05927eeaa650e2105b417",
"implementations": [
"eth:0x1dd43C32f03f8A74b8160926D559d34358880A89"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x9Ea4D0Fd09B628E23B1998F2153e27E5261B1B67"
]
}
],
"description": "Shared rate limiter that bounds sensitive flows (e.g. withdrawals) per epoch.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6C7c54cfC2225fA985cD25F04d923B93c60a02F8#code"
},
{
"name": "CumulativeMerkleDrop",
"isVerified": true,
"address": "eth:0x6Db24Ee656843E3fE03eb8762a54D86186bA6B64",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA000244b4a36D57Ea1ECB39b5F02f255e4C8cd52"
],
"implementations": [
"eth:0x5E226B1De8b0F387d7C77f78CBa2571D2a1be511"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1728538295,
"transactionHash": "0x5ea77daf54e29d425b605f326cb9673487f13dbf45d9629b2a8fb885093fca7c",
"implementations": [
"eth:0x26542fbE5f320f25747e80831ACdD1f27CDd0c65"
]
},
{
"timestamp": 1743559007,
"transactionHash": "0x1c760df67bd742b8463109f4feb9b5e1229b0378e2c75111292bcd687beaf4d4",
"implementations": [
"eth:0x5E226B1De8b0F387d7C77f78CBa2571D2a1be511"
]
}
],
"description": "Distributor for cumulative Merkle-based claims of KING reward tokens.\n* Roles:\n * **admin**: Safe",
"upgradableBy": [
{
"name": "Safe",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6Db24Ee656843E3fE03eb8762a54D86186bA6B64#code"
},
{
"name": "EtherFiNode",
"isVerified": true,
"address": "eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Per-node implementation (behind a beacon). A node either owns an EigenLayer EigenPod that is its validators' withdrawal address, or, if created without a pod, is the withdrawal address itself and calls the EIP-7002/EIP-7251 system contracts directly to request exits and consolidations. ETH it receives is swept to the LiquidityPool. EigenLayer contracts are external.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x73Df4a005332525fB0A0B2cf067352a9b706f233#code"
},
{
"name": "EtherFiRewardsRouter",
"isVerified": true,
"address": "eth:0x73f7b1184B5cD361cC0f7654998953E2a251dd58",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xCB9614b005F11F7781e92fF2B4a9AEBfAEB33E76"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729271135,
"transactionHash": "0x8c61c92747f0185b85a76aeb4796c383b1aee355bc7c4eb3da93ab14210526d1",
"implementations": [
"eth:0xCB160aF093564E44Dc4c07bc03b828354E0fee77"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0xe94bF0DF71002ff0165CF4daB461dEBC3978B0fa"
]
},
{
"timestamp": 1770938747,
"transactionHash": "0xa8fb51d6316fdc5c43a2869e110372235017501d2377ec3f39e5324033cbb87d",
"implementations": [
"eth:0x408de8D339F40086c5643EE4778E0F872aB5E423"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xCB9614b005F11F7781e92fF2B4a9AEBfAEB33E76"
]
}
],
"description": "Routes execution-layer/consensus rewards ETH back to the LiquidityPool and treasury.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x73f7b1184B5cD361cC0f7654998953E2a251dd58#code"
},
{
"name": "WithdrawRequestNFT",
"isVerified": true,
"address": "eth:0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x41617D01362770ebAAC10311aB899FBc8a4E4A7E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1699344455,
"transactionHash": "0x15b45ce09ec6674e018aa96847e690c058857a295f4b44f68550bdcd461e9b38",
"implementations": [
"eth:0xdaaAC9488f9934956B55FcDAEF6F9D92F8008Ca7"
]
},
{
"timestamp": 1719957887,
"transactionHash": "0x1c3a292123bc0fc8ba38c673912c09481b0952d2dbed0c989d57bf97ed497b5a",
"implementations": [
"eth:0x3Ed97C79dEd8894036DA095B2E2f79F8080a9CD4"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0x685870a508b56c7f1002EEF5eFCFa01304474F61"
]
},
{
"timestamp": 1750979339,
"transactionHash": "0x3b8ae9db991a6c0fea3cf69def8bba40c2ce1123b2c10187bf83fc47c66db0f7",
"implementations": [
"eth:0xC227640C2FFE6568D02A18B95F83fE5bCcE9EAd1"
]
},
{
"timestamp": 1770938747,
"transactionHash": "0xa8fb51d6316fdc5c43a2869e110372235017501d2377ec3f39e5324033cbb87d",
"implementations": [
"eth:0x2f4A5921FcAB46F1F3154e8b42Fc189e08fae3Ed"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x41617D01362770ebAAC10311aB899FBc8a4E4A7E"
]
}
],
"description": "The eETH withdrawal queue. Burning eETH mints an NFT claim that the oracle and admin finalize, after which holders redeem it for ETH.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c#code"
},
{
"name": "AddressProvider",
"isVerified": true,
"address": "eth:0x8487c5F8550E3C3e7734Fe7DCF77DB2B72E4A848",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Legacy address registry mapping protocol contract names to addresses.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8487c5F8550E3C3e7734Fe7DCF77DB2B72E4A848#code"
},
{
"name": "RestakingRewardsRouter",
"isVerified": true,
"address": "eth:0x89E45081437c959A827d2027135bC201Ab33a2C8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x6BF6AcD4b22795080c719D987BAa8F4FCb1Ab3F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768856471,
"transactionHash": "0xd9d792267a42117b15359d51e57eaaa6d0e989f0358592fa1fcf872cbbb6dfdd",
"implementations": [
"eth:0xcB6e9a5943946307815eaDF3BEDC49fE30290CA8"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x6BF6AcD4b22795080c719D987BAa8F4FCb1Ab3F8"
]
}
],
"description": "Routes EigenLayer restaking rewards to their recipients. The reward token is external.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x89E45081437c959A827d2027135bC201Ab33a2C8#code"
},
{
"name": "EtherFiNodesManager",
"isVerified": true,
"address": "eth:0x8B71140AD2e5d1E7018d2a7f8a288BD3CD38916F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xcF5928EA7d7F164ec868cEdA7a69E08a102B5e05"
"eth:0x020016Fa077515451975712595EB3e984907ad3b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683047087,
"transactionHash": "0xd5b05866756d433eb6a77e0a83d3e206c22f78c3d5ce69b012d8f1fece82c2d8",
"implementations": [
"eth:0x86a464220EE781361822910D4403DC8F94c529Cb"
]
},
{
"timestamp": 1685985851,
"transactionHash": "0x246eb8f7ee1b8a47d8863c36b79f24a0b46f41da8326d8f5b151aa8b3e80a3b9",
"implementations": [
"eth:0xa198b536a92d9E8696c5c76e7298f09D18a270b5"
]
},
{
"timestamp": 1689013811,
"transactionHash": "0x683ca2e04e955ac31446f03a84e49b9f4c2bdae061d4553c21b89d103ebf2b8e",
"implementations": [
"eth:0x0C5631727ECF13f3e726Bc3301E364Af51b69295"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x812e3D5Af654042F7435DE477594D20Bb457BFaa"
]
},
{
"timestamp": 1700017871,
"transactionHash": "0xfe2851a8df2d4b10013248d29ee0d5ed72879fb31db6f1a685f3e1bf73b0b2fe",
"implementations": [
"eth:0x997c5422f9F9086ED59Fe4c703387BB4FD1009f7"
]
},
{
"timestamp": 1711325927,
"transactionHash": "0xf32d13d78ca8250c622ee5c7135b50e4a41144c39aa0161a390f95ac818b33dc",
"implementations": [
"eth:0xD90C5624A52a3BD4aD006d578b00c3Ecf8725fDa"
]
},
{
"timestamp": 1712664515,
"transactionHash": "0x5d218923a85373fe816df60eaaff725ff813b0b6f072fb346ad19f8cd318c12d",
"implementations": [
"eth:0xf710E95a8F9eed9131b2700f885fAd77aC8F5142"
]
},
{
"timestamp": 1719957887,
"transactionHash": "0x1c3a292123bc0fc8ba38c673912c09481b0952d2dbed0c989d57bf97ed497b5a",
"implementations": [
"eth:0x2b7790032F56BB9555E7762b5478c246d7120655"
]
},
{
"timestamp": 1721748503,
"transactionHash": "0x16e325677e85b37e3cb597e46efea1468463be5b1c667d1e8a91d87c1eeb3672",
"implementations": [
"eth:0x8e35D625b889b12b858AF6b6d13089c15daa26f5"
]
},
{
"timestamp": 1722820775,
"transactionHash": "0x74225560cea6390c4821b96d67132339a0c8e5f727b4bdb13662ba611bb27774",
"implementations": [
"eth:0xfA7Ab36382788EEe3aDbE8Da566E58a4DaA1c319"
]
},
{
"timestamp": 1725477215,
"transactionHash": "0x9b2c8e9dc239203d70c0763179aaf07a9112e31d6573c580c3503af2344542bb",
"implementations": [
"eth:0x20f2A7a3C941e13083b36f2b765213dec9EE9073"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0x572E25fD70b6eB9a3CaD1CE1D48E3CfB938767F1"
]
},
{
"timestamp": 1744948259,
"transactionHash": "0xe7e323bb61abb34624c411611c18f6e0ae38d0fcb92ae6e3e4d9011229d7751a",
"implementations": [
"eth:0xE9EE6923D41Cf5F964F11065436BD90D4577B5e4"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0x158B21148E86470E2075926EbD5528Af2D510cAF"
]
},
{
"timestamp": 1760629595,
"transactionHash": "0x680252e61a9aefec07d38525e57222d0cf484659dc2f98c0937a0c939caec94f",
"implementations": [
"eth:0x0f366dF7af5003fC7C6524665ca58bDeAdDC3745"
]
},
{
"timestamp": 1765810847,
"transactionHash": "0xd7e028c41ac9c95718679a6d026b0471df56c895c15f53af0db46ea98ec3ab54",
"implementations": [
"eth:0x3affACEBBb25ba122295bef4E1083989fEFAf003"
]
},
{
"timestamp": 1770052751,
"transactionHash": "0x9eeb5acafb20ce0b6955e72a2244d41e4253361b841550b344d23e4f15dede6c",
"implementations": [
"eth:0x789CbBe0739F1458905C9Ca6d6e74f7997622A9B"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xcF5928EA7d7F164ec868cEdA7a69E08a102B5e05"
]
},
{
"timestamp": 1790348351,
"transactionHash": "0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d",
"implementations": [
"eth:0x020016Fa077515451975712595EB3e984907ad3b"
]
}
],
"description": "Manages the fleet of EtherFiNode contracts: withdrawal credentials, rewards distribution and validator lifecycle.\n",
"description": "Manages the fleet of EtherFiNode contracts: resolves each node's withdrawal-credential target (its EigenPod, or the node itself if it has none), forwards whitelisted EigenLayer and external calls, submits EIP-7002 exit and EIP-7251 consolidation requests and sweeps node ETH to the LiquidityPool.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8B71140AD2e5d1E7018d2a7f8a288BD3CD38916F#code"
},
{
"name": "CumulativeMerkleRewardsDistributor",
"isVerified": true,
"address": "eth:0x9A8c5046a290664Bf42D065d33512fe403484534",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x9eb91bD087Ff6381E2497e54Fd796c6a166e6a8a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744238579,
"transactionHash": "0x7b86fd8dbef3f4cbd2316a1bed7e213d89c5da49aeffbddae7d2b6c8d7c43de3",
"implementations": [
"eth:0xD3F3480511FB25a3D86568B6e1eFBa09d0aDEebF"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x9eb91bD087Ff6381E2497e54Fd796c6a166e6a8a"
]
}
],
"description": "Cumulative Merkle distributor for protocol rewards.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9A8c5046a290664Bf42D065d33512fe403484534#code"
},
{
"name": "Liquifier",
"isVerified": true,
"address": "eth:0x9FFDF407cDe9a93c47611799DA23924Af3EF764F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x263A74E56EB07C2A2A84FD510615a17b66e10E70"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1705475147,
"transactionHash": "0x0d5a6cc3411ad9963e904f5d1539942dd95604c08aecd0014c940689f849af65",
"implementations": [
"eth:0x48276D17Cca7AFc3052F195b7CceEbC2179f78F8"
]
},
{
"timestamp": 1712664515,
"transactionHash": "0x5d218923a85373fe816df60eaaff725ff813b0b6f072fb346ad19f8cd318c12d",
"implementations": [
"eth:0x2225c97928934625e8382e6636D30f94C46B6Ed3"
]
},
{
"timestamp": 1713472583,
"transactionHash": "0x49c51942bbc4ed6c0dae95b589c20f33bc628d62f424d0e89b22ea5551cc91b2",
"implementations": [
"eth:0x61e2cA79cA3d90Fd1440976a6C9641431b3F296a"
]
},
{
"timestamp": 1729546187,
"transactionHash": "0x9ecc0dccb958e242f720dcb3bf0cdaca38e5be6431e43ec4c248a53c323783b7",
"implementations": [
"eth:0x5769ff35545B0BBFA27cc97C9407C5ed9d395455"
]
},
{
"timestamp": 1731409715,
"transactionHash": "0x1a49e9a2a8332d64b24e7002efc452e073b45667d04213d2af5d91e6f7e99f9c",
"implementations": [
"eth:0xB27b1dc838898368E9a81F69c626AEC7e71f02c1"
]
},
{
"timestamp": 1734912191,
"transactionHash": "0x4768ebfe4a28e5595a75103269fd73193b7a83dcecb743645bf1cb9128ec8aae",
"implementations": [
"eth:0xA1A15FB15cbda9E6c480C5bca6E9ABA9C5E2ff95"
]
},
{
"timestamp": 1770938747,
"transactionHash": "0xa8fb51d6316fdc5c43a2869e110372235017501d2377ec3f39e5324033cbb87d",
"implementations": [
"eth:0x0E7489D32D34CCdC12d7092067bf53Aa38bf2BF6"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x263A74E56EB07C2A2A84FD510615a17b66e10E70"
]
}
],
"description": "Accepts whitelisted liquid staking tokens and restaked positions in exchange for eETH, later unwinding them to ETH.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9FFDF407cDe9a93c47611799DA23924Af3EF764F#code"
},
{
"name": "EtherfiOFTAdapterUpgradeable",
"isVerified": true,
"address": "eth:0xcd2eb13D6831d4602D80E5db9230A57596CDCA63",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xa9E9bBf04F95688D7fd82036f83544630E463CAc"
],
"implementations": [
"eth:0xA82cc578927058af14fD84d96a817Dc85Ac4F946"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1727721791,
"transactionHash": "0x6f944ee740287bf0acf6a458ef101e5583bc9e75a0b89b6a7046a0d61493ce77",
"implementations": [
"eth:0xFF657DC4CF60838ED09392cCf67c1839BbB123E4"
]
},
{
"timestamp": 1733763191,
"transactionHash": "0x0ae2d6c598e722b5d31b44dd6bc9f0fe2cf711778ecbfc849d4e1266ae83db10",
"implementations": [
"eth:0xA82cc578927058af14fD84d96a817Dc85Ac4F946"
]
}
],
"description": "LayerZero OFT lock-box for weETH: locks mainnet weETH against cross-chain mint/burn. The LayerZero endpoint is external.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcd2eb13D6831d4602D80E5db9230A57596CDCA63#code"
},
{
"name": "weETH",
"isVerified": true,
"address": "eth:0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xA6Ca0607190d03CF16fe6F2865Cf40c3D160ccf3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689005159,
"transactionHash": "0xa034bdf7ec3b407125fcfbb786d908b0bcfd9976f2fbaf489776ba58b9db61ac",
"implementations": [
"eth:0xDd78355BcF9a9435BFcDd9C1482C0e72E7b08F79"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0xe629ee84C1Bd9Ea9c677d2D5391919fCf5E7d5D9"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0x353E98F34b6E5a8D9d1876Bf6dF01284d05837cB"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0x2d10683E941275D502173053927AD6066e6aFd6B"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xA6Ca0607190d03CF16fe6F2865Cf40c3D160ccf3"
]
}
],
"description": "Non-rebasing wrapper of eETH. wrap() and unwrap() convert at the LiquidityPool rate. getRate() returns the eETH-per-weETH price.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee#code"
},
{
"name": "DepositAdapter",
"isVerified": true,
"address": "eth:0xcfC6d9Bd7411962Bfe7145451A7EF71A24b6A7A2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xE774E19f087523EA316fCCb4B156169153f18b9d"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1726696091,
"transactionHash": "0x8eaecfc5a6cd4169c07e11f2e171f35e2d01fb3171daa6ea1a4de6df3b300ddc",
"implementations": [
"eth:0xE87797A1aFb329216811dfA22C87380128CA17d8"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xE774E19f087523EA316fCCb4B156169153f18b9d"
]
}
],
"description": "User-facing helper that wraps ETH and accepted liquid staking tokens into weETH in one call.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcfC6d9Bd7411962Bfe7145451A7EF71A24b6A7A2#code"
},
{
"name": "NodeOperatorManager",
"isVerified": true,
"address": "eth:0xd5edf7730ABAd812247F6F54D7bd31a52554e35E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x2474d68d6E9f7Be77C9A343ce21DBE16F0743BD3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1699558067,
"transactionHash": "0xe4c38a7795a85b1d96eca5aa5bd791f613d5dfeb18ae246ac659ff2fc917428c",
"implementations": [
"eth:0xfcC674Fc9A0602692D2a91905E7e978aE6EE2cAF"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x2474d68d6E9f7Be77C9A343ce21DBE16F0743BD3"
]
}
],
"description": "Registry of permissioned node operators and their key/bid allowances.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd5edf7730ABAd812247F6F54D7bd31a52554e35E#code"
},
{
"name": "EtherfiL1SyncPoolETH",
"isVerified": true,
"address": "eth:0xD789870beA40D056A4d26055d0bEFcC8755DA146",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xDBf6bE120D4dc72f01534673a1223182D9F6261D"
],
"implementations": [
"eth:0x5d310451276d28A90cC6910449052D29A41e3aBD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1712810903,
"transactionHash": "0x755187b46903a4b3ef55d3cfae52cc68ad171e4f5f274440ec0f16ad16e5804c",
"implementations": [
"eth:0x5Cb960F010CeedAA7D458F33D0a5F5278d648a39"
]
},
{
"timestamp": 1713507911,
"transactionHash": "0x8958cfe7014b42c53f0673817f8716220f9ee796c6f914b63a9802670d6f07f9",
"implementations": [
"eth:0x2E346C302925148c4b01625398D40faf8961085E"
]
},
{
"timestamp": 1713508055,
"transactionHash": "0x1e6e47df5782a750c131f7e02aaa20f0f6cd0a7b901d4f0fa42900ae5d36a8e6",
"implementations": [
"eth:0x2c28AeD76D1fA85E1AfE42ed476593D6cEf50155"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x5d310451276d28A90cC6910449052D29A41e3aBD"
]
}
],
"description": "L1 side of the cross-chain deposit sync pool: mints eETH against ETH bridged from L2s via LayerZero. The endpoint is external.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD789870beA40D056A4d26055d0bEFcC8755DA146#code"
},
{
"name": "EtherFiRedemptionManager",
"isVerified": true,
"address": "eth:0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5D53B303D62a7861f88650045b8D5DeB59dfb3Dc"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1742501699,
"transactionHash": "0xd9f97b2ed706d46f0fd79f9eb173fe6373488fbdb1c80299f30e65459961ae9f",
"implementations": [
"eth:0xe6f40295A7500509faD08E924c91b0F050a7b84b"
]
},
{
"timestamp": 1761867083,
"transactionHash": "0x1c76b07c7e41440a0fa3ef3d34843ef9cb96fb683844caebe8322d86f0c17e0a",
"implementations": [
"eth:0x590015FDf9334594B0Ae14f29b0dEd9f1f8504Bc"
]
},
{
"timestamp": 1761867083,
"transactionHash": "0x1c76b07c7e41440a0fa3ef3d34843ef9cb96fb683844caebe8322d86f0c17e0a",
"implementations": [
"eth:0xE3F384Dc7002547Dd240AC1Ad69a430CCE1e292d"
]
},
{
"timestamp": 1770938747,
"transactionHash": "0xa8fb51d6316fdc5c43a2869e110372235017501d2377ec3f39e5324033cbb87d",
"implementations": [
"eth:0xb4fed2BF48EF08b93256AE67ad3bFaB6F1f5c13a"
]
},
{
"timestamp": 1773682163,
"transactionHash": "0x475ff56ea5e3767e64a38d41c9395e116e4432f44157473542684a9e8deff45d",
"implementations": [
"eth:0x6BD191582F40012b2f2cdf66bD3D32bDe41191F7"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x5D53B303D62a7861f88650045b8D5DeB59dfb3Dc"
]
}
],
"description": "Instant-redemption buffer: swaps eETH/weETH for ETH from a liquidity buffer at a fee, bypassing the withdrawal queue up to available liquidity.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#code"
},
{
"name": "WeETHWithdrawAdapter",
"isVerified": true,
"address": "eth:0xFbfe6b9cEe0E555Bad7e2E7309EFFC75200cBE38",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xbe386B1Fb51ffAcAE0522a5dA099371cd4a2AAeA"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1760532923,
"transactionHash": "0x884ad34345c5df9c0035b3c1dc2ca38d693c3a8186e3acbf699341873afd7851",
"implementations": [
"eth:0x3f313F0A856aE12b0A16178e29B6Ada84c256952"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xbe386B1Fb51ffAcAE0522a5dA099371cd4a2AAeA"
]
}
],
"description": "Helper that lets a holder go from weETH directly into the eETH withdrawal queue in one transaction.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFbfe6b9cEe0E555Bad7e2E7309EFFC75200cBE38#code"
},
{
"name": "AvsOperator",
"isVerified": true,
"address": "eth:0xf4718766a7fc8c81F788669B0985FAC03D064D29",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf4718766a7fc8c81F788669B0985FAC03D064D29#code"
},
{
"name": "EtherFiAdmin",
"isVerified": true,
"address": "eth:0x0EF8fa4760Db8f5Cd4d993f3e3416f30f942D705",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d"
"eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1699344551,
"transactionHash": "0xf7500aa70c5159b2ca57bdfd62c7ab6cc71e2dafda37eb5a1d946560b89ace7f",
"implementations": [
"eth:0x9D6fC3cBaaD0ef36b2B3a4b4b311C9dd267a4aeA"
]
},
{
"timestamp": 1709073911,
"transactionHash": "0xa1742e58f540e8805e502c689994d7ba74d20f27a957509cede29aa21267cb2f",
"implementations": [
"eth:0x92E2bdC0A4b2ad593DFC66698FfC7C3052e5927E"
]
},
{
"timestamp": 1728343199,
"transactionHash": "0xc271ccc7b8f101d0cf2f728b81476181432a14bae2772b2ef7cdb045643f1482",
"implementations": [
"eth:0x92c27bA54A62fcd41d3df9Fd2dC5C8dfacbd3C4C"
]
},
{
"timestamp": 1742995739,
"transactionHash": "0x3bd34099cfa575d25c80264e55e46c47aeec28ba3088bdcdae76075b41015389",
"implementations": [
"eth:0x683583979C8be7Bcfa41E788Ab38857dfF792f49"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0xd50f28485A75A1FdE432BA7d012d0E2543D2f20d"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d"
]
},
{
"timestamp": 1790348351,
"transactionHash": "0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d",
"implementations": [
"eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8"
]
}
],
"description": "Executor that validates and applies EtherFiOracle reports (rebase, withdrawal finalization, validator approvals) subject to per-task bounds.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0EF8fa4760Db8f5Cd4d993f3e3416f30f942D705#code"
},
{
"name": "MembershipManager",
"isVerified": true,
"address": "eth:0x3d320286E014C3e1ce99Af6d6B00f0C1D63E3000",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761"
],
"implementations": [
"eth:0xa9DbE5C7C8172ef83a30c143892E0010420e6307"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689005111,
"transactionHash": "0xab2367630100ac08362b8add5df951c05d5c89395cf98cc06a57985accb17530",
"implementations": [
"eth:0x190F44c7a5e06ad5A5fD5e17522Fe243B9a3cFeE"
]
},
{
"timestamp": 1689811787,
"transactionHash": "0xe9f97fff9699f255a434251fde55087603c4e0cfd7717b5def2008d7254b2dff",
"implementations": [
"eth:0xb27e1b2c43803fF063184B8ae03791ea36De3B84"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x047A7749AD683C2Fd8A27C7904Ca8dD128F15889"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xa9DbE5C7C8172ef83a30c143892E0010420e6307"
]
}
],
"description": "Manages membership NFTs recording loyalty points and tiers for depositors.\n* Roles:\n * **admin**: EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3d320286E014C3e1ce99Af6d6B00f0C1D63E3000#code"
},
{
"name": "RevokeAdmin",
"isVerified": true,
"address": "eth:0x4A84BA0b5e716b37C78D0F5094757205626C7C1e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5a765826700CF3a918eB713b3a7978e9333085Df"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782512291,
"transactionHash": "0xf8cf676f98a325093b7d473787d3a9943a74ee91eceb50413a2f3aeb7a983ac5",
"implementations": [
"eth:0x5a765826700CF3a918eB713b3a7978e9333085Df"
]
}
],
"description": "Contract that can revoke admin and other roles in an emergency.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A84BA0b5e716b37C78D0F5094757205626C7C1e#code"
},
{
"name": "Blacklister",
"isVerified": true,
"address": "eth:0x5585996E7cFE95f2D99e61168B8b35C66Ff99B18",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xBC870C47c6eB10009A0720e76F166f104C124ecF"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782512243,
"transactionHash": "0x43de8fa0b7326654acfbdfdc64c182a3fe7a5fe57293e1f5656a7689ffe36f13",
"implementations": [
"eth:0xBC870C47c6eB10009A0720e76F166f104C124ecF"
]
}
],
"description": "Holds the blacklist consulted by eETH/weETH transfers.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5585996E7cFE95f2D99e61168B8b35C66Ff99B18#code"
},
{
"name": "EtherFiOracle",
"isVerified": true,
"address": "eth:0x57AaF0004C716388B21795431CD7D5f9D3Bb6a41",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x0565c8Ea133fF27ba9D471330A52068a268A2b9e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1699344503,
"transactionHash": "0x6fd7bc121fd95c61cbffb87d4036883aacce58ab5f2bb5accf75ac10904fc9b8",
"implementations": [
"eth:0x698cB4508F13Cc12aAD36D2B64413C302B781d9A"
]
},
{
"timestamp": 1709073911,
"transactionHash": "0xa1742e58f540e8805e502c689994d7ba74d20f27a957509cede29aa21267cb2f",
"implementations": [
"eth:0x9B9608844275e186C92AAfF115e5025fca9f22F4"
]
},
{
"timestamp": 1728343199,
"transactionHash": "0xc271ccc7b8f101d0cf2f728b81476181432a14bae2772b2ef7cdb045643f1482",
"implementations": [
"eth:0x99BE559FAdf311D2CEdeA6265F4d36dfa4377B70"
]
},
{
"timestamp": 1754575799,
"transactionHash": "0x81977c7d00c267257dbf721981abc745d5f39a7bfee2f0d1fc85f4dd6b67e200",
"implementations": [
"eth:0x5eefE6f65a280A6f1Eb1FdFf36Ab9e2af6f38462"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x0565c8Ea133fF27ba9D471330A52068a268A2b9e"
]
}
],
"description": "Committee oracle: members submit periodic reports (beacon balances, rewards, withdrawal amounts) that reach consensus before EtherFiAdmin applies them.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x57AaF0004C716388B21795431CD7D5f9D3Bb6a41#code"
},
{
"name": "RoleRegistry",
"isVerified": true,
"address": "eth:0x62247D29B4B9BECf4BB73E0c722cf6445cfC7cE9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761"
],
"implementations": [
"eth:0x3B44A093b9736af765f98F3245998f63bc757970"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741893083,
"transactionHash": "0x8440ab76fede5a0aced10798d2757477cea4cf4e9a3941603dc2fca164080dfa",
"implementations": [
"eth:0x3A75019F8b09c278D152279d446c97d009E064f3"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0x3B44A093b9736af765f98F3245998f63bc757970"
]
}
],
"description": "Central access-control registry: named roles gate privileged functions across the protocol. Role membership is read live.\n* Roles:\n * **admin**: EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x62247D29B4B9BECf4BB73E0c722cf6445cfC7cE9#code"
},
{
"name": "MembershipNFT",
"isVerified": true,
"address": "eth:0xb49e4420eA6e35F98060Cd133842DbeA9c27e479",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761"
],
"implementations": [
"eth:0xD43D99Df3D42675ce126a7CfF8F7DfF037620851"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689005063,
"transactionHash": "0x91ead36d1f684c35f6e32ea70cff333a60b3e2985b4ad62f4670319a52ca2306",
"implementations": [
"eth:0x79Ef32C314a68B3bf80Fb25697dC9cD07EF98C0A"
]
},
{
"timestamp": 1689032279,
"transactionHash": "0x3440c1094672739d4cdd3a09e86bd267af6f97a374d9f5695ec5d262db25e560",
"implementations": [
"eth:0x7106e8D7f272BAa57dbB99372FBBC7FDD06D29DC"
]
},
{
"timestamp": 1689812171,
"transactionHash": "0x3e2550609c6fef5a01b0f8f29a0163f7eccd3ed4fd8260f980fe9228771ba68d",
"implementations": [
"eth:0xe6179dbFBb0ACDaa5c778Cb795324D9d51B144DD"
]
},
{
"timestamp": 1699569635,
"transactionHash": "0x326cb1804e8cf14873823c55f1a2c6114da5bb472c23d9f4e84b8dc74d3d6bc3",
"implementations": [
"eth:0x290d981b41B713437265Cd7846806D7500307106"
]
},
{
"timestamp": 1784061383,
"transactionHash": "0xc9c80e5bc8a3f2eedfca80030eba7a5531bcb23774ca9da3e29a591032570314",
"implementations": [
"eth:0xD43D99Df3D42675ce126a7CfF8F7DfF037620851"
]
}
],
"description": "ERC-1155 membership NFT recording loyalty and tier points.\n* Roles:\n * **admin**: EtherFiTimelock",
"upgradableBy": [
{
"name": "EtherFiTimelock",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb49e4420eA6e35F98060Cd133842DbeA9c27e479#code"
},
{
"name": "EtherFiTimelock",
"isVerified": true,
"address": "eth:0xcD425f44758a08BaAB3C4908f3e3dE5776e45d7a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "OpenZeppelin TimelockController governing contract upgrades and privileged operations. Two instances: a longer Upgrade timelock and a shorter Operating timelock.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcD425f44758a08BaAB3C4908f3e3dE5776e45d7a#code"
},
{
"name": "EtherFiOperationParameters",
"isVerified": true,
"address": "eth:0xD0Ff8996DB4bDB46870b7E833b7532f484fEad1A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2aCA71020De61bb532008049e1Bd41E451aE8AdC"
],
"implementations": [
"eth:0xd6E217bf5083e4AF4046979E926DC486BaFd1C6a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1734596195,
"transactionHash": "0x678e8ffef8c2503cc909eeedafd078def10f128fa80297eb3c4c9bae75d4a3d3",
"implementations": [
"eth:0x901043448d918Af3761d6B04E6f6882733605945"
]
},
{
"timestamp": 1734655079,
"transactionHash": "0x037fd4468af10b873eb35b7c5e0ba0806f1a341266f7fea97cac4a89b83c55d4",
"implementations": [
"eth:0xd6E217bf5083e4AF4046979E926DC486BaFd1C6a"
]
}
],
"description": "Holds tunable operational parameters and per-role operator addresses.\n* Roles:\n * **admin**: GnosisSafe",
"upgradableBy": [
{
"name": "GnosisSafe",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD0Ff8996DB4bDB46870b7E833b7532f484fEad1A#code"
},
{
"name": "DepositContract",
"isVerified": true,
"address": "eth:0x00000000219ab540356cBB839Cbe05303d7705Fa",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Ethereum Beacon Chain deposit contract.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x00000000219ab540356cBB839Cbe05303d7705Fa#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "eth:0x29b1C223be35CCB6bfBd43154528cD0B881756e9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A beacon with an upgradeable implementation currently set as AvsOperator. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: AvsOperatorManager",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x29b1C223be35CCB6bfBd43154528cD0B881756e9#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "eth:0x3c55986Cfee455E2533F4D29006634EcF9B7c03F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A beacon with an upgradeable implementation currently set as EtherFiNode. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: StakingManager",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3c55986Cfee455E2533F4D29006634EcF9B7c03F#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xa9E9bBf04F95688D7fd82036f83544630E463CAc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EtherFiTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa9E9bBf04F95688D7fd82036f83544630E463CAc#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xDBf6bE120D4dc72f01534673a1223182D9F6261D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EtherFiTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDBf6bE120D4dc72f01534673a1223182D9F6261D#code"
}
]
},
"risks": []
}
+1 -1
{
"baseTimestamp": 1789917578,
"baseTimestamp": 1790850991,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "e2a34318",
"date": "Thu, 01 Oct 2026 11:10:31 GMT",
"timestamp": 1790850991,
"description": "- Upgrade via the 10d Upgrade timelock of EtherFiNodesManager, StakingManager, EtherFiAdmin and the EtherFiNode beacon implementation. Adds pod-less EtherFiNodes (node itself is the withdrawal credential target and calls the EIP-7002/EIP-7251 predeploys directly), EigenPod retirement, checks that consolidation targets are ether.fi validators, moves `linkLegacyValidatorIds` to the operating multisig, opens call forwarding to the housekeeping role (still selector-whitelisted) and drops id-based overloads.\n - EtherFiNodesManager: https://disco.l2beat.com/diff/eth:0xcF5928EA7d7F164ec868cEdA7a69E08a102B5e05/eth:0x020016Fa077515451975712595EB3e984907ad3b\n - StakingManager: https://disco.l2beat.com/diff/eth:0x66e1C53e846eF3E9f3722591868AfcFfB7f39800/eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2\n - EtherFiAdmin: https://disco.l2beat.com/diff/eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d/eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8\n - EtherFiNode (beacon impl): https://disco.l2beat.com/diff/eth:0x556Db8c611FE63e694413F718d795f976dcF5881/eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233\n- LiquidityPool `validatorSizeWei` 32 -> 1901 ETH (Operating timelock): new validators are funded as 1901 ETH compounding validators.\n- Liquifier paused for 1 day by a guardian (`pausedUntil`).\n- Treasury Safe signer swapped.",
"isHighSeverity": true,
"changeCount": 27,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0x0c83EAe1FE72c390A02E426572854931EefF93BA) [GnosisSafe] {\n +++ description: None\n values.$members.7:\n- \"eth:0x4024380A7c52328a0BB2B608846dCf2E4621f049\"\n+ \"eth:0x513A849d64C3a199C288D679946a65e5a5B709F4\"\n }\n```\n\n```diff\n contract EtherFiAdmin (eth:0x0EF8fa4760Db8f5Cd4d993f3e3416f30f942D705) [etherfi/EtherFiAdmin] {\n +++ description: Executor that validates and applies EtherFiOracle reports (rebase, withdrawal finalization, validator approvals) subject to per-task bounds.\n sourceHashes.1:\n- \"0xb5f2218dca3868408b4238b08b798eb2ab3e45919de0d85dd4f5963c3e2cecdc\"\n+ \"0x3736ab2214c0d4dffc6a163cadb347acb16e34bffc95d8a146cfc90158618d94\"\n values.$implementation:\n- \"eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d\"\n+ \"eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8\"\n values.$pastUpgrades.6:\n+ [\"2026-09-25T14:59:11.000Z\",\"0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d\",[\"eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.getImplementation:\n- \"eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d\"\n+ \"eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8\"\n implementationNames.eth:0x5b083DDe26FBA0E43940b2e161FCd129903FC27d:\n- \"EtherFiAdmin\"\n implementationNames.eth:0x841fA691AA6E30E97c817608F90111701a3D0Ac8:\n+ \"EtherFiAdmin\"\n }\n```\n\n```diff\n contract StakingManager (eth:0x25e821b7197B146F7713C3b89B6A4D83516B912d) [etherfi/StakingManager] {\n +++ description: Registers validators and creates EtherFiNode instances (behind a beacon), with or without an EigenLayer EigenPod. Batches beacon-chain deposits from LiquidityPool ETH, binding withdrawal credentials to the node's EigenPod or, for a node without a pod, to the node itself.\n sourceHashes.1:\n- \"0xf36cf379595a1d17bc1065160d3a3eaa2d035f0b27b4b68d02d98f38ce47b663\"\n+ \"0x81978cd715155eb02a9c441bf197fe27a8ae61eb6589c8255f400431c01b398a\"\n values.$implementation:\n- \"eth:0x66e1C53e846eF3E9f3722591868AfcFfB7f39800\"\n+ \"eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2\"\n values.$pastUpgrades.10:\n+ [\"2026-09-25T14:59:11.000Z\",\"0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d\",[\"eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2\"]]\n values.$upgradeCount:\n- 10\n+ 11\n values.implementation:\n- \"eth:0x556Db8c611FE63e694413F718d795f976dcF5881\"\n+ \"eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233\"\n implementationNames.eth:0x66e1C53e846eF3E9f3722591868AfcFfB7f39800:\n- \"StakingManager\"\n implementationNames.eth:0x6515B41BDcf83BE5543B88591BC0bC34d844c9c2:\n+ \"StakingManager\"\n }\n```\n\n```diff\n contract LiquidityPool (eth:0x308861A430be4cce5502d0A12724771Fc6DaF216) [etherfi/LiquidityPool] {\n +++ description: The protocol hub and ETH custodian. Holds pooled ETH, mints/burns eETH, prices shares, routes deposits to validators via StakingManager and serves withdrawals through the WithdrawRequestNFT queue and the EtherFiRedemptionManager buffer.\n values.validatorSizeWei:\n- \"32000000000000000000\"\n+ \"1901000000000000000000\"\n }\n```\n\n```diff\n contract UpgradeableBeacon (eth:0x3c55986Cfee455E2533F4D29006634EcF9B7c03F) [global/UpgradeableBeacon] {\n +++ description: A beacon with an upgradeable implementation currently set as eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233. Beacon proxy contracts pointing to this beacon will all use its implementation.\n description:\n- \"A beacon with an upgradeable implementation currently set as eth:0x556Db8c611FE63e694413F718d795f976dcF5881. Beacon proxy contracts pointing to this beacon will all use its implementation.\"\n+ \"A beacon with an upgradeable implementation currently set as eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233. Beacon proxy contracts pointing to this beacon will all use its implementation.\"\n+++ severity: HIGH\n values.implementation:\n- \"eth:0x556Db8c611FE63e694413F718d795f976dcF5881\"\n+ \"eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233\"\n }\n```\n\n```diff\n- Status: DELETED\n contract EtherFiNode (eth:0x556Db8c611FE63e694413F718d795f976dcF5881) [etherfi/EtherFiNode]\n +++ description: Per-node implementation (behind a beacon). A node either owns an EigenLayer EigenPod that is its validators' withdrawal address, or, if created without a pod, is the withdrawal address itself and calls the EIP-7002/EIP-7251 system contracts directly to request exits and consolidations. ETH it receives is swept to the LiquidityPool. EigenLayer contracts are external.\n```\n\n```diff\n contract EtherFiNodesManager (eth:0x8B71140AD2e5d1E7018d2a7f8a288BD3CD38916F) [etherfi/EtherFiNodesManager] {\n +++ description: Manages the fleet of EtherFiNode contracts: resolves each node's withdrawal-credential target (its EigenPod, or the node itself if it has none), forwards whitelisted EigenLayer and external calls, submits EIP-7002 exit and EIP-7251 consolidation requests and sweeps node ETH to the LiquidityPool.\n sourceHashes.1:\n- \"0x254c6c89d62670152c9108204fc7b53e3b2e9de699f29271f75bb6d6f5e654f2\"\n+ \"0xa3bff41a6f2d4f89f69fef7d5aa8b83d941986ea885f6b9cf76af4c1d0fbf106\"\n values.$implementation:\n- \"eth:0xcF5928EA7d7F164ec868cEdA7a69E08a102B5e05\"\n+ \"eth:0x020016Fa077515451975712595EB3e984907ad3b\"\n values.$pastUpgrades.18:\n+ [\"2026-09-25T14:59:11.000Z\",\"0x6a586a6e6ff829746c75f63317f5bda559191c3fac5240220ea45fae3023ea1d\",[\"eth:0x020016Fa077515451975712595EB3e984907ad3b\"]]\n values.$upgradeCount:\n- 18\n+ 19\n implementationNames.eth:0xcF5928EA7d7F164ec868cEdA7a69E08a102B5e05:\n- \"EtherFiNodesManager\"\n implementationNames.eth:0x020016Fa077515451975712595EB3e984907ad3b:\n+ \"EtherFiNodesManager\"\n }\n```\n\n```diff\n contract Liquifier (eth:0x9FFDF407cDe9a93c47611799DA23924Af3EF764F) [etherfi/Liquifier] {\n +++ description: Accepts whitelisted liquid staking tokens and restaked positions in exchange for eETH, later unwinding them to ETH.\n values.pausedUntil:\n- 0\n+ 1790894891\n }\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiNode (eth:0x73Df4a005332525fB0A0B2cf067352a9b706f233) [etherfi/EtherFiNode]\n +++ description: Per-node implementation (behind a beacon). A node either owns an EigenLayer EigenPod that is its validators' withdrawal address, or, if created without a pod, is the withdrawal address itself and calls the EIP-7002/EIP-7251 system contracts directly to request exits and consolidations. ETH it receives is swept to the LiquidityPool. EigenLayer contracts are external.\n```"
}
]
},
{
"id": "993d4c9b",
"date": "Thu, 10 Sep 2026 12:48:31 GMT",
"timestamp": 1788954474,
"description": "Initial discovery of ether.fi (eETH/weETH): tokens, LiquidityPool custody, staking/validator ops, oracle+admin report pipeline, withdrawal queue and redemption buffer, restaking and cross-chain adapters. External protocols (Lido, EigenLayer, LayerZero, Curve) and per-validator node clones are treated as out-of-scope boundaries.",
"isHighSeverity": false,
"changeCount": 44,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract DepositContract (eth:0x00000000219ab540356cBB839Cbe05303d7705Fa) [global/DepositContract]\n +++ description: Ethereum Beacon Chain deposit contract.\n```\n\n```diff\n+ Status: CREATED\n contract AuctionManager (eth:0x00C452aFFee3a17d9Cecc1Bcd2B8d5C7635C4CB9) [etherfi/AuctionManager]\n +++ description: Node-operator bid auction: operators post bids that are consumed when validators are assigned to them.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x0c83EAe1FE72c390A02E426572854931EefF93BA) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiAdmin (eth:0x0EF8fa4760Db8f5Cd4d993f3e3416f30f942D705) [etherfi/EtherFiAdmin]\n +++ description: Executor that validates and applies EtherFiOracle reports (rebase, withdrawal finalization, validator approvals) subject to per-task bounds.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiRestaker (eth:0x1B7a4C3797236A1C37f8741c0Be35c2c72736fFf) [etherfi/EtherFiRestaker]\n +++ description: Routes protocol ETH/LSTs into EigenLayer restaking and Lido withdrawals. EigenLayer and Lido contracts are external dependencies.\n```\n\n```diff\n+ Status: CREATED\n contract AvsOperatorManager (eth:0x2093Bbb221f1d8C7c932c32ee28Be6dEe4a37A6a) [etherfi/AvsOperatorManager]\n +++ description: Deploys and controls per-AVS operator contracts (behind a beacon) for EigenLayer AVS registration. EigenLayer core is external.\n```\n\n```diff\n+ Status: CREATED\n contract StakingManager (eth:0x25e821b7197B146F7713C3b89B6A4D83516B912d) [etherfi/StakingManager]\n +++ description: Registers validators and creates EtherFiNode instances (behind a beacon). Batches beacon-chain deposits from LiquidityPool ETH.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (eth:0x29b1C223be35CCB6bfBd43154528cD0B881756e9) [global/UpgradeableBeacon]\n +++ description: A beacon with an upgradeable implementation currently set as eth:0xf4718766a7fc8c81F788669B0985FAC03D064D29. Beacon proxy contracts pointing to this beacon will all use its implementation.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x2aCA71020De61bb532008049e1Bd41E451aE8AdC) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiViewer (eth:0x2ecd155405cA52a5ca0e552981fF44A8252FAb81) [etherfi/EtherFiViewer]\n +++ description: Stateless read-only aggregator for off-chain interfaces. Holds no funds or permissions.\n```\n\n```diff\n+ Status: CREATED\n contract LiquidityPool (eth:0x308861A430be4cce5502d0A12724771Fc6DaF216) [etherfi/LiquidityPool]\n +++ description: The protocol hub and ETH custodian. Holds pooled ETH, mints/burns eETH, prices shares, routes deposits to validators via StakingManager and serves withdrawals through the WithdrawRequestNFT queue and the EtherFiRedemptionManager buffer.\n```\n\n```diff\n+ Status: CREATED\n contract PriorityWithdrawalQueue (eth:0x35e7D6feF6f72aDd3c3e39dEc6d9CCc29e3345FA) [etherfi/PriorityWithdrawalQueue]\n +++ description: Priority lane of the withdrawal system for privileged/large redemptions.\n```\n\n```diff\n+ Status: CREATED\n contract eETH (eth:0x35fA164735182de50811E8e2E824cFb9B6118ac2) [etherfi/eETH]\n +++ description: Rebasing liquid staking token. Balances are shares × the LiquidityPool exchange rate and total supply tracks pooled ETH. Only the LiquidityPool can mint and burn.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (eth:0x3c55986Cfee455E2533F4D29006634EcF9B7c03F) [global/UpgradeableBeacon]\n +++ description: A beacon with an upgradeable implementation currently set as eth:0x556Db8c611FE63e694413F718d795f976dcF5881. Beacon proxy contracts pointing to this beacon will all use its implementation.\n```\n\n```diff\n+ Status: CREATED\n contract MembershipManager (eth:0x3d320286E014C3e1ce99Af6d6B00f0C1D63E3000) [etherfi/MembershipManager]\n +++ description: Manages membership NFTs recording loyalty points and tiers for depositors.\n```\n\n```diff\n+ Status: CREATED\n contract RevokeAdmin (eth:0x4A84BA0b5e716b37C78D0F5094757205626C7C1e) [etherfi/RevokeAdmin]\n +++ description: Contract that can revoke admin and other roles in an emergency.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiNode (eth:0x556Db8c611FE63e694413F718d795f976dcF5881) [etherfi/EtherFiNode]\n +++ description: Per-node implementation (behind a beacon) that holds an EigenLayer EigenPod and splits validator rewards. EigenLayer contracts are external.\n```\n\n```diff\n+ Status: CREATED\n contract Blacklister (eth:0x5585996E7cFE95f2D99e61168B8b35C66Ff99B18) [etherfi/Blacklister]\n +++ description: Holds the blacklist consulted by eETH/weETH transfers.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiOracle (eth:0x57AaF0004C716388B21795431CD7D5f9D3Bb6a41) [etherfi/EtherFiOracle]\n +++ description: Committee oracle: members submit periodic reports (beacon balances, rewards, withdrawal amounts) that reach consensus before EtherFiAdmin applies them.\n```\n\n```diff\n+ Status: CREATED\n contract RoleRegistry (eth:0x62247D29B4B9BECf4BB73E0c722cf6445cfC7cE9) [etherfi/RoleRegistry]\n +++ description: Central access-control registry: named roles gate privileged functions across the protocol. Role membership is read live.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiRateLimiter (eth:0x6C7c54cfC2225fA985cD25F04d923B93c60a02F8) [etherfi/EtherFiRateLimiter]\n +++ description: Shared rate limiter that bounds sensitive flows (e.g. withdrawals) per epoch.\n```\n\n```diff\n+ Status: CREATED\n contract CumulativeMerkleDrop (eth:0x6Db24Ee656843E3fE03eb8762a54D86186bA6B64) [etherfi/CumulativeMerkleDrop]\n +++ description: Distributor for cumulative Merkle-based claims of KING reward tokens.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiRewardsRouter (eth:0x73f7b1184B5cD361cC0f7654998953E2a251dd58) [etherfi/EtherFiRewardsRouter]\n +++ description: Routes execution-layer/consensus rewards ETH back to the LiquidityPool and treasury.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawRequestNFT (eth:0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c) [etherfi/WithdrawRequestNFT]\n +++ description: The eETH withdrawal queue. Burning eETH mints an NFT claim that the oracle and admin finalize, after which holders redeem it for ETH.\n```\n\n```diff\n+ Status: CREATED\n contract AddressProvider (eth:0x8487c5F8550E3C3e7734Fe7DCF77DB2B72E4A848) [etherfi/AddressProvider]\n +++ description: Legacy address registry mapping protocol contract names to addresses.\n```\n\n```diff\n+ Status: CREATED\n contract RestakingRewardsRouter (eth:0x89E45081437c959A827d2027135bC201Ab33a2C8) [etherfi/RestakingRewardsRouter]\n +++ description: Routes EigenLayer restaking rewards to their recipients. The reward token is external.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiNodesManager (eth:0x8B71140AD2e5d1E7018d2a7f8a288BD3CD38916F) [etherfi/EtherFiNodesManager]\n +++ description: Manages the fleet of EtherFiNode contracts: withdrawal credentials, rewards distribution and validator lifecycle.\n```\n\n```diff\n+ Status: CREATED\n contract CumulativeMerkleRewardsDistributor (eth:0x9A8c5046a290664Bf42D065d33512fe403484534) [etherfi/CumulativeMerkleRewardsDistributor]\n +++ description: Cumulative Merkle distributor for protocol rewards.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiTimelock (eth:0x9f26d4C958fD811A1F59B01B86Be7dFFc9d20761) [etherfi/EtherFiTimelock]\n +++ description: OpenZeppelin TimelockController governing contract upgrades and privileged operations. Two instances: a longer Upgrade timelock and a shorter Operating timelock.\n```\n\n```diff\n+ Status: CREATED\n contract Liquifier (eth:0x9FFDF407cDe9a93c47611799DA23924Af3EF764F) [etherfi/Liquifier]\n +++ description: Accepts whitelisted liquid staking tokens and restaked positions in exchange for eETH, later unwinding them to ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xA000244b4a36D57Ea1ECB39b5F02f255e4C8cd52) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xa9E9bBf04F95688D7fd82036f83544630E463CAc) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MembershipNFT (eth:0xb49e4420eA6e35F98060Cd133842DbeA9c27e479) [etherfi/MembershipNFT]\n +++ description: ERC-1155 membership NFT recording loyalty and tier points.\n```\n\n```diff\n+ Status: CREATED\n contract EtherfiOFTAdapterUpgradeable (eth:0xcd2eb13D6831d4602D80E5db9230A57596CDCA63) [etherfi/EtherfiOFTAdapterUpgradeable]\n +++ description: LayerZero OFT lock-box for weETH: locks mainnet weETH against cross-chain mint/burn. The LayerZero endpoint is external.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiTimelock (eth:0xcD425f44758a08BaAB3C4908f3e3dE5776e45d7a) [etherfi/EtherFiTimelock]\n +++ description: OpenZeppelin TimelockController governing contract upgrades and privileged operations. Two instances: a longer Upgrade timelock and a shorter Operating timelock.\n```\n\n```diff\n+ Status: CREATED\n contract weETH (eth:0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee) [etherfi/weETH]\n +++ description: Non-rebasing wrapper of eETH. wrap() and unwrap() convert at the LiquidityPool rate. getRate() returns the eETH-per-weETH price.\n```\n\n```diff\n+ Status: CREATED\n contract DepositAdapter (eth:0xcfC6d9Bd7411962Bfe7145451A7EF71A24b6A7A2) [etherfi/DepositAdapter]\n +++ description: User-facing helper that wraps ETH and accepted liquid staking tokens into weETH in one call.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiOperationParameters (eth:0xD0Ff8996DB4bDB46870b7E833b7532f484fEad1A) [etherfi/EtherFiOperationParameters]\n +++ description: Holds tunable operational parameters and per-role operator addresses.\n```\n\n```diff\n+ Status: CREATED\n contract NodeOperatorManager (eth:0xd5edf7730ABAd812247F6F54D7bd31a52554e35E) [etherfi/NodeOperatorManager]\n +++ description: Registry of permissioned node operators and their key/bid allowances.\n```\n\n```diff\n+ Status: CREATED\n contract EtherfiL1SyncPoolETH (eth:0xD789870beA40D056A4d26055d0bEFcC8755DA146) [etherfi/EtherfiL1SyncPoolETH]\n +++ description: L1 side of the cross-chain deposit sync pool: mints eETH against ETH bridged from L2s via LayerZero. The endpoint is external.\n```\n\n```diff\n+ Status: CREATED\n contract EtherFiRedemptionManager (eth:0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0) [etherfi/EtherFiRedemptionManager]\n +++ description: Instant-redemption buffer: swaps eETH/weETH for ETH from a liquidity buffer at a fee, bypassing the withdrawal queue up to available liquidity.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xDBf6bE120D4dc72f01534673a1223182D9F6261D) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AvsOperator (eth:0xf4718766a7fc8c81F788669B0985FAC03D064D29) [eigenlayer/AVSOperator]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WeETHWithdrawAdapter (eth:0xFbfe6b9cEe0E555Bad7e2E7309EFFC75200cBE38) [etherfi/WeETHWithdrawAdapter]\n +++ description: Helper that lets a holder go from weETH directly into the eETH withdrawal queue in one transaction.\n```"
}
]
}
]
+1 -1
+1 -1
{
"baseTimestamp": 1789471844,
"baseTimestamp": 1790851084,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+11 -11
+8 -8
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Conduit Multisig 1",
"name": "Conduit Multisig 1",
"description": "A Multisig with 4/11 threshold. \n* Can upgrade **with no delay**\n * DelayedWETH [via: ProxyAdmin]\n * SuperchainConfig [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * L1StandardBridge [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n * L1ERC721Bridge [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * AnchorStateRegistry [via: ProxyAdmin]\n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system \n* Can interact with DisputeGameFactory\n * set the dispute game implementation and initial bond for any game type ",
"accounts": [
{
"address": "eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746",
"type": "Contract",
"isVerified": true,
"name": "0x4a49…A746",
"url": "https://etherscan.io/address/0x4a4962275DF8C60a80d3a25faEc5AA7De116A746"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9402c42dB162d5a0927c032136f40Cc9C71853F2",
"type": "EOA",
"isVerified": true,
"name": "0x9402…53F2",
"url": "https://etherscan.io/address/0x9402c42dB162d5a0927c032136f40Cc9C71853F2"
},
{
"address": "eth:0xcdC931935768c0562AfE989A366a3Dc4d52F4853",
"type": "EOA",
"isVerified": true,
"name": "0xcdC9…4853",
"url": "https://etherscan.io/address/0xcdC931935768c0562AfE989A366a3Dc4d52F4853"
},
{
"address": "eth:0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09",
"type": "EOA",
"isVerified": true,
"name": "0xA9FC…8d09",
"url": "https://etherscan.io/address/0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09"
},
{
"address": "eth:0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6",
"type": "EOA",
"isVerified": true,
"name": "0x6BB4…83A6",
"url": "https://etherscan.io/address/0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6"
},
{
"address": "eth:0x2103c69696CB2D3779f5445393808239034E911c",
"type": "EOA",
"isVerified": true,
"name": "0x2103…911c",
"url": "https://etherscan.io/address/0x2103c69696CB2D3779f5445393808239034E911c"
},
{
"address": "eth:0x81175155D85377C337d92f1FA52Da166C3A4E7Ac",
"type": "EOA",
"isVerified": true,
"name": "0x8117…E7Ac",
"url": "https://etherscan.io/address/0x81175155D85377C337d92f1FA52Da166C3A4E7Ac"
},
{
"address": "eth:0xA0737fea60F0601A192E3d2c98865A883ab0bda2",
"type": "EOA",
"isVerified": true,
"name": "0xA073…bda2",
"url": "https://etherscan.io/address/0xA0737fea60F0601A192E3d2c98865A883ab0bda2"
},
{
"address": "eth:0xF3313C48BD8E17b823d5498D62F37019dFEA647D",
"type": "EOA",
"isVerified": true,
"name": "0xF331…647D",
"url": "https://etherscan.io/address/0xF3313C48BD8E17b823d5498D62F37019dFEA647D"
},
{
"address": "eth:0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038",
"type": "EOA",
"isVerified": true,
"name": "0xa0C6…9038",
"url": "https://etherscan.io/address/0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038"
},
{
"address": "eth:0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C",
"type": "EOA",
"isVerified": true,
"name": "0xefCf…dD5C",
"url": "https://etherscan.io/address/0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C"
},
{
"address": "eth:0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe",
"type": "EOA",
"isVerified": true,
"name": "0x4D80…5BAe",
"url": "https://etherscan.io/address/0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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:0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"address": "eth:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"type": "EOA",
"isVerified": true,
"name": "0x8839…54DA",
"url": "https://etherscan.io/address/0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"name": "0xa400…e6e4",
"url": "https://etherscan.io/address/0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"address": "eth:0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"type": "EOA",
"isVerified": true,
"name": "0xa400…e6e4",
"url": "https://etherscan.io/address/0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"name": "0x8839…54DA",
"url": "https://etherscan.io/address/0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xaD06988A3aBD79DC9eD6c4E84d373Bd739E9d4b5",
"type": "EOA",
"isVerified": true,
"name": "0xaD06…d4b5",
"url": "https://etherscan.io/address/0xaD06988A3aBD79DC9eD6c4E84d373Bd739E9d4b5",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+2 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x2f3d687e02dbe83B6cDaE02aeb66C0e8E69CcA4b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756733255,
"transactionHash": "0xf9461b9a1119187637520c5034603d8386799d01e97e5751e9bdbe46b4303c09",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the forknet 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**: AgglayerManager, EOA 2\n * **aggchainSigners**: EOA 3",
"description": "System contract defining the forknet 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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 3",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2f3d687e02dbe83B6cDaE02aeb66C0e8E69CcA4b#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x5D2952EAe032aa33e977c52f810e0089261efB27",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x2bFE4A5Bd5A41e9d848d843ebCDFa15954e9A557"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1\n * **batcherHash**: EOA 1\n * **owner**: Conduit Multisig 1",
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1\n * **batcherHash**: EOA 2\n * **owner**: Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5D2952EAe032aa33e977c52f810e0089261efB27#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0xAa47071585ee92Fa9AE314C87d3d12a25c241EeD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1\n * **owner**: Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xAa47071585ee92Fa9AE314C87d3d12a25c241EeD#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0xD7cF5ce4688663e057E99D9f880599Ce88757695",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
{
"timestamp": 1756903199,
"transactionHash": "0xc33c7857ae90704d7d21f1670457a6889b8d3ac1b4f02e23f9f156a8ec3a51f9",
"implementations": [
"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x381E729FF983FA4BCEd820e7b922d79bF653B999"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
}
],
"description": "The OptimismPortal contract usually is the main entry point to deposit funds from L1 to L2 or for finalizing withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame. This specific contract is deployed in the agglayer system context which **disables the depositTransaction() function**, preventing users from sending or forcing any transactions from L1 to L2, including token deposits. It is instead used for configuration and administration of the system.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7cF5ce4688663e057E99D9f880599Ce88757695#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": "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": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x6C82EEE75Bb8b957C12FaaF8CAb549BE4b0fD5af",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6C82EEE75Bb8b957C12FaaF8CAb549BE4b0fD5af#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xB847cf7F5CE23cBaF76E751C066bfE732951501f",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x22D12E0FAebD62d429514A65EBAe32dd316c12D6"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB847cf7F5CE23cBaF76E751C066bfE732951501f#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0xd1cFFdEF1dc379372CB06f3dEdC6debeF6059E82",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x7f1d12fB2911EB095278085f721e644C1f675696"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd1cFFdEF1dc379372CB06f3dEdC6debeF6059E82#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x04B540f9e071a83555aB12d0CCcA812E272dcAf1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x04B540f9e071a83555aB12d0CCcA812E272dcAf1#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x514795090ceA49c14f65b45c4403A36b3576AE03",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x514795090ceA49c14f65b45c4403A36b3576AE03#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6463dEE3828677F6270d83d45408044fc5eDB908#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0x88d414cA1d500E5CDf131022e4A27D281e8Dba44",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x88d414cA1d500E5CDf131022e4A27D281e8Dba44#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xb4899FF43Ae727B1E9CB19AC44660e4A43Fad0b5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Conduit Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb4899FF43Ae727B1E9CB19AC44660e4A43Fad0b5#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Conduit Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEfBb0af25B3bE24347f17916fda058795f36a5A0#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0xf9E57a0B702dF449295DEc146eC2bc80339FAAED",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf9E57a0B702dF449295DEc146eC2bc80339FAAED#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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1756893611,
"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": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+3 -3
+1 -1
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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:0xc68685bBcb11F05ACE5117f9693a073be5fb55Ca",
"type": "EOA",
"isVerified": true,
"name": "0xc686…55Ca",
"url": "https://etherscan.io/address/0xc68685bBcb11F05ACE5117f9693a073be5fb55Ca",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xd4eb5EcF61FF2eCFA9069787ED14820E9A53bF2b",
"type": "EOA",
"isVerified": true,
"name": "0xd4eb…bF2b",
"url": "https://etherscan.io/address/0xd4eb5EcF61FF2eCFA9069787ED14820E9A53bF2b",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0xaD83Cd3e5A725546daDC5A25088c5c098d320Ca8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756808195,
"transactionHash": "0xe032344eb8cef2d2df7a64076e1e0671870fa0b87a9a8b097ccf02c6be2a34af",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the Haust Network 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**: AgglayerManager, EOA 1\n * **aggchainSigners**: EOA 2",
"description": "System contract defining the Haust Network 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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 2",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaD83Cd3e5A725546daDC5A25088c5c098d320Ca8#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": "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": "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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1756808195,
"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": [
"HAUST"
]
},
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+3 -3
+3 -3
{
"clusteredEventCount": 13,
"contracts": [
{
"name": "SystemConfig",
"address": "eth:0x62C0a111929fA32ceC2F76aDba54C16aFb6E8364",
"isVerified": true,
"ossifyingSince": 1787692559,
"codeChangeCount": 7,
"stateChangeCount": 2
},
{
"name": "L2CrossDomainMessenger",
"address": "ink:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "ink:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "ink:0x4200000000000000000000000000000000000016",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ProxyAdmin",
"address": "ink:0x4200000000000000000000000000000000000018",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "DisputeGameFactory",
"address": "eth:0x10d7B35078d3baabB96Dd45a9143B94be65b12CD",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 6,
"stateChangeCount": 10
},
{
"name": "DelayedWETH",
"address": "eth:0x57b4C29DAee99a28E6E86778b499361294c134eA",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0x5d66C1782664115999C47c9fA5cd031f495D3e4F",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 7,
"stateChangeCount": 1
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x69d3Cf86B2Bf1a9e99875B7e2D9B6a84426c171f",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "L1StandardBridge",
"address": "eth:0x88FF1e5b602916615391F55854588EFcBB7663f0",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 6,
"stateChangeCount": 1
},
{
"name": "SuperchainConfig",
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 4,
"stateChangeCount": 2
},
{
"name": "ETHLockbox",
"address": "eth:0xbd4AbB321138e8Eddc399cE64E66451294325a14",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "AnchorStateRegistry",
"address": "eth:0xEe018bAf058227872540AC60eFbd38b023d9dAe2",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 3,
"stateChangeCount": 1
},
{
"name": "PreimageOracle",
"address": "eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "FaultDisputeGame",
"address": "eth:0x2DDA3584b51eF5236f7726Dea5A0FB6B3cA94AeC",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SaferSafes",
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"isVerified": true,
"ossifyingSince": 1764596735,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DeputyPauseModule",
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"isVerified": true,
"ossifyingSince": 1748963099,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x9b7C9BbD6d540A8A4dEDd935819fC4408Ba71153",
"isVerified": true,
"ossifyingSince": 1733498411,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xd56045E68956FCe2576E680c95a4750cf8241f79",
"isVerified": true,
"ossifyingSince": 1733498411,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessModule",
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SuperchainProxyAdmin",
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"isVerified": true,
"ossifyingSince": 1685377355,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1736803367,
1742243783,
1743612623,
1745511383,
1746628403,
1753378247,
1759422923,
1764092795,
1770667859,
1782428747,
1783526401,
1784545691,
1787692559
],
"criticalChangesPerYear": 7.145960649212742,
"criticalChangesPerYear": 7.145960150981172,
"criticalUpdates": [
{
"id": "ac066efb",
"type": "code"
},
{
"id": "304f8558",
"type": "code"
},
{
"id": "8f19a735",
"type": "code"
},
{
"id": "4e925686",
"type": "code"
},
{
"id": "dd4421dc",
"type": "code"
},
{
"id": "9ce267d2",
"type": "code"
},
{
"id": "8341db46",
"type": "code"
},
{
"id": "f3a8ed9c",
"type": "state"
},
{
"id": "3faa3c28",
"type": "state"
}
],
"lastCriticalChange": 1787692559,
"maturity": 0.4999045416940668,
"maturity": 0.49990461897259814,
"perimeterResets": [
1685377355,
1705954799,
1717149791,
1733498411,
1736803367,
1742243783,
1743612623,
1743759689,
1745511383,
1746628403,
1748963099,
1753378247,
1759422923,
1764092795,
1764329741,
1764596735,
1770667859,
1770912803,
1778190599,
1782428747,
1783526401,
1784545691,
1787692559
],
"projectClockStart": 1787692559,
"score": 50,
"windowSeconds": 57370593
"windowSeconds": 57370597
}
+4 -4
+1 -1
{
"baseTimestamp": 1788793515,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+3 -3
{
"clusteredEventCount": 30,
"contracts": [
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "SuperchainConfig",
"address": "eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "L1StandardBridge",
"address": "eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AnchorStateRegistry",
"address": "eth:0xaA8a62563CFe4E36118ED479B5486F503b438376",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 3,
"stateChangeCount": 2
},
{
"name": "DisputeGameFactory",
"address": "eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe",
"isVerified": true,
"ossifyingSince": 1788245483,
"codeChangeCount": 1,
"stateChangeCount": 5
},
{
"name": "AggchainFEP",
"address": "eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666",
"isVerified": true,
"ossifyingSince": 1787568047,
"codeChangeCount": 1,
"stateChangeCount": 16
},
{
"name": "AgglayerGateway",
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"isVerified": true,
"ossifyingSince": 1781516999,
"codeChangeCount": 1,
"stateChangeCount": 5
},
{
"name": "PreimageOracle",
"address": "eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"isVerified": true,
"ossifyingSince": 1776172415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2Timelock",
"address": "katana:0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13",
"isVerified": true,
"ossifyingSince": 1773388166,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "AgglayerBridgeL2",
"address": "katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"isVerified": true,
"ossifyingSince": 1772560429,
"codeChangeCount": 3,
"stateChangeCount": 2
},
{
"name": "BridgeLib",
"address": "katana:0xb30C032b183525de7427f04e79F45Cd19866E124",
"isVerified": true,
"ossifyingSince": 1772018458,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TokenWrappedBridgeUpgradeable",
"address": "katana:0xF0777a825470092b3Debc9af291634460b8E1a2c",
"isVerified": true,
"ossifyingSince": 1772018458,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832",
"isVerified": true,
"ossifyingSince": 1769765279,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "ProxyAdmin",
"address": "eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52",
"isVerified": true,
"ossifyingSince": 1769765279,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "AgglayerBridge",
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"isVerified": true,
"ossifyingSince": 1761747071,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "AgglayerManager",
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"isVerified": true,
"ossifyingSince": 1761747071,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "AgglayerGER",
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"isVerified": true,
"ossifyingSince": 1761747071,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "BridgeLib",
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"isVerified": true,
"ossifyingSince": 1759503191,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1748550023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "GlobalExitRootManagerL2SovereignChain",
"address": "katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA",
"isVerified": true,
"ossifyingSince": 1747840689,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "ProxyAdmin",
"address": "katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"isVerified": true,
"ossifyingSince": 1746742812,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2CrossDomainMessenger",
"address": "katana:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1746742812,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "katana:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1746742812,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65",
"isVerified": true,
"ossifyingSince": 1746742811,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Timelock",
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"isVerified": true,
"ossifyingSince": 1738676704,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SharedProxyAdmin",
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"isVerified": true,
"ossifyingSince": 1679653103,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1746747095,
1747774642,
1750689983,
1750858139,
1751061868,
1751279627,
1753290299,
1753882523,
1761747071,
1763987450,
1765376687,
1768411847,
1769765279,
1770634007,
1770926771,
1771250987,
1771411343,
1772458852,
1772552963,
1772715731,
1773388166,
1773662783,
1776963143,
1779467495,
1781095928,
1781516999,
1781619767,
1784022011,
1787568047,
1788245483
],
"criticalChangesPerYear": 21.440326837169025,
"criticalChangesPerYear": 21.440324893622716,
"criticalUpdates": [
{
"id": "41b0c8bb",
"type": "state"
},
{
"id": "627293ca",
"type": "code"
},
{
"id": "f0f02b3e",
"type": "state"
},
{
"id": "506434ca",
"type": "state"
},
{
"id": "cf34a84f",
"type": "state"
},
{
"id": "64df4461",
"type": "state"
},
{
"id": "e17f828d",
"type": "state"
},
{
"id": "5ff094a2",
"type": "state"
},
{
"id": "2760d96c",
"type": "state"
},
{
"id": "092d0a96",
"type": "state"
},
{
"id": "5c066b30",
"type": "state"
},
{
"id": "b182e3dc",
"type": "state"
},
{
"id": "5dab537d",
"type": "state"
},
{
"id": "a0780ac7",
"type": "code"
},
{
"id": "d3280720",
"type": "state"
},
{
"id": "5acfd848",
"type": "state"
},
{
"id": "08710e37",
"type": "state"
},
{
"id": "ad8059d1",
"type": "state"
},
{
"id": "8b099c72",
"type": "state"
},
{
"id": "870b374c",
"type": "state"
},
{
"id": "c93bf0f0",
"type": "state"
},
{
"id": "d922a712",
"type": "state"
},
{
"id": "60da3e8b",
"type": "code"
}
],
"lastCriticalChange": 1788245483,
"maturity": 0.4714407343143354,
"maturity": 0.47144106585717166,
"perimeterResets": [
1679653103,
1746619859,
1746740171,
1747774642,
1748550023,
1750087643,
1750689983,
1750858139,
1751061868,
1751279627,
1753290299,
1753882523,
1759503191,
1761747071,
1763987450,
1765376687,
1768411847,
1769765279,
1770634007,
1770926771,
1771250987,
1771411343,
1772018458,
1772458852,
1772552963,
1772715731,
1773388166,
1773662783,
1776172415,
1776963143,
1778190599,
1779467495,
1781095928,
1781516999,
1781619767,
1784022011,
1787568047,
1788245483
],
"projectClockStart": 1788245483,
"score": 47,
"windowSeconds": 44126193
"windowSeconds": 44126197
}
+351 -90
+1 -1
{
"badges": [],
"description": "Lido is Ethereum’s largest liquid staking protocol. Users deposit ETH and receive stETH, a rebasing token whose supply tracks the protocol’s total pooled ETH staked across four node-operator modules. Because staked ETH lives on the beacon chain, the core trust surface is the execution-layer↔consensus-layer boundary, bridged by a 5-of-9 oracle committee (bounded by on-chain sanity checks) and by trustless EIP-4788 beacon-root proofs. Withdrawal credentials are set by the protocol, so node operators cannot take user principal. Every protocol-critical change is controlled by the Lido DAO through Dual Governance, which gives stETH holders a veto and a rage-quit exit against DAO proposals over a 3-day-plus timelock.",
"detailedDescription": "Lido is Ethereum’s largest liquid staking protocol. Users deposit ETH and receive stETH, a rebasing ERC-20 whose balance equals `shares × shareRate`, so its total supply tracks the protocol’s total pooled ETH. wstETH is an immutable, adminless wrapper where 1 wstETH permanently equals one stETH share; its value changes only through the stETH contract it points to.\n\n### Staking and node operators\n\nDeposited ETH is buffered in the Lido contract, then routed by the StakingRouter across four staking modules — the curated Node Operators Registry, Simple DVT, the permissionless Community Staking Module, and the MaxEB Curated Module v2. Withdrawal credentials for pooled validators are set by the router to the protocol’s WithdrawalVault, not by operators, so operators can never redirect user principal. Their misbehavior can only degrade yield (socialized to stETH holders), they post a bond in the newer modules (CSM/CMv2), and their validators can be force-exited via EIP-7002.\n\n\n\n### The oracle and the EL↔CL boundary\n\nBecause validator balances, exits and slashings live on the consensus layer, Lido bridges that boundary two ways: a 9-member oracle committee (quorum 5 of 9, the same members across all consensus instances) that reports aggregate balances and drives the daily rebase and withdrawal finalization; and trustless EIP-4788 beacon-root proofs for facts about specific validators. A malicious oracle quorum is bounded by the OracleReportSanityChecker, which clamps per-report rebase and consensus-layer balance change within on-chain limits — it can degrade or freeze, but principal theft is tightly bounded. If the oracle committee stops reporting, rebases and withdrawal finalization stop.\n\n### Deposits, DSM and withdrawals\n\nDeposits of pooled ETH into new validators flow only through the Deposit Security Module (stVaults deposit through the PredepositGuarantee instead): 6 guardians (quorum 4) sign off on the current deposit-contract root and key set before each deposit, guarding against the [deposit-frontrunning attack](https://hackmd.io/@lido/HJfjMgW56), in which a node operator pre-registers one of its validator keys with its own withdrawal credentials so that Lido’s deposit to that key would end up under the operator’s control; any single guardian can pause deposits. Withdrawals are requested into the WithdrawalQueue (minting an unstETH NFT) and can only be finalized inside the oracle report, paying the lesser of the rate at request time and the report’s share rate.\n\n\n\n### stVaults (Lido V3)\n\nIsolated StakingVaults let operators mint stETH against 0x02-credential collateral, over-collateralized per tier, capped at 10% of stETH shares per vault and a global 30% external-ratio cap in the Lido contract. Bad debt can only be socialized to stETH holders through a role-gated committee process with an LDO objection window.\n\n### Governance and Dual Governance\n\nEvery protocol-critical action is controlled by the Lido DAO and must pass Dual Governance: Aragon Voting proposes, and execution flows through a timelock (3-day submit + 1-day schedule minimum) to the DAO Agent, which is proxy-admin of the entire protocol. stETH and wstETH holders can veto by locking ≥1% of supply in the signalling Escrow, and rage-quit at ≥10% to exit before a contested proposal executes. A time-boxed emergency committee set can freeze execution or, until 2027-06-20, reset governance to a no-veto fallback. Because the DAO can re-point the whole protocol by swapping the LidoLocator implementation, the ultimate trust assumption is the DAO acting through Dual Governance’s economic-veto timelock.",
"detailedDescription": "Lido is Ethereum’s largest liquid staking protocol. Users deposit ETH and receive stETH, a rebasing ERC-20 whose balance equals `shares × shareRate`, so its total supply tracks the protocol’s total pooled ETH. wstETH is an immutable, adminless wrapper where 1 wstETH permanently equals one stETH share; its value changes only through the stETH contract it points to.\n\n### Staking and node operators\n\nDeposited ETH is buffered in the Lido contract, then routed by the StakingRouter across four staking modules — the curated Node Operators Registry, Simple DVT, the permissionless Community Staking Module, and the MaxEB Curated Module v2. Withdrawal credentials for pooled validators are set by the router to the protocol’s WithdrawalVault, not by operators, so operators can never redirect user principal. Their misbehavior can only degrade yield (socialized to stETH holders), they post a bond in the newer modules (CSM/CMv2), and their validators can be force-exited via EIP-7002.\n\n\n\n### The oracle and the EL↔CL boundary\n\nBecause validator balances, exits and slashings live on the consensus layer, Lido bridges that boundary two ways: a 9-member oracle committee (quorum 5 of 9, the same members across all consensus instances) that reports aggregate balances and drives the daily rebase and withdrawal finalization; and trustless EIP-4788 beacon-root proofs for facts about specific validators. Each committee seat is an Execution Delegation Framework DelegationContract rather than a key: its current delegate (a hot key) submits reports through it, while the seat’s immutable owner can revoke the delegate instantly and install a new one after a 2-day cooldown without a DAO vote. Only the DAO can add or remove seats. A malicious oracle quorum is bounded by the OracleReportSanityChecker, which clamps per-report rebase and consensus-layer balance change within on-chain limits — it can degrade or freeze, but principal theft is tightly bounded. If the oracle committee stops reporting, rebases and withdrawal finalization stop.\n\n### Deposits, DSM and withdrawals\n\nDeposits of pooled ETH into new validators flow only through the Deposit Security Module (stVaults deposit through the PredepositGuarantee instead): 6 guardians (quorum 4), whose seats are DelegationContracts with the same owner and delegate model as the oracle seats, sign off on the current deposit-contract root and key set before each deposit, guarding against the [deposit-frontrunning attack](https://hackmd.io/@lido/HJfjMgW56), in which a node operator pre-registers one of its validator keys with its own withdrawal credentials so that Lido’s deposit to that key would end up under the operator’s control; any single guardian can pause deposits or unvet a module’s signing keys, and only the DAO can unpause. Withdrawals are requested into the WithdrawalQueue (minting an unstETH NFT) and can only be finalized inside the oracle report, paying the lesser of the rate at request time and the report’s share rate.\n\n\n\n### stVaults (Lido V3)\n\nIsolated StakingVaults let operators mint stETH against 0x02-credential collateral, over-collateralized per tier, capped at 10% of stETH shares per vault and a global 30% external-ratio cap in the Lido contract. Bad debt can only be socialized to stETH holders through a role-gated committee process with an LDO objection window.\n\n### Governance and Dual Governance\n\nEvery protocol-critical action is controlled by the Lido DAO and must pass Dual Governance: Aragon Voting proposes, and execution flows through a timelock (3-day submit + 1-day schedule minimum) to the DAO Agent, which is proxy-admin of the entire protocol. stETH and wstETH holders can veto by locking ≥1% of supply in the signalling Escrow, and rage-quit at ≥10% to exit before a contested proposal executes. A time-boxed emergency committee set can freeze execution or, until 2027-06-20, reset governance to a no-veto fallback. Because the DAO can re-point the whole protocol by swapping the LidoLocator implementation, the ultimate trust assumption is the DAO acting through Dual Governance’s economic-veto timelock.",
"links": {
"websites": [
"https://lido.fi/"
],
"documentation": [
"https://docs.lido.fi/"
],
"repositories": [
"https://github.com/lidofinance/core"
],
"socialMedia": [
"https://x.com/LidoFinance"
]
}
}
+81 -81
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Voting",
"name": "Voting",
"accounts": [
{
"address": "eth:0x2e59A20f205bB85a89C53f1936454680651E618e",
"type": "Contract",
"isVerified": true,
"name": "0x2e59…618e",
"url": "https://etherscan.io/address/0x2e59A20f205bB85a89C53f1936454680651E618e"
}
],
"chain": "ethereum",
"description": "Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n* Can upgrade **with 3d delay**\n * ExitPenalties [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ExitPenalties [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorsExitBusOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VaultHub [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Core Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeDistributor [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * TopUpGateway [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * LazyOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * AccountingOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * WithdrawalQueueERC721 [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ParametersRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ConsolidationMigrator [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VettedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * MetaRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorStrikes [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VettedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * WithdrawalVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * LidoLocator [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * OperatorGrid [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ConsolidationBus [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeDistributor [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedModule [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CSModule [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Burner [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorStrikes [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * PredepositGuarantee [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingRouter [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ParametersRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ValidatorsExitBusOracle\n * grant or revoke every ValidatorsExitBusOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator-exit report processing for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator-exit report processing [via: DualGovernance → ResealManager]\n* Can interact with OracleReportSanityChecker\n * grant or revoke OracleReportSanityChecker roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Escrow\n * change the minimum asset-lock duration and convert this signalling escrow into a Rage Quit escrow [via: DualGovernance]\n* Can interact with ConsolidationGateway\n * grant or revoke ConsolidationGateway roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator consolidation requests for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator consolidation requests [via: DualGovernance → ResealManager]\n* Can interact with VaultHub\n * grant or revoke every VaultHub role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause VaultHub operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume VaultHub operations [via: DualGovernance → ResealManager]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Executor\n * make arbitrary calls through this executor and transfer its ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay]\n* Can interact with Voting\n * change the minimum quorum required for a vote to pass \n * change the minimum support required for a vote to pass \n * grant, revoke, parameterize, or transfer management of the quorum-setting permission \n * grant, revoke, parameterize, or transfer management of the support-setting permission \n * grant, revoke, parameterize, or transfer management of the unsafe vote-time permission \n * grant, revoke, parameterize, or transfer management of the vote-creation permission \n* Can interact with Accounting\n * grant or revoke Accounting roles, change the bond lock period and penalty recipient, and configure fee splits and custom rewards claimers **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause bond deposits and reward claims for a chosen duration [via: DualGovernance → ResealManager]\n * resume bond deposits and reward claims [via: DualGovernance → ResealManager]\n* Can interact with FeeDistributor\n * grant or revoke FeeDistributor roles and change the rebate recipient **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TiebreakerBuildersSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with Lido Dao Agent\n * grant, revoke, parameterize, or transfer management of the Agent asset-transfer permission \n * grant, revoke, parameterize, or transfer management of the Agent execution permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the Agent script-runner permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TopUpGateway\n * grant or revoke TopUpGateway roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator top-ups for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator top-ups [via: DualGovernance → ResealManager]\n* Can interact with FeeOracle\n * grant or revoke every FeeOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause fee report submission for a chosen duration [via: DualGovernance → ResealManager]\n * resume fee report submission [via: DualGovernance → ResealManager]\n* Can interact with Accounting\n * grant or revoke Accounting roles, change the bond lock period and penalty recipient, and configure fee splits and custom rewards claimers **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause bond deposits and reward claims for a chosen duration [via: DualGovernance → ResealManager]\n * resume bond deposits and reward claims [via: DualGovernance → ResealManager]\n* Can interact with NodeOperatorsRegistry\n * add, activate, deactivate, rename, and change reward addresses of node operators, update penalty settings, and manage signing keys **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the node-operator management permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the operator-limit permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the signing-key permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-router permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TimelockedGovernance\n * submit emergency-governance proposals and cancel all pending proposals \n* Can interact with LazyOracle\n * grant or revoke LazyOracle roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with UpgradeableBeacon\n * change the beacon implementation **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CircuitBreaker\n * change pause and heartbeat durations and assign, replace, or remove pausers for supported protocol contracts **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Ejector\n * grant or revoke Ejector roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator ejection requests [via: DualGovernance → ResealManager]\n * resume validator ejection requests [via: DualGovernance → ResealManager]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ResealManager\n * reseal an already paused contract indefinitely or resume a paused contract through this adapter [via: DualGovernance]\n* Can interact with OracleRouter\n * appoint the manager and emergency operator of the OracleRouter and configure all token price feed routes, staleness limits and activation flags \n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with AccountingOracle\n * grant or revoke every AccountingOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EVMScriptRegistry\n * grant, revoke, parameterize, or transfer management of the executor-adder permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the registry-manager permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with WithdrawalQueueERC721\n * grant or revoke every WithdrawalQueue role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause new withdrawal requests for a chosen duration [via: DualGovernance → ResealManager]\n * resume new withdrawal requests [via: DualGovernance → ResealManager]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with FeeOracle\n * grant or revoke every FeeOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause fee report submission for a chosen duration [via: DualGovernance → ResealManager]\n * resume fee report submission [via: DualGovernance → ResealManager]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Lido DAO ACL\n * create new Aragon app permissions and assign their initial grantee and manager **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the permission-creator permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ParametersRegistry\n * grant or revoke ParametersRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ConsolidationMigrator\n * grant or revoke ConsolidationMigrator roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with VettedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n * resume onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n* Can interact with MetaRegistry\n * grant or revoke MetaRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ValidatorStrikes\n * grant or revoke ValidatorStrikes roles and change the Ejector used for poor-performing validators **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Liquid staked Ether 2.0 Token\n * change the ETH deposit-reserve target retained in the stETH buffer **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the buffer-reserve permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-control permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-pause permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the stETH pause permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the stETH resume permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with NodeOperatorsRegistry\n * grant, revoke, parameterize, or transfer management of the node-operator management permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the operator-limit permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-router permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with VettedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n * resume onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n* Can interact with PermissionlessGate\n * grant or revoke asset-recovery and administrative roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Lido DAO Kernel\n * grant, revoke, parameterize, or transfer management of the Aragon application-manager permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Finance\n * change Finance budgets for tracked assets \n * change or disable existing DAO payments \n * change the Finance accounting-period duration \n * create one-time or recurring DAO payments out of the Agent's assets, within the limits set on the role's ACL parameters \n * execute due DAO payments \n * grant, revoke, parameterize, or transfer management of the accounting-period permission \n * grant, revoke, parameterize, or transfer management of the budget-change permission \n * grant, revoke, parameterize, or transfer management of the payment-creation permission \n * grant, revoke, parameterize, or transfer management of the payment-execution permission \n * grant, revoke, parameterize, or transfer management of the payment-management permission \n* Can interact with TokenRateNotifier\n * add or remove token-rate observers and transfer or renounce ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TiebreakerEthereumEcosystemSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with OracleDaemonConfig\n * grant or revoke OracleDaemonConfig roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with DualGovernance\n * cancel all pending governance proposals while the Dual Governance state permits cancellation \n * change Dual Governance configuration, proposer executors, tiebreaker and reseal settings **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n * submit proposals to the Dual Governance timelock \n* Can interact with Community Staking Module Verifier\n * grant or revoke verifier pause and resume roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause processing of validator proofs [via: DualGovernance → ResealManager]\n * resume processing of validator proofs [via: DualGovernance → ResealManager]\n* Can interact with OperatorGrid\n * grant or revoke OperatorGrid roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EmergencyProtectedTimelock\n * change timelock delays and governance, transfer executor ownership, configure emergency protection, or deactivate emergency mode before its timeout **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n * submit, schedule, and cancel timelocked proposals. Execution additionally waits 86400 after scheduling [via: DualGovernance]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ConsolidationBus\n * grant or revoke ConsolidationBus roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with FeeDistributor\n * grant or revoke FeeDistributor roles and change the rebate recipient **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedModule\n * grant or revoke Curated Staking Module roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause module deposits and operator-management operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume the Curated Staking Module [via: DualGovernance → ResealManager]\n* Can interact with CSModule\n * grant or revoke Community Staking Module roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause module deposits and operator-management operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume the Community Staking Module [via: DualGovernance → ResealManager]\n* Can interact with TiebreakerNodeOperatorsSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with TriggerableWithdrawalsGateway\n * change the maximum, replenishment rate, and frame duration of the triggerable-withdrawal limit **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every TriggerableWithdrawalsGateway role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause triggerable withdrawals for a chosen duration [via: DualGovernance → ResealManager]\n * resume triggerable withdrawals [via: DualGovernance → ResealManager]\n* Can interact with Ejector\n * grant or revoke Ejector roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator ejection requests [via: DualGovernance → ResealManager]\n * resume validator ejection requests [via: DualGovernance → ResealManager]\n* Can interact with Burner\n * grant or revoke Burner roles and enable migration of excess stETH **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EasyTrack\n * cancel individual, multiple, or all pending EasyTrack motions \n * grant or revoke EasyTrack roles, change motion settings and executor, and add or remove allowed script factories \n * pause creation and enactment of EasyTrack motions \n * unpause EasyTrack motion processing \n* Can interact with ValidatorStrikes\n * grant or revoke ValidatorStrikes roles and change the Ejector used for poor-performing validators **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with PredepositGuarantee\n * grant or revoke PredepositGuarantee roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause predeposit proving and validator-deposit operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume predeposit proving and validator-deposit operations [via: DualGovernance → ResealManager]\n* Can interact with DepositSecurityModule\n * transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TiebreakerCoreCommittee\n * add or remove committee members, change quorum and voting timelock, or transfer committee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with TokenManager\n * assign LDO with an optional revocable vesting schedule \n * grant, revoke, parameterize, or transfer management of the LDO assignment permission \n * grant, revoke, parameterize, or transfer management of the LDO burn permission \n * grant, revoke, parameterize, or transfer management of the LDO issuance permission \n * grant, revoke, parameterize, or transfer management of the LDO mint permission \n * grant, revoke, parameterize, or transfer management of the vesting-revocation permission \n * mint LDO up to the issued supply \n * revoke revocable LDO vesting grants \n* Can interact with MEV Boost Relay Allowed List\n * appoint or dismiss the relay-list manager, transfer ownership, and recover ERC-20 tokens **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Community Staking Module Verifier\n * grant or revoke verifier pause and resume roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause processing of validator proofs [via: DualGovernance → ResealManager]\n * resume processing of validator proofs [via: DualGovernance → ResealManager]\n* Can interact with StakingRouter\n * add staking modules, change their fees and status, set deposit and top-up limits, and configure router-wide module parameters **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke StakingRouter roles and administer the router's privileged operations **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EVMScriptExecutor\n * replace the EasyTrack contract authorized to use this executor \n* Can interact with ParametersRegistry\n * grant or revoke ParametersRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]",
"description": "Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n* Can upgrade **with 3d delay**\n * ExitPenalties [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ExitPenalties [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorsExitBusOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VaultHub [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Core Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeDistributor [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * TopUpGateway [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Accounting [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * LazyOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * AccountingOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * WithdrawalQueueERC721 [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeOracle [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ParametersRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ConsolidationMigrator [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VettedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * MetaRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorStrikes [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * VettedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * WithdrawalVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * LidoLocator [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * OperatorGrid [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ConsolidationBus [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * FeeDistributor [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedModule [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CSModule [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingVault [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * Burner [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * CuratedGate [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ValidatorStrikes [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * PredepositGuarantee [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * StakingRouter [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * ParametersRegistry [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ValidatorsExitBusOracle\n * grant or revoke every ValidatorsExitBusOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator-exit report processing for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator-exit report processing [via: DualGovernance → ResealManager]\n* Can interact with OracleReportSanityChecker\n * grant or revoke OracleReportSanityChecker roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Escrow\n * change the minimum asset-lock duration and convert this signalling escrow into a Rage Quit escrow [via: DualGovernance]\n* Can interact with ConsolidationGateway\n * grant or revoke ConsolidationGateway roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator consolidation requests for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator consolidation requests [via: DualGovernance → ResealManager]\n* Can interact with VaultHub\n * grant or revoke every VaultHub role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause VaultHub operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume VaultHub operations [via: DualGovernance → ResealManager]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Executor\n * make arbitrary calls through this executor and transfer its ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay]\n* Can interact with Voting\n * change the minimum quorum required for a vote to pass \n * change the minimum support required for a vote to pass \n * grant, revoke, parameterize, or transfer management of the quorum-setting permission \n * grant, revoke, parameterize, or transfer management of the support-setting permission \n * grant, revoke, parameterize, or transfer management of the unsafe vote-time permission \n * grant, revoke, parameterize, or transfer management of the vote-creation permission \n* Can interact with Accounting\n * grant or revoke Accounting roles, change the bond lock period and penalty recipient, and configure fee splits and custom rewards claimers **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause bond deposits and reward claims for a chosen duration [via: DualGovernance → ResealManager]\n * resume bond deposits and reward claims [via: DualGovernance → ResealManager]\n* Can interact with FeeDistributor\n * grant or revoke FeeDistributor roles and change the rebate recipient **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with DepositSecurityModule\n * transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TiebreakerBuildersSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with Lido Dao Agent\n * grant, revoke, parameterize, or transfer management of the Agent asset-transfer permission \n * grant, revoke, parameterize, or transfer management of the Agent execution permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the Agent script-runner permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TopUpGateway\n * grant or revoke TopUpGateway roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator top-ups for a chosen duration [via: DualGovernance → ResealManager]\n * resume validator top-ups [via: DualGovernance → ResealManager]\n* Can interact with FeeOracle\n * grant or revoke every FeeOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause fee report submission for a chosen duration [via: DualGovernance → ResealManager]\n * resume fee report submission [via: DualGovernance → ResealManager]\n* Can interact with Accounting\n * grant or revoke Accounting roles, change the bond lock period and penalty recipient, and configure fee splits and custom rewards claimers **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause bond deposits and reward claims for a chosen duration [via: DualGovernance → ResealManager]\n * resume bond deposits and reward claims [via: DualGovernance → ResealManager]\n* Can interact with NodeOperatorsRegistry\n * add, activate, deactivate, rename, and change reward addresses of node operators, update penalty settings, and manage signing keys **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the node-operator management permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the operator-limit permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the signing-key permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-router permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TimelockedGovernance\n * submit emergency-governance proposals and cancel all pending proposals \n* Can interact with LazyOracle\n * grant or revoke LazyOracle roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with UpgradeableBeacon\n * change the beacon implementation **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CircuitBreaker\n * change pause and heartbeat durations and assign, replace, or remove pausers for supported protocol contracts **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Ejector\n * grant or revoke Ejector roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator ejection requests [via: DualGovernance → ResealManager]\n * resume validator ejection requests [via: DualGovernance → ResealManager]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ResealManager\n * reseal an already paused contract indefinitely or resume a paused contract through this adapter [via: DualGovernance]\n* Can interact with OracleRouter\n * appoint the manager and emergency operator of the OracleRouter and configure all token price feed routes, staleness limits and activation flags \n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with AccountingOracle\n * grant or revoke every AccountingOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EVMScriptRegistry\n * grant, revoke, parameterize, or transfer management of the executor-adder permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the registry-manager permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with WithdrawalQueueERC721\n * grant or revoke every WithdrawalQueue role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause new withdrawal requests for a chosen duration [via: DualGovernance → ResealManager]\n * resume new withdrawal requests [via: DualGovernance → ResealManager]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with FeeOracle\n * grant or revoke every FeeOracle role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause fee report submission for a chosen duration [via: DualGovernance → ResealManager]\n * resume fee report submission [via: DualGovernance → ResealManager]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Lido DAO ACL\n * create new Aragon app permissions and assign their initial grantee and manager **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the permission-creator permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ParametersRegistry\n * grant or revoke ParametersRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ConsolidationMigrator\n * grant or revoke ConsolidationMigrator roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with VettedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n * resume onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n* Can interact with MetaRegistry\n * grant or revoke MetaRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ValidatorStrikes\n * grant or revoke ValidatorStrikes roles and change the Ejector used for poor-performing validators **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Liquid staked Ether 2.0 Token\n * change the ETH deposit-reserve target retained in the stETH buffer **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the buffer-reserve permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-control permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-pause permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the stETH pause permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the stETH resume permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with NodeOperatorsRegistry\n * grant, revoke, parameterize, or transfer management of the node-operator management permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the operator-limit permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant, revoke, parameterize, or transfer management of the staking-router permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with VettedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n * resume onboarding and curve claims through this gate [via: DualGovernance → ResealManager]\n* Can interact with PermissionlessGate\n * grant or revoke asset-recovery and administrative roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Lido DAO Kernel\n * grant, revoke, parameterize, or transfer management of the Aragon application-manager permission **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Finance\n * change Finance budgets for tracked assets \n * change or disable existing DAO payments \n * change the Finance accounting-period duration \n * create one-time or recurring DAO payments out of the Agent's assets, within the limits set on the role's ACL parameters \n * execute due DAO payments \n * grant, revoke, parameterize, or transfer management of the accounting-period permission \n * grant, revoke, parameterize, or transfer management of the budget-change permission \n * grant, revoke, parameterize, or transfer management of the payment-creation permission \n * grant, revoke, parameterize, or transfer management of the payment-execution permission \n * grant, revoke, parameterize, or transfer management of the payment-management permission \n* Can interact with TokenRateNotifier\n * add or remove token-rate observers and transfer or renounce ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with TiebreakerEthereumEcosystemSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with OracleDaemonConfig\n * grant or revoke OracleDaemonConfig roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with DualGovernance\n * cancel all pending governance proposals while the Dual Governance state permits cancellation \n * change Dual Governance configuration, proposer executors, tiebreaker and reseal settings **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n * submit proposals to the Dual Governance timelock \n* Can interact with Community Staking Module Verifier\n * grant or revoke verifier pause and resume roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause processing of validator proofs [via: DualGovernance → ResealManager]\n * resume processing of validator proofs [via: DualGovernance → ResealManager]\n* Can interact with OperatorGrid\n * grant or revoke OperatorGrid roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EmergencyProtectedTimelock\n * change timelock delays and governance, transfer executor ownership, configure emergency protection, or deactivate emergency mode before its timeout **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n * submit, schedule, and cancel timelocked proposals. Execution additionally waits 86400 after scheduling [via: DualGovernance]\n* Can interact with HashConsensus\n * add or remove oracle committee members and change the report quorum **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every HashConsensus role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with ConsolidationBus\n * grant or revoke ConsolidationBus roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with FeeDistributor\n * grant or revoke FeeDistributor roles and change the rebate recipient **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedModule\n * grant or revoke Curated Staking Module roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause module deposits and operator-management operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume the Curated Staking Module [via: DualGovernance → ResealManager]\n* Can interact with CSModule\n * grant or revoke Community Staking Module roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause module deposits and operator-management operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume the Community Staking Module [via: DualGovernance → ResealManager]\n* Can interact with TiebreakerNodeOperatorsSubcommittee\n * add or remove subcommittee members, change quorum and voting timelock, or transfer subcommittee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with TriggerableWithdrawalsGateway\n * change the maximum, replenishment rate, and frame duration of the triggerable-withdrawal limit **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke every TriggerableWithdrawalsGateway role **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause triggerable withdrawals for a chosen duration [via: DualGovernance → ResealManager]\n * resume triggerable withdrawals [via: DualGovernance → ResealManager]\n* Can interact with Ejector\n * grant or revoke Ejector roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause validator ejection requests [via: DualGovernance → ResealManager]\n * resume validator ejection requests [via: DualGovernance → ResealManager]\n* Can interact with Burner\n * grant or revoke Burner roles and enable migration of excess stETH **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with CuratedGate\n * grant or revoke gate roles and change the gate's display name **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EasyTrack\n * cancel individual, multiple, or all pending EasyTrack motions \n * grant or revoke EasyTrack roles, change motion settings and executor, and add or remove allowed script factories \n * pause creation and enactment of EasyTrack motions \n * unpause EasyTrack motion processing \n* Can interact with ValidatorStrikes\n * grant or revoke ValidatorStrikes roles and change the Ejector used for poor-performing validators **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with PredepositGuarantee\n * grant or revoke PredepositGuarantee roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause predeposit proving and validator-deposit operations for a chosen duration [via: DualGovernance → ResealManager]\n * resume predeposit proving and validator-deposit operations [via: DualGovernance → ResealManager]\n* Can interact with TiebreakerCoreCommittee\n * add or remove committee members, change quorum and voting timelock, or transfer committee ownership **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor]\n* Can interact with TokenManager\n * assign LDO with an optional revocable vesting schedule \n * grant, revoke, parameterize, or transfer management of the LDO assignment permission \n * grant, revoke, parameterize, or transfer management of the LDO burn permission \n * grant, revoke, parameterize, or transfer management of the LDO issuance permission \n * grant, revoke, parameterize, or transfer management of the LDO mint permission \n * grant, revoke, parameterize, or transfer management of the vesting-revocation permission \n * mint LDO up to the issued supply \n * revoke revocable LDO vesting grants \n* Can interact with MEV Boost Relay Allowed List\n * appoint or dismiss the relay-list manager, transfer ownership, and recover ERC-20 tokens **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with Community Staking Module Verifier\n * grant or revoke verifier pause and resume roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * pause processing of validator proofs [via: DualGovernance → ResealManager]\n * resume processing of validator proofs [via: DualGovernance → ResealManager]\n* Can interact with StakingRouter\n * add staking modules, change their fees and status, set deposit and top-up limits, and configure router-wide module parameters **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n * grant or revoke StakingRouter roles and administer the router's privileged operations **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]\n* Can interact with EVMScriptExecutor\n * replace the EasyTrack contract authorized to use this executor \n* Can interact with ParametersRegistry\n * grant or revoke ParametersRegistry roles **with 3d delay** [via: DualGovernance → EmergencyProtectedTimelock with 3d delay → Executor → Lido Dao Agent]",
"discoveryDrivenData": true
},
{
"id": "EasyTrack",
"name": "EasyTrack",
"accounts": [
{
"address": "eth:0xF0211b7660680B49De1A7E9f25C65660F0a13Fea",
"type": "Contract",
"isVerified": true,
"name": "0xF021…3Fea",
"url": "https://etherscan.io/address/0xF0211b7660680B49De1A7E9f25C65660F0a13Fea"
}
],
"chain": "ethereum",
"description": "Optimistic Lido DAO motion system. Approved factories restrict the target and selector of each motion; LDO holders can object, and an unobstructed motion is executed through the EVMScriptExecutor after its delay.\n* Can interact with ValidatorsExitBusOracle\n * submit a validator-exit report hash without going through HashConsensus [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with VaultsAdapter\n * change stVault fees and jail status, set liability targets, socialize bad debt between connected vaults, and force validator exits of vaults with an obligations shortfall, through this adapter's fixed function surface [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with NodeOperatorsRegistry\n * set a node operator's vetted signing-key limit [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with ConsolidationMigrator\n * allow a source and target operator pair and select the address allowed to submit its consolidation [via: EVMScriptExecutor]\n* Can interact with VettedGate\n * replace the Merkle root and content identifier that determine eligibility [via: EVMScriptExecutor]\n* Can interact with MetaRegistry\n * create, update, and remove node-operator groups [via: EVMScriptExecutor]\n* Can interact with NodeOperatorsRegistry\n * add or remove signing keys for node operators within the permission's parameter constraints [via: EVMScriptExecutor]\n * add, activate, deactivate, rename, and change reward addresses of node operators, update penalty settings, and manage signing keys [via: EVMScriptExecutor]\n * grant, revoke, parameterize, or transfer management of the signing-key permission [via: EVMScriptExecutor]\n * obtain deposit data, update validator and target limits, report exited validators, and finalize rewards [via: EVMScriptExecutor]\n * set a node operator's vetted signing-key limit [via: EVMScriptExecutor]\n* Can interact with VettedGate\n * replace the Merkle root and content identifier that determine eligibility [via: EVMScriptExecutor]\n* Can interact with Finance\n * create one-time or recurring DAO payments out of the Agent's assets, within the limits set on the role's ACL parameters [via: EVMScriptExecutor]\n* Can interact with OperatorGrid\n * register node-operator groups, set their aggregate share limits, create or alter vault risk and fee tiers, change confirmation timing, and jail or unjail vaults [via: EVMScriptExecutor]\n* Can interact with CuratedModule\n * report slashed withdrawn validators for node operators [via: EVMScriptExecutor]\n * settle a previously reported general delayed penalty [via: EVMScriptExecutor]\n* Can interact with CSModule\n * report slashed withdrawn validators for node operators [via: EVMScriptExecutor]\n * settle a previously reported general delayed penalty [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with MEV Boost Relay Allowed List\n * add or remove supported MEV-Boost relay endpoints [via: EVMScriptExecutor]\n* Can interact with StakingRouter\n * change a staking module's target share and priority-exit share [via: EVMScriptExecutor]\n* Can interact with EVMScriptExecutor\n * execute an approved EasyTrack script through this adapter ",
"description": "Optimistic Lido DAO motion system. Approved factories restrict the target and selector of each motion; LDO holders can object, and an unobstructed motion is executed through the EVMScriptExecutor after its delay.\n* Can interact with ValidatorsExitBusOracle\n * submit a validator-exit report hash without going through HashConsensus [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with VaultsAdapter\n * change stVault fees and jail status, set liability targets, socialize bad debt between connected vaults, and force validator exits of vaults with an obligations shortfall, through this adapter's fixed function surface [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with NodeOperatorsRegistry\n * set a node operator's vetted signing-key limit [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with ConsolidationMigrator\n * allow a source and target operator pair and select the address allowed to submit its consolidation [via: EVMScriptExecutor]\n* Can interact with VettedGate\n * replace the Merkle root and content identifier that determine eligibility [via: EVMScriptExecutor]\n* Can interact with MetaRegistry\n * create, update, and remove node-operator groups [via: EVMScriptExecutor]\n* Can interact with Liquid staked Ether 2.0 Token\n * change the ETH deposit-reserve target retained in the stETH buffer [via: EVMScriptExecutor]\n* Can interact with NodeOperatorsRegistry\n * add or remove signing keys for node operators within the permission's parameter constraints [via: EVMScriptExecutor]\n * add, activate, deactivate, rename, and change reward addresses of node operators, update penalty settings, and manage signing keys [via: EVMScriptExecutor]\n * grant, revoke, parameterize, or transfer management of the signing-key permission [via: EVMScriptExecutor]\n * obtain deposit data, update validator and target limits, report exited validators, and finalize rewards [via: EVMScriptExecutor]\n * set a node operator's vetted signing-key limit [via: EVMScriptExecutor]\n* Can interact with VettedGate\n * replace the Merkle root and content identifier that determine eligibility [via: EVMScriptExecutor]\n* Can interact with Finance\n * create one-time or recurring DAO payments out of the Agent's assets, within the limits set on the role's ACL parameters [via: EVMScriptExecutor]\n* Can interact with OperatorGrid\n * register node-operator groups, set their aggregate share limits, create or alter vault risk and fee tiers, change confirmation timing, and jail or unjail vaults [via: EVMScriptExecutor]\n* Can interact with CuratedModule\n * report slashed withdrawn validators for node operators [via: EVMScriptExecutor]\n * settle a previously reported general delayed penalty [via: EVMScriptExecutor]\n* Can interact with CSModule\n * report slashed withdrawn validators for node operators [via: EVMScriptExecutor]\n * settle a previously reported general delayed penalty [via: EVMScriptExecutor]\n* Can interact with CuratedGate\n * replace the Merkle root and content identifier that determine eligible node operators [via: EVMScriptExecutor]\n* Can interact with MEV Boost Relay Allowed List\n * add or remove supported MEV-Boost relay endpoints [via: EVMScriptExecutor]\n* Can interact with StakingRouter\n * change a staking module's target share and priority-exit share [via: EVMScriptExecutor]\n* Can interact with EVMScriptExecutor\n * execute an approved EasyTrack script through this adapter ",
"discoveryDrivenData": true
},
{
"id": "CircuitBreaker",
"name": "CircuitBreaker",
"accounts": [
{
"address": "eth:0x6019CB557978296BA3C08a7B73225C0975DFB2F7",
"type": "Contract",
"isVerified": true,
"name": "0x6019…B2F7",
"url": "https://etherscan.io/address/0x6019CB557978296BA3C08a7B73225C0975DFB2F7"
}
],
"chain": "ethereum",
"description": "Emergency pause coordinator. The admin assigns one heartbeat-gated pauser to each registered protocol contract; a live pauser can trigger one time-bounded pause before its assignment is consumed.\n* Can interact with ValidatorsExitBusOracle\n * pause validator-exit report processing for a chosen duration \n* Can interact with ConsolidationGateway\n * pause validator consolidation requests for a chosen duration \n* Can interact with VaultHub\n * pause VaultHub operations for a chosen duration \n* Can interact with Accounting\n * pause bond deposits and reward claims for a chosen duration \n* Can interact with TopUpGateway\n * pause validator top-ups for a chosen duration \n* Can interact with FeeOracle\n * pause fee report submission for a chosen duration \n* Can interact with Accounting\n * pause bond deposits and reward claims for a chosen duration \n* Can interact with Ejector\n * pause validator ejection requests \n* Can interact with WithdrawalQueueERC721\n * pause new withdrawal requests for a chosen duration \n* Can interact with FeeOracle\n * pause fee report submission for a chosen duration \n* Can interact with VettedGate\n * pause onboarding and curve claims through this gate \n* Can interact with VettedGate\n * pause onboarding and curve claims through this gate \n* Can interact with Community Staking Module Verifier\n * pause processing of validator proofs \n* Can interact with CuratedModule\n * pause module deposits and operator-management operations for a chosen duration \n* Can interact with CSModule\n * pause module deposits and operator-management operations for a chosen duration \n* Can interact with TriggerableWithdrawalsGateway\n * pause triggerable withdrawals for a chosen duration \n* Can interact with Ejector\n * pause validator ejection requests \n* Can interact with PredepositGuarantee\n * pause predeposit proving and validator-deposit operations for a chosen duration \n* Can interact with Community Staking Module Verifier\n * pause processing of validator proofs ",
"discoveryDrivenData": true
},
{
"id": "CuratedModuleCommittee",
"name": "CuratedModuleCommittee",
"description": "A Multisig with 5/9 threshold. \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with CircuitBreaker\n * maintain a live heartbeat and trigger a one-time emergency pause of the specific protocol contract assigned to it in the pauser map \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with ConsolidationMigrator\n * remove an allowed source and target operator pair \n* Can interact with MetaRegistry\n * set a node operator's metadata and group assignments \n* Can interact with ConsolidationBus\n * remove pending validator consolidation batches \n* Can interact with CuratedModule\n * report a general delayed penalty against a node operator \n* Can interact with CuratedGate\n * pause onboarding through this gate \n* Can interact with ParametersRegistry\n * change general delayed-penalty, penalty-rebate, key-removal and other charge parameters ",
"accounts": [
{
"address": "eth:0x2570e0b22AD904501dfB0d49575991ACB801dD91",
"type": "Contract",
"isVerified": true,
"name": "0x2570…dD91",
"url": "https://etherscan.io/address/0x2570e0b22AD904501dfB0d49575991ACB801dD91"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xe8E5503242896efeBE3AAC55e4Ce614b0f3aF259",
"type": "EOA",
"isVerified": true,
"name": "0xe8E5…F259",
"url": "https://etherscan.io/address/0xe8E5503242896efeBE3AAC55e4Ce614b0f3aF259"
},
{
"address": "eth:0xfAd931F268dc5f8E5cdc3000baAaC0cbdb4E0a9C",
"type": "EOA",
"isVerified": true,
"name": "0xfAd9…0a9C",
"url": "https://etherscan.io/address/0xfAd931F268dc5f8E5cdc3000baAaC0cbdb4E0a9C"
},
{
"address": "eth:0x3F3C4146F597d2b1d9bC51Ad56E084cfd77Ebd9a",
"type": "EOA",
"isVerified": true,
"name": "0x3F3C…bd9a",
"url": "https://etherscan.io/address/0x3F3C4146F597d2b1d9bC51Ad56E084cfd77Ebd9a"
},
{
"address": "eth:0x6B70C69A2b6c54C3525dA5e5b241aC7437D672CB",
"type": "EOA",
"isVerified": true,
"name": "0x6B70…72CB",
"url": "https://etherscan.io/address/0x6B70C69A2b6c54C3525dA5e5b241aC7437D672CB"
},
{
"address": "eth:0x19aC7c69e5F1AC95b8d49b30Cbb79e81f1ab0dba",
"type": "EOA",
"isVerified": true,
"name": "0x19aC…0dba",
"url": "https://etherscan.io/address/0x19aC7c69e5F1AC95b8d49b30Cbb79e81f1ab0dba"
},
{
"address": "eth:0x7FfFE46F9aB8288c5D7aC3e63722f3DE8e3743E3",
"type": "EOA",
"isVerified": true,
"name": "0x7FfF…43E3",
"url": "https://etherscan.io/address/0x7FfFE46F9aB8288c5D7aC3e63722f3DE8e3743E3"
},
{
"address": "eth:0xFd660518dC1b52d9F67FAcd42bbBA962B06b8E54",
"type": "EOA",
"isVerified": true,
"name": "0xFd66…8E54",
"url": "https://etherscan.io/address/0xFd660518dC1b52d9F67FAcd42bbBA962B06b8E54"
},
{
"address": "eth:0x75b2219E1D68788f0C6f0FdA07D1d3Ab550CfE18",
"type": "EOA",
"isVerified": true,
"name": "0x75b2…fE18",
"url": "https://etherscan.io/address/0x75b2219E1D68788f0C6f0FdA07D1d3Ab550CfE18"
},
{
"address": "eth:0x08F21e00D9eE3D082cC2a7CcC9C2a5770666e7c2",
"type": "EOA",
"isVerified": true,
"name": "0x08F2…e7c2",
"url": "https://etherscan.io/address/0x08F21e00D9eE3D082cC2a7CcC9C2a5770666e7c2"
}
],
"discoveryDrivenData": true
},
{
"id": "CommunityStakingModuleCommittee",
"name": "CommunityStakingModuleCommittee",
"description": "A Multisig with 4/6 threshold. \n* Can interact with Accounting\n * assign a bond curve to an individual node operator \n* Can interact with CircuitBreaker\n * maintain a live heartbeat and trigger a one-time emergency pause of the specific protocol contract assigned to it in the pauser map \n* Can interact with ParametersRegistry\n * change general delayed-penalty, penalty-rebate, key-removal and other charge parameters \n* Can interact with CSModule\n * report a general delayed penalty against a node operator ",
"accounts": [
{
"address": "eth:0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f",
"type": "Contract",
"isVerified": true,
"name": "0xC52f…880f",
"url": "https://etherscan.io/address/0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xdac96e602fbb38De089DaB03f7a37B70C4234221",
"type": "EOA",
"isVerified": true,
"name": "0xdac9…4221",
"url": "https://etherscan.io/address/0xdac96e602fbb38De089DaB03f7a37B70C4234221"
},
{
"address": "eth:0x83EecCAf434AC9Da6132aB1124aFb755A2eA9266",
"type": "EOA",
"isVerified": true,
"name": "0x83Ee…9266",
"url": "https://etherscan.io/address/0x83EecCAf434AC9Da6132aB1124aFb755A2eA9266"
},
{
"address": "eth:0xfcfbafa0d5f5512C65DbB4C073fE4Ee6Dc3c4779",
"type": "EOA",
"isVerified": true,
"name": "0xfcfb…4779",
"url": "https://etherscan.io/address/0xfcfbafa0d5f5512C65DbB4C073fE4Ee6Dc3c4779"
},
{
"address": "eth:0x6aC2dF117C82F51BfdEF1A249672b9A9cA6b3d86",
"type": "EOA",
"isVerified": true,
"name": "0x6aC2…3d86",
"url": "https://etherscan.io/address/0x6aC2dF117C82F51BfdEF1A249672b9A9cA6b3d86"
},
{
"address": "eth:0x7aFd3C7f16FdBB3AdF331Fcc20A585d768ECf60d",
"type": "EOA",
"isVerified": true,
"name": "0x7aFd…f60d",
"url": "https://etherscan.io/address/0x7aFd3C7f16FdBB3AdF331Fcc20A585d768ECf60d"
},
{
"address": "eth:0xCbC39c37Ee315E4A504Cc1AD0D7956A76e20D90d",
"type": "EOA",
"isVerified": true,
"name": "0xCbC3…D90d",
"url": "https://etherscan.io/address/0xCbC39c37Ee315E4A504Cc1AD0D7956A76e20D90d"
}
],
"discoveryDrivenData": true
},
{
"id": "DepositSecurityModule",
"name": "DepositSecurityModule",
"accounts": [
{
"address": "eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0",
"type": "Contract",
"isVerified": true,
"name": "0x39BB…63E0",
"url": "https://etherscan.io/address/0x39BB5d491e98A44D1bfe8047A737a81E296a63E0"
}
],
"chain": "ethereum",
"description": "Guardian-based circuit breaker for staking-module deposits. Buffered ETH can only be deposited into a module with attestations of the current deposit root and module nonce from a quorum of guardians, while any single guardian can pause all deposits or unvet node-operator signing keys. The owner configures guardians, quorum and pause parameters and resumes deposits. Version 5 only accepts ERC-1271 guardian contracts and binds every signed message to the signing guardian.\n* Can interact with StakingRouter\n * decrease the vetted-signing-key limit of a node operator ",
"discoveryDrivenData": true
},
{
"id": "TreasuryManagementCommittee",
"name": "TreasuryManagementCommittee",
"description": "A Multisig with 4/7 threshold. \nMultisig of the Lido DAO Treasury Management Committee.\n* Can interact with OracleRouter\n * configure the OracleRouter's token price feed routes, staleness limits and activation flags, and resync them with the Chainlink Feed Registry ",
"accounts": [
{
"address": "eth:0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647",
"type": "Contract",
"isVerified": true,
"name": "0xa02F…D647",
"url": "https://etherscan.io/address/0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x8ecd93982FfbB2f937ADa6c6e50d1950974081C0",
"type": "EOA",
"isVerified": true,
"name": "0x8ecd…81C0",
"url": "https://etherscan.io/address/0x8ecd93982FfbB2f937ADa6c6e50d1950974081C0"
},
{
"address": "eth:0xF3d5Fdb50154B1b3047F311485780Baa1D770492",
"type": "EOA",
"isVerified": true,
"name": "0xF3d5…0492",
"url": "https://etherscan.io/address/0xF3d5Fdb50154B1b3047F311485780Baa1D770492"
},
{
"address": "eth:0x8aA493BcD7f989caD67dd3CB48A4c2E6b40FeDB0",
"type": "EOA",
"isVerified": true,
"name": "0x8aA4…eDB0",
"url": "https://etherscan.io/address/0x8aA493BcD7f989caD67dd3CB48A4c2E6b40FeDB0"
},
{
"address": "eth:0x620bD63538Bf10a87214b6187f5bc85926C2971f",
"type": "EOA",
"isVerified": true,
"name": "0x620b…971f",
"url": "https://etherscan.io/address/0x620bD63538Bf10a87214b6187f5bc85926C2971f"
},
{
"address": "eth:0x5da409e1cbDABeC67471dB01Ff956f804bb8879f",
"type": "EOA",
"isVerified": true,
"name": "0x5da4…879f",
"url": "https://etherscan.io/address/0x5da409e1cbDABeC67471dB01Ff956f804bb8879f"
},
{
"address": "eth:0x83A8B5c6990cBC78FFc45cbbfE5748B895973623",
"type": "EOA",
"isVerified": true,
"name": "0x83A8…3623",
"url": "https://etherscan.io/address/0x83A8B5c6990cBC78FFc45cbbfE5748B895973623"
},
{
"address": "eth:0x6402f26ae319b4edB6c4D459D437Fe274dE29f20",
"type": "EOA",
"isVerified": true,
"name": "0x6402…9f20",
"url": "https://etherscan.io/address/0x6402f26ae319b4edB6c4D459D437Fe274dE29f20"
}
],
"discoveryDrivenData": true
},
{
"id": "DepositSecurityModule",
"name": "DepositSecurityModule",
"accounts": [
{
"address": "eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be",
"type": "Contract",
"isVerified": true,
"name": "0xF573…e9Be",
"url": "https://etherscan.io/address/0xF573E9E3de1f86B085417ab294f56E7920B4e9Be"
}
],
"chain": "ethereum",
"description": "Guardian-based circuit breaker for legacy staking-module deposits. Guardians can collectively pause deposits if a malicious or stale deposit is observed, while the owner configures guardians and resumes deposits.\n* Can interact with StakingRouter\n * decrease the vetted-signing-key limit of a node operator ",
"discoveryDrivenData": true
},
{
"id": "StVaultsCommittee",
"name": "StVaultsCommittee",
"description": "A Multisig with 4/7 threshold. \n* Can interact with VaultsAdapter\n * change the validator-exit fee limit and withdraw ETH held by this adapter ",
"accounts": [
{
"address": "eth:0x18A1065c81b0Cc356F1b1C843ddd5E14e4AefffF",
"type": "Contract",
"isVerified": true,
"name": "0x18A1…fffF",
"url": "https://etherscan.io/address/0x18A1065c81b0Cc356F1b1C843ddd5E14e4AefffF"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x1555f8A94fC27A06C6610D00157216fa8783EA91",
"type": "EOA",
"isVerified": true,
"name": "0x1555…EA91",
"url": "https://etherscan.io/address/0x1555f8A94fC27A06C6610D00157216fa8783EA91"
},
{
"address": "eth:0x4D55af0756B43Ee0C1052e585a185A47771b022e",
"type": "EOA",
"isVerified": true,
"name": "0x4D55…022e",
"url": "https://etherscan.io/address/0x4D55af0756B43Ee0C1052e585a185A47771b022e"
},
{
"address": "eth:0xDbB7D7941d1340CB3ba862dF3A0f18084b5a69Ad",
"type": "EOA",
"isVerified": true,
"name": "0xDbB7…69Ad",
"url": "https://etherscan.io/address/0xDbB7D7941d1340CB3ba862dF3A0f18084b5a69Ad"
},
{
"address": "eth:0x28939ef21690Fe8358E93d661d1ce6d7fA9154F3",
"type": "EOA",
"isVerified": true,
"name": "0x2893…54F3",
"url": "https://etherscan.io/address/0x28939ef21690Fe8358E93d661d1ce6d7fA9154F3"
},
{
"address": "eth:0x21b82AA7149c8Fd0562E78b740937442FfD43094",
"type": "EOA",
"isVerified": true,
"name": "0x21b8…3094",
"url": "https://etherscan.io/address/0x21b82AA7149c8Fd0562E78b740937442FfD43094"
},
{
"address": "eth:0x512B58efaef534Af685F7638c177B927650eF995",
"type": "EOA",
"isVerified": true,
"name": "0x512B…F995",
"url": "https://etherscan.io/address/0x512B58efaef534Af685F7638c177B927650eF995"
},
{
"address": "eth:0xcD0cDa37f68a6758f86a4e2910E60174af1190B5",
"type": "EOA",
"isVerified": true,
"name": "0xcD0c…90B5",
"url": "https://etherscan.io/address/0xcD0cDa37f68a6758f86a4e2910E60174af1190B5"
}
],
"discoveryDrivenData": true
},
{
"id": "TiebreakerBuildersSubcommittee",
"name": "TiebreakerBuildersSubcommittee",
"accounts": [
{
"address": "eth:0x3D3ba54D54bbFF40F2Dfa2A8e27bD4dE3dab2951",
"type": "Contract",
"isVerified": true,
"name": "0x3D3b…2951",
"url": "https://etherscan.io/address/0x3D3ba54D54bbFF40F2Dfa2A8e27bD4dE3dab2951"
}
],
"chain": "ethereum",
"description": "A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n* Can interact with TiebreakerCoreCommittee\n * vote to schedule a governance proposal or resume a sealable contract through the Dual Governance tiebreaker ",
"discoveryDrivenData": true
},
{
"id": "EmergencyBrakesEthereum",
"name": "EmergencyBrakesEthereum",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EasyTrack\n * pause creation and enactment of EasyTrack motions ",
"accounts": [
{
"address": "eth:0x73b047fe6337183A454c5217241D780a932777bD",
"type": "Contract",
"isVerified": true,
"name": "0x73b0…77bD",
"url": "https://etherscan.io/address/0x73b047fe6337183A454c5217241D780a932777bD"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xCFfE0F3B089e46D8212408Ba061c425776E64322",
"type": "EOA",
"isVerified": true,
"name": "0xCFfE…4322",
"url": "https://etherscan.io/address/0xCFfE0F3B089e46D8212408Ba061c425776E64322"
},
{
"address": "eth:0xdd19274b614b5ecAcf493Bc43C380ef6B8dfB56c",
"type": "EOA",
"isVerified": true,
"name": "0xdd19…B56c",
"url": "https://etherscan.io/address/0xdd19274b614b5ecAcf493Bc43C380ef6B8dfB56c"
},
{
"address": "eth:0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7",
"type": "EOA",
"isVerified": true,
"name": "0x59F8…D5A7",
"url": "https://etherscan.io/address/0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7"
},
{
"address": "eth:0x6f5c9B92DC47C89155930E708fBc305b55A5519A",
"type": "EOA",
"isVerified": true,
"name": "0x6f5c…519A",
"url": "https://etherscan.io/address/0x6f5c9B92DC47C89155930E708fBc305b55A5519A"
},
{
"address": "eth:0x2a61d3ba5030Ef471C74f612962c7367ECa3a62d",
"type": "EOA",
"isVerified": true,
"name": "0x2a61…a62d",
"url": "https://etherscan.io/address/0x2a61d3ba5030Ef471C74f612962c7367ECa3a62d"
}
],
"discoveryDrivenData": true
},
{
"id": "CircuitBreakerCommittee",
"name": "CircuitBreakerCommittee",
"description": "A Multisig with 3/6 threshold. \n* Can interact with CircuitBreaker\n * maintain a live heartbeat and trigger a one-time emergency pause of the specific protocol contract assigned to it in the pauser map ",
"accounts": [
{
"address": "eth:0x8772E3a2D86B9347A2688f9bc1808A6d8917760C",
"type": "Contract",
"isVerified": true,
"name": "0x8772…760C",
"url": "https://etherscan.io/address/0x8772E3a2D86B9347A2688f9bc1808A6d8917760C"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x5a409567bCa7459b3aC7e6E5a3F1a3C278071b71",
"type": "EOA",
"isVerified": true,
"name": "0x5a40…1b71",
"url": "https://etherscan.io/address/0x5a409567bCa7459b3aC7e6E5a3F1a3C278071b71"
},
{
"address": "eth:0xA39a62304d8d43B35114ad7bd1258B0E50e139b3",
"type": "EOA",
"isVerified": true,
"name": "0xA39a…39b3",
"url": "https://etherscan.io/address/0xA39a62304d8d43B35114ad7bd1258B0E50e139b3"
},
{
"address": "eth:0xC80C089d5151A7456aaeb116174CB5A8EcC94fF9",
"type": "EOA",
"isVerified": true,
"name": "0xC80C…4fF9",
"url": "https://etherscan.io/address/0xC80C089d5151A7456aaeb116174CB5A8EcC94fF9"
},
{
"address": "eth:0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7",
"type": "EOA",
"isVerified": true,
"name": "0x59F8…D5A7",
"url": "https://etherscan.io/address/0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7"
},
{
"address": "eth:0x912e21CdA3D7012146da4Df33309d860a9eb0bEb",
"type": "EOA",
"isVerified": true,
"name": "0x912e…0bEb",
"url": "https://etherscan.io/address/0x912e21CdA3D7012146da4Df33309d860a9eb0bEb"
},
{
"address": "eth:0xA4cddAB88F16eA33dA1b0851ee2Beb6d2f5C91e4",
"type": "EOA",
"isVerified": true,
"name": "0xA4cd…91e4",
"url": "https://etherscan.io/address/0xA4cddAB88F16eA33dA1b0851ee2Beb6d2f5C91e4"
}
],
"discoveryDrivenData": true
},
{
"id": "DualGovernanceEmergencyActivationCommittee",
"name": "DualGovernanceEmergencyActivationCommittee",
"description": "A Multisig with 4/7 threshold. \n* Can interact with EmergencyProtectedTimelock\n * activate emergency mode while emergency protection is enabled ",
"accounts": [
{
"address": "eth:0x8B7854488Fde088d686Ea672B6ba1A5242515f45",
"type": "Contract",
"isVerified": true,
"name": "0x8B78…5f45",
"url": "https://etherscan.io/address/0x8B7854488Fde088d686Ea672B6ba1A5242515f45"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9bdFf3B294400A6a5D56647872d4035C944C10ce",
"type": "EOA",
"isVerified": true,
"name": "0x9bdF…10ce",
"url": "https://etherscan.io/address/0x9bdFf3B294400A6a5D56647872d4035C944C10ce"
},
{
"address": "eth:0xA032E9E70c6200b7e51fCdeF15B611fC38833Cc1",
"type": "EOA",
"isVerified": true,
"name": "0xA032…3Cc1",
"url": "https://etherscan.io/address/0xA032E9E70c6200b7e51fCdeF15B611fC38833Cc1"
},
{
"address": "eth:0x8f929Defb7638B5ee6390bdd3bf87B266Df5EDf4",
"type": "EOA",
"isVerified": true,
"name": "0x8f92…EDf4",
"url": "https://etherscan.io/address/0x8f929Defb7638B5ee6390bdd3bf87B266Df5EDf4"
},
{
"address": "eth:0x237Cddf3aA765260cf6b60E064065Da7c3Aa1559",
"type": "EOA",
"isVerified": true,
"name": "0x237C…1559",
"url": "https://etherscan.io/address/0x237Cddf3aA765260cf6b60E064065Da7c3Aa1559"
},
{
"address": "eth:0xcfc7834eb929e7E621F0Ba71d421A27Eddf6DDA1",
"type": "EOA",
"isVerified": true,
"name": "0xcfc7…DDA1",
"url": "https://etherscan.io/address/0xcfc7834eb929e7E621F0Ba71d421A27Eddf6DDA1"
},
{
"address": "eth:0x62c89F5768D0FeC0915fb614C5eDd9fdeaA2A3fd",
"type": "EOA",
"isVerified": true,
"name": "0x62c8…A3fd",
"url": "https://etherscan.io/address/0x62c89F5768D0FeC0915fb614C5eDd9fdeaA2A3fd"
},
{
"address": "eth:0xAe0E06b1B5ecB80f157A7DB8A7c9E83fC1720711",
"type": "EOA",
"isVerified": true,
"name": "0xAe0E…0711",
"url": "https://etherscan.io/address/0xAe0E06b1B5ecB80f157A7DB8A7c9E83fC1720711"
}
],
"discoveryDrivenData": true
},
{
"id": "P2P",
"name": "P2P",
"description": "A Multisig with 2/3 threshold. \n* Can interact with TiebreakerNodeOperatorsSubcommittee\n * vote to forward a proposal-scheduling or sealable-resume request to the tiebreaker core committee ",
"accounts": [
{
"address": "eth:0x8ed4dfd3A610CCF1FB45e797bf5D8e0f93084F22",
"type": "Contract",
"isVerified": true,
"name": "0x8ed4…4F22",
"url": "https://etherscan.io/address/0x8ed4dfd3A610CCF1FB45e797bf5D8e0f93084F22"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x7d32EDD94Ce35dE727d7Df60D582da2cBa55FB25",
"type": "EOA",
"isVerified": true,
"name": "0x7d32…FB25",
"url": "https://etherscan.io/address/0x7d32EDD94Ce35dE727d7Df60D582da2cBa55FB25"
},
{
"address": "eth:0xE21a08C60b065cE42FD5b0BD99a98A0FAe6ddA23",
"address": "eth:0x8a955ed24FcB3cF71d8A5BC828B7DcFdB2C17101",
"type": "EOA",
"isVerified": true,
"name": "0xE21a…dA23",
"url": "https://etherscan.io/address/0xE21a08C60b065cE42FD5b0BD99a98A0FAe6ddA23"
"name": "0x8a95…7101",
"url": "https://etherscan.io/address/0x8a955ed24FcB3cF71d8A5BC828B7DcFdB2C17101"
},
{
"address": "eth:0xF37FeF00Fe67956E9870114815c42F0Cc18373ce",
"type": "EOA",
"isVerified": true,
"name": "0xF37F…73ce",
"url": "https://etherscan.io/address/0xF37FeF00Fe67956E9870114815c42F0Cc18373ce"
}
],
"discoveryDrivenData": true
},
{
"id": "Finance",
"name": "Finance",
"accounts": [
{
"address": "eth:0xB9E5CBB9CA5b0d659238807E84D0176930753d86",
"type": "Contract",
"isVerified": true,
"name": "0xB9E5…3d86",
"url": "https://etherscan.io/address/0xB9E5CBB9CA5b0d659238807E84D0176930753d86"
}
],
"chain": "ethereum",
"description": "Lido DAO's Aragon Finance application. ACL roles create and execute one-time or recurring treasury payments and change their budgets, recipients, amounts and accounting period.\n* Can interact with Lido Dao Agent\n * transfer ETH and ERC-20 tokens held by the Agent ",
"discoveryDrivenData": true
},
{
"id": "TiebreakerEthereumEcosystemSubcommittee",
"name": "TiebreakerEthereumEcosystemSubcommittee",
"accounts": [
{
"address": "eth:0xBF048f2111497B6Df5E062811f5fC422804D4baE",
"type": "Contract",
"isVerified": true,
"name": "0xBF04…4baE",
"url": "https://etherscan.io/address/0xBF048f2111497B6Df5E062811f5fC422804D4baE"
}
],
"chain": "ethereum",
"description": "A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n* Can interact with TiebreakerCoreCommittee\n * vote to schedule a governance proposal or resume a sealable contract through the Dual Governance tiebreaker ",
"discoveryDrivenData": true
},
{
"id": "DualGovernanceEmergencyExecutionCommittee",
"name": "DualGovernanceEmergencyExecutionCommittee",
"description": "A Multisig with 5/7 threshold. \n* Can interact with EmergencyProtectedTimelock\n * execute a submitted proposal without the ordinary scheduling delay during emergency mode, or reset governance to the configured emergency governance ",
"accounts": [
{
"address": "eth:0xC7792b3F2B399bB0EdF53fECDceCeB97FBEB18AF",
"type": "Contract",
"isVerified": true,
"name": "0xC779…18AF",
"url": "https://etherscan.io/address/0xC7792b3F2B399bB0EdF53fECDceCeB97FBEB18AF"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x8f929Defb7638B5ee6390bdd3bf87B266Df5EDf4",
"type": "EOA",
"isVerified": true,
"name": "0x8f92…EDf4",
"url": "https://etherscan.io/address/0x8f929Defb7638B5ee6390bdd3bf87B266Df5EDf4"
},
{
"address": "eth:0x9bdFf3B294400A6a5D56647872d4035C944C10ce",
"type": "EOA",
"isVerified": true,
"name": "0x9bdF…10ce",
"url": "https://etherscan.io/address/0x9bdFf3B294400A6a5D56647872d4035C944C10ce"
},
{
"address": "eth:0xA032E9E70c6200b7e51fCdeF15B611fC38833Cc1",
"type": "EOA",
"isVerified": true,
"name": "0xA032…3Cc1",
"url": "https://etherscan.io/address/0xA032E9E70c6200b7e51fCdeF15B611fC38833Cc1"
},
{
"address": "eth:0x237Cddf3aA765260cf6b60E064065Da7c3Aa1559",
"type": "EOA",
"isVerified": true,
"name": "0x237C…1559",
"url": "https://etherscan.io/address/0x237Cddf3aA765260cf6b60E064065Da7c3Aa1559"
},
{
"address": "eth:0xAe0E06b1B5ecB80f157A7DB8A7c9E83fC1720711",
"type": "EOA",
"isVerified": true,
"name": "0xAe0E…0711",
"url": "https://etherscan.io/address/0xAe0E06b1B5ecB80f157A7DB8A7c9E83fC1720711"
},
{
"address": "eth:0x62c89F5768D0FeC0915fb614C5eDd9fdeaA2A3fd",
"type": "EOA",
"isVerified": true,
"name": "0x62c8…A3fd",
"url": "https://etherscan.io/address/0x62c89F5768D0FeC0915fb614C5eDd9fdeaA2A3fd"
},
{
"address": "eth:0xcfc7834eb929e7E621F0Ba71d421A27Eddf6DDA1",
"type": "EOA",
"isVerified": true,
"name": "0xcfc7…DDA1",
"url": "https://etherscan.io/address/0xcfc7834eb929e7E621F0Ba71d421A27Eddf6DDA1"
}
],
"discoveryDrivenData": true
},
{
"id": "TiebreakerNodeOperatorsSubcommittee",
"name": "TiebreakerNodeOperatorsSubcommittee",
"accounts": [
{
"address": "eth:0xDBfa0B8A15a503f25224fcA5F84a3853230A715C",
"type": "Contract",
"isVerified": true,
"name": "0xDBfa…715C",
"url": "https://etherscan.io/address/0xDBfa0B8A15a503f25224fcA5F84a3853230A715C"
}
],
"chain": "ethereum",
"description": "A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n* Can interact with TiebreakerCoreCommittee\n * vote to schedule a governance proposal or resume a sealable contract through the Dual Governance tiebreaker ",
"discoveryDrivenData": true
},
{
"id": "TiebreakerCoreCommittee",
"name": "TiebreakerCoreCommittee",
"accounts": [
{
"address": "eth:0xf65614d73952Be91ce0aE7Dd9cFf25Ba15bEE2f5",
"type": "Contract",
"isVerified": true,
"name": "0xf656…E2f5",
"url": "https://etherscan.io/address/0xf65614d73952Be91ce0aE7Dd9cFf25Ba15bEE2f5"
}
],
"chain": "ethereum",
"description": "Top-level Dual Governance tiebreaker committee. Its members reach quorum to schedule a delayed governance proposal or resume a paused sealable contract when Dual Governance is tied.\n* Can interact with DualGovernance\n * schedule a proposal or resume a sealable contract when Dual Governance is in a tie state ",
"discoveryDrivenData": true
},
{
"id": "TokenManager",
"name": "TokenManager",
"accounts": [
{
"address": "eth:0xf73a1260d222f447210581DDf212D915c09a3249",
"type": "Contract",
"isVerified": true,
"name": "0xf73a…3249",
"url": "https://etherscan.io/address/0xf73a1260d222f447210581DDf212D915c09a3249"
}
],
"chain": "ethereum",
"description": "Aragon TokenManager for LDO. Its ACL roles can issue supply, mint or burn LDO, assign vested balances, and revoke vesting.\n* Can interact with Voting\n * create executable Lido DAO votes ",
"discoveryDrivenData": true
},
{
"id": "ResealCommittee",
"name": "ResealCommittee",
"description": "A Multisig with 5/6 threshold. \n* Can interact with DualGovernance\n * request that a sealable contract be paused indefinitely through the configured ResealManager ",
"accounts": [
{
"address": "eth:0xFFe21561251c49AdccFad065C94Fb4931dF49081",
"type": "Contract",
"isVerified": true,
"name": "0xFFe2…9081",
"url": "https://etherscan.io/address/0xFFe21561251c49AdccFad065C94Fb4931dF49081"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x5a409567bCa7459b3aC7e6E5a3F1a3C278071b71",
"type": "EOA",
"isVerified": true,
"name": "0x5a40…1b71",
"url": "https://etherscan.io/address/0x5a409567bCa7459b3aC7e6E5a3F1a3C278071b71"
},
{
"address": "eth:0xA39a62304d8d43B35114ad7bd1258B0E50e139b3",
"type": "EOA",
"isVerified": true,
"name": "0xA39a…39b3",
"url": "https://etherscan.io/address/0xA39a62304d8d43B35114ad7bd1258B0E50e139b3"
},
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7",
"type": "EOA",
"isVerified": true,
"name": "0x59F8…D5A7",
"url": "https://etherscan.io/address/0x59F8D74Fe49d5ebEAc069E3baf07eB4b614BD5A7"
},
{
"address": "eth:0x912e21CdA3D7012146da4Df33309d860a9eb0bEb",
"type": "EOA",
"isVerified": true,
"name": "0x912e…0bEb",
"url": "https://etherscan.io/address/0x912e21CdA3D7012146da4Df33309d860a9eb0bEb"
},
{
"address": "eth:0x9A3f38AF97b791C85c043D46a64f56f87E0283D4",
"type": "EOA",
"isVerified": true,
"name": "0x9A3f…83D4",
"url": "https://etherscan.io/address/0x9A3f38AF97b791C85c043D46a64f56f87E0283D4"
}
],
"discoveryDrivenData": true
},
{
"id": "GatewayFM",
"name": "GatewayFM",
"description": "A Multisig with 1/1 threshold. ",
"accounts": [
{
"address": "eth:0xf8Bfa395744Cb25fa4368Ffe2344Dc35546092d9",
"type": "Contract",
"isVerified": true,
"name": "0xf8Bf…92d9",
"url": "https://etherscan.io/address/0xf8Bfa395744Cb25fa4368Ffe2344Dc35546092d9"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xddD80BC94975C10A2f613511F80bd860FcB76818",
"type": "EOA",
"isVerified": true,
"name": "EOA 30",
"url": "#EOA-30"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-2,-EOA-3,-EOA-4,-EOA-5,-EOA-6,-EOA-7,-EOA-8-and-EOA-9",
"name": "EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8 and EOA 9",
"accounts": [
{
"address": "eth:0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5",
"address": "eth:0x2aE828F10DfeE5b4c42f6E61D3d30033D4520753",
"type": "EOA",
"isVerified": true,
"name": "0x007D…89b5",
"url": "https://etherscan.io/address/0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5",
"name": "0x2aE8…0753",
"url": "https://etherscan.io/address/0x2aE828F10DfeE5b4c42f6E61D3d30033D4520753",
"displayName": "EOA 1"
},
{
"address": "eth:0x042a9e5acCfa17e28300F1b5967f20891E973922",
"address": "eth:0x375ABa35EA2011Af97b51bd395494C827d1C39BD",
"type": "EOA",
"isVerified": true,
"name": "0x042a…3922",
"url": "https://etherscan.io/address/0x042a9e5acCfa17e28300F1b5967f20891E973922",
"name": "0x375A…39BD",
"url": "https://etherscan.io/address/0x375ABa35EA2011Af97b51bd395494C827d1C39BD",
"displayName": "EOA 2"
},
{
"address": "eth:0x404335BcE530400a5814375E7Ec1FB55fAff3eA2",
"address": "eth:0x4D3aD7E8e591d389B612Fc063f53837E284d3F86",
"type": "EOA",
"isVerified": true,
"name": "0x4043…3eA2",
"url": "https://etherscan.io/address/0x404335BcE530400a5814375E7Ec1FB55fAff3eA2",
"name": "0x4D3a…3F86",
"url": "https://etherscan.io/address/0x4D3aD7E8e591d389B612Fc063f53837E284d3F86",
"displayName": "EOA 3"
},
{
"address": "eth:0x4118DAD7f348A4063bD15786c299De2f3B1333F3",
"address": "eth:0x5416CAAb6f37BF81cb2dc7ce0a363AfB9DD92d57",
"type": "EOA",
"isVerified": true,
"name": "0x4118…33F3",
"url": "https://etherscan.io/address/0x4118DAD7f348A4063bD15786c299De2f3B1333F3",
"name": "0x5416…2d57",
"url": "https://etherscan.io/address/0x5416CAAb6f37BF81cb2dc7ce0a363AfB9DD92d57",
"displayName": "EOA 4"
},
{
"address": "eth:0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8",
"address": "eth:0x5595033F304217aFDB8ffB35E42C22B72184730b",
"type": "EOA",
"isVerified": true,
"name": "0x61c9…a1c8",
"url": "https://etherscan.io/address/0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8",
"name": "0x5595…730b",
"url": "https://etherscan.io/address/0x5595033F304217aFDB8ffB35E42C22B72184730b",
"displayName": "EOA 5"
},
{
"address": "eth:0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12",
"address": "eth:0x565F04cB319EC2295E1fcbBbe5F708687FFcCE75",
"type": "EOA",
"isVerified": true,
"name": "0x7318…1d12",
"url": "https://etherscan.io/address/0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12",
"name": "0x565F…CE75",
"url": "https://etherscan.io/address/0x565F04cB319EC2295E1fcbBbe5F708687FFcCE75",
"displayName": "EOA 6"
},
{
"address": "eth:0x8dB977C13CAA938BC58464bFD622DF0570564b78",
"address": "eth:0x7abC999C7E1f22a7E12b2A1024bC17676FE18b4b",
"type": "EOA",
"isVerified": true,
"name": "0x8dB9…4b78",
"url": "https://etherscan.io/address/0x8dB977C13CAA938BC58464bFD622DF0570564b78",
"name": "0x7abC…8b4b",
"url": "https://etherscan.io/address/0x7abC999C7E1f22a7E12b2A1024bC17676FE18b4b",
"displayName": "EOA 7"
},
{
"address": "eth:0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf",
"address": "eth:0x82A821E8a2585D1AC8f346BE7Da6995490d21Ca6",
"type": "EOA",
"isVerified": true,
"name": "0xc79F…9BAf",
"url": "https://etherscan.io/address/0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf",
"name": "0x82A8…1Ca6",
"url": "https://etherscan.io/address/0x82A821E8a2585D1AC8f346BE7Da6995490d21Ca6",
"displayName": "EOA 8"
},
{
"address": "eth:0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9",
"address": "eth:0xC10258969442c7957351A0ddc8194D2685B2a2c2",
"type": "EOA",
"isVerified": true,
"name": "0xe57B…35C9",
"url": "https://etherscan.io/address/0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9",
"name": "0xC102…a2c2",
"url": "https://etherscan.io/address/0xC10258969442c7957351A0ddc8194D2685B2a2c2",
"displayName": "EOA 9"
}
],
"chain": "ethereum",
"description": "* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus \n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus \n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus \n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus ",
"description": "* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus [via: DelegationContract]\n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus [via: DelegationContract]\n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus [via: DelegationContract]\n* Can interact with HashConsensus\n * submit report hashes and participate in reaching oracle consensus [via: DelegationContract]",
"discoveryDrivenData": true
},
{
"id": "EOA-10,-EOA-11,-EOA-12,-EOA-13,-EOA-14-and-EOA-16",
"name": "EOA 10, EOA 11, EOA 12, EOA 13, EOA 14 and EOA 16",
"id": "EOA-10,-EOA-12,-EOA-13,-EOA-14,-EOA-15-and-EOA-16",
"name": "EOA 10, EOA 12, EOA 13, EOA 14, EOA 15 and EOA 16",
"accounts": [
{
"address": "eth:0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498E",
"address": "eth:0x06d6c4F26354aA1426c0Abd79A5f18A5d5fF684f",
"type": "EOA",
"isVerified": true,
"name": "0x4B87…498E",
"url": "https://etherscan.io/address/0x4B87F16B8d32cb5a859a4C48a88edB5adBe3498E",
"name": "0x06d6…684f",
"url": "https://etherscan.io/address/0x06d6c4F26354aA1426c0Abd79A5f18A5d5fF684f",
"displayName": "EOA 10"
},
{
"address": "eth:0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1",
"address": "eth:0x5ecf14e7a3831D44e2F7d4542Ba98C6c96E47420",
"type": "EOA",
"isVerified": true,
"name": "0x5fd0…19F1",
"url": "https://etherscan.io/address/0x5fd0dDbC3351d009eb3f88DE7Cd081a614C519F1",
"displayName": "EOA 11"
"name": "0x5ecf…7420",
"url": "https://etherscan.io/address/0x5ecf14e7a3831D44e2F7d4542Ba98C6c96E47420",
"displayName": "EOA 12"
},
{
"address": "eth:0x6d22aE126eB2c37F67a1391B37FF4f2863e61389",
"address": "eth:0x6aF45f506fD171994D26d014Fc079137532Db219",
"type": "EOA",
"isVerified": true,
"name": "0x6d22…1389",
"url": "https://etherscan.io/address/0x6d22aE126eB2c37F67a1391B37FF4f2863e61389",
"displayName": "EOA 12"
"name": "0x6aF4…b219",
"url": "https://etherscan.io/address/0x6aF45f506fD171994D26d014Fc079137532Db219",
"displayName": "EOA 13"
},
{
"address": "eth:0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaF",
"address": "eth:0xA4512893C5B8BCD8E7AE1cAa56b8402951720D14",
"type": "EOA",
"isVerified": true,
"name": "0x7912…6AaF",
"url": "https://etherscan.io/address/0x7912Fa976BcDe9c2cf728e213e892AD7588E6AaF",
"displayName": "EOA 13"
"name": "0xA451…0D14",
"url": "https://etherscan.io/address/0xA4512893C5B8BCD8E7AE1cAa56b8402951720D14",
"displayName": "EOA 14"
},
{
"address": "eth:0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8",
"address": "eth:0xAEbd3E0c29111C02166FB2d560f7158a6ccE6841",
"type": "EOA",
"isVerified": true,
"name": "0xa56b…57d8",
"url": "https://etherscan.io/address/0xa56b128Ea2Ea237052b0fA2a96a387C0E43157d8",
"displayName": "EOA 14"
"name": "0xAEbd…6841",
"url": "https://etherscan.io/address/0xAEbd3E0c29111C02166FB2d560f7158a6ccE6841",
"displayName": "EOA 15"
},
{
"address": "eth:0xf82D88217C249297C6037BA77CE34b3d8a90ab43",
"address": "eth:0xc04c1979e37e53FD21E40bd089D311EEfFdb4E00",
"type": "EOA",
"isVerified": true,
"name": "0xf82D…ab43",
"url": "https://etherscan.io/address/0xf82D88217C249297C6037BA77CE34b3d8a90ab43",
"name": "0xc04c…4E00",
"url": "https://etherscan.io/address/0xc04c1979e37e53FD21E40bd089D311EEfFdb4E00",
"displayName": "EOA 16"
}
],
"chain": "ethereum",
"description": "* Can interact with DepositSecurityModule\n * sign deposit-pause intents which can pause staking-module deposits once the configured quorum is met ",
"description": "* Can interact with DepositSecurityModule\n * attest staking-module deposits (deposits need 4 guardian attestations), and individually pause all deposits or unvet node-operator signing keys in a staking module [via: DelegationContract]",
"discoveryDrivenData": true
},
{
"id": "EOA-15",
"name": "EOA 15",
"id": "EOA-11",
"name": "EOA 11",
"accounts": [
{
"address": "eth:0xF82aC5937A20dC862F9bc0668779031E06000f17",
"address": "eth:0x2df4013EF30b09100A027192E700114cD0D13900",
"type": "EOA",
"isVerified": true,
"name": "0xF82a…0f17",
"url": "https://etherscan.io/address/0xF82aC5937A20dC862F9bc0668779031E06000f17",
"displayName": "EOA 15"
"name": "0x2df4…3900",
"url": "https://etherscan.io/address/0x2df4013EF30b09100A027192E700114cD0D13900",
"displayName": "EOA 11"
}
],
"chain": "ethereum",
"description": "* Can interact with TopUpGateway\n * submit validator top-ups backed by consensus-layer proofs ",
"description": "* Can interact with TopUpGateway\n * submit validator top-ups backed by consensus-layer proofs [via: DelegationContract]",
"discoveryDrivenData": true
},
{
"id": "EOA-17,-EOA-20,-EOA-22,-EOA-25-and-EOA-28",
"name": "EOA 17, EOA 20, EOA 22, EOA 25 and EOA 28",
"accounts": [
{
"address": "eth:0x49769C3443c74f144991cA560ba5F635581B8176",
"type": "EOA",
"isVerified": true,
"name": "0x4976…8176",
"url": "https://etherscan.io/address/0x49769C3443c74f144991cA560ba5F635581B8176",
"displayName": "EOA 17"
},
{
"address": "eth:0x805fa0f79DC0DDCD73dCBc23487d2D5bd77de598",
"type": "EOA",
"isVerified": true,
"name": "0x805f…e598",
"url": "https://etherscan.io/address/0x805fa0f79DC0DDCD73dCBc23487d2D5bd77de598",
"displayName": "EOA 20"
},
{
"address": "eth:0x81000e270B4f66B8666544E8FEc073e0a23FFf00",
"type": "EOA",
"isVerified": true,
"name": "0x8100…Ff00",
"url": "https://etherscan.io/address/0x81000e270B4f66B8666544E8FEc073e0a23FFf00",
"displayName": "EOA 22"
},
{
"address": "eth:0x9A921867EbB579D137184b397E7D087f1ae716fd",
"type": "EOA",
"isVerified": true,
"name": "0x9A92…16fd",
"url": "https://etherscan.io/address/0x9A921867EbB579D137184b397E7D087f1ae716fd",
"displayName": "EOA 25"
},
{
"address": "eth:0xD8a9072D82a28307279aC0aD3c97Cb61bEe67952",
"type": "EOA",
"isVerified": true,
"name": "0xD8a9…7952",
"url": "https://etherscan.io/address/0xD8a9072D82a28307279aC0aD3c97Cb61bEe67952",
"displayName": "EOA 28"
}
],
"chain": "ethereum",
"description": "* Can interact with TiebreakerBuildersSubcommittee\n * vote to forward a proposal-scheduling or sealable-resume request to the tiebreaker core committee ",
"discoveryDrivenData": true
},
{
"id": "EOA-18,-EOA-19,-EOA-21,-EOA-26-and-EOA-31",
"name": "EOA 18, EOA 19, EOA 21, EOA 26 and EOA 31",
"accounts": [
{
"address": "eth:0x5d60F5d653Cc318d1f0ABacd83eD4feeAa6e5804",
"type": "EOA",
"isVerified": true,
"name": "0x5d60…5804",
"url": "https://etherscan.io/address/0x5d60F5d653Cc318d1f0ABacd83eD4feeAa6e5804",
"displayName": "EOA 18"
},
{
"address": "eth:0x60BDa95a40d5536303BFcf84D679ca461A23398d",
"type": "EOA",
"isVerified": true,
"name": "0x60BD…398d",
"url": "https://etherscan.io/address/0x60BDa95a40d5536303BFcf84D679ca461A23398d",
"displayName": "EOA 19"
},
{
"address": "eth:0x80B2D9FA613c35Ec52B0dA5D84e6A819bcc5e369",
"type": "EOA",
"isVerified": true,
"name": "0x80B2…e369",
"url": "https://etherscan.io/address/0x80B2D9FA613c35Ec52B0dA5D84e6A819bcc5e369",
"displayName": "EOA 21"
},
{
"address": "eth:0xb04b6fB471E766D7F21A6AA0E4E25B2AEA0a75AB",
"type": "EOA",
"isVerified": true,
"name": "0xb04b…75AB",
"url": "https://etherscan.io/address/0xb04b6fB471E766D7F21A6AA0E4E25B2AEA0a75AB",
"displayName": "EOA 26"
},
{
"address": "eth:0xEC7ABf73f339361ecCA951E1746C90a3e6205BFC",
"type": "EOA",
"isVerified": true,
"name": "0xEC7A…5BFC",
"url": "https://etherscan.io/address/0xEC7ABf73f339361ecCA951E1746C90a3e6205BFC",
"displayName": "EOA 31"
}
],
"chain": "ethereum",
"description": "* Can interact with TiebreakerEthereumEcosystemSubcommittee\n * vote to forward a proposal-scheduling or sealable-resume request to the tiebreaker core committee ",
"discoveryDrivenData": true
},
{
"id": "EOA-23,-EOA-24,-EOA-27,-EOA-29-and-EOA-32",
"name": "EOA 23, EOA 24, EOA 27, EOA 29 and EOA 32",
"accounts": [
{
"address": "eth:0x8103E9eDC04d87F6DA24A3a0c7778daE689E9D63",
"type": "EOA",
"isVerified": true,
"name": "0x8103…9D63",
"url": "https://etherscan.io/address/0x8103E9eDC04d87F6DA24A3a0c7778daE689E9D63",
"displayName": "EOA 23"
},
{
"address": "eth:0x9837b0Db0b733DED04D96a0A25Ba1E414A6C4c08",
"type": "EOA",
"isVerified": true,
"name": "0x9837…4c08",
"url": "https://etherscan.io/address/0x9837b0Db0b733DED04D96a0A25Ba1E414A6C4c08",
"displayName": "EOA 24"
},
{
"address": "eth:0xD7cABE01709c7E36e9D1fb3248A19b525578a1Fc",
"type": "EOA",
"isVerified": true,
"name": "0xD7cA…a1Fc",
"url": "https://etherscan.io/address/0xD7cABE01709c7E36e9D1fb3248A19b525578a1Fc",
"displayName": "EOA 27"
},
{
"address": "eth:0xDBD124e898839ec8C829d806C0328f069d1bB810",
"type": "EOA",
"isVerified": true,
"name": "0xDBD1…B810",
"url": "https://etherscan.io/address/0xDBD124e898839ec8C829d806C0328f069d1bB810",
"displayName": "EOA 29"
},
{
"address": "eth:0xFCD02C040ceA45DC6CEC3E24F1D3946FCE7077b0",
"type": "EOA",
"isVerified": true,
"name": "0xFCD0…77b0",
"url": "https://etherscan.io/address/0xFCD02C040ceA45DC6CEC3E24F1D3946FCE7077b0",
"displayName": "EOA 32"
}
],
"chain": "ethereum",
"description": "* Can interact with TiebreakerNodeOperatorsSubcommittee\n * vote to forward a proposal-scheduling or sealable-resume request to the tiebreaker core committee ",
"discoveryDrivenData": true
},
{
"id": "EOA-30",
"name": "EOA 30",
"accounts": [
{
"address": "eth:0xddD80BC94975C10A2f613511F80bd860FcB76818",
"type": "EOA",
"isVerified": true,
"name": "0xddD8…6818",
"url": "https://etherscan.io/address/0xddD80BC94975C10A2f613511F80bd860FcB76818",
"displayName": "EOA 30"
}
],
"chain": "ethereum",
"description": "Member of GatewayFM.\n* Can interact with TiebreakerNodeOperatorsSubcommittee\n * vote to forward a proposal-scheduling or sealable-resume request to the tiebreaker core committee [via: GatewayFM]",
"discoveryDrivenData": true
}
]
}
}
+254 -7
{
"addresses": {
"ethereum": [
{
"name": "ExitPenalties",
"isVerified": true,
"address": "eth:0x004aFb7DAA7dEA20EbAaB75c9F4892C879FaCCe0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3766ABbA4635EE0fC3E6A7EB3EF169fe930df9c2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070495,
"transactionHash": "0x8774b1a95f0b078e8042d58b35c07297197917b9660a83ae5305942d37741177",
"implementations": [
"eth:0x422f0d117615949E0620E998E1FE455eB6215E30"
]
},
{
"timestamp": 1783071035,
"transactionHash": "0x9247c597a988feb63cf90336195bdf87541f7dec52b122c4a92cda7e23eb309c",
"implementations": [
"eth:0x3766ABbA4635EE0fC3E6A7EB3EF169fe930df9c2"
]
}
],
"description": "Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **module**: CuratedModule\n * **strikes**: ValidatorStrikes",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x004aFb7DAA7dEA20EbAaB75c9F4892C879FaCCe0#code"
},
{
"name": "VaultFactory",
"isVerified": true,
"address": "eth:0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless factory for StakingVaults and their Dashboard management contracts. It deploys beacon proxies, initializes their code-defined authorities, and optionally connects the vault to VaultHub.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175A#code"
},
{
"name": "StakingVault",
"isVerified": true,
"address": "eth:0x06A56487494aa080deC7Bf69128EdA9225784553",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x06A56487494aa080deC7Bf69128EdA9225784553#code"
},
{
"name": "ExitPenalties",
"isVerified": true,
"address": "eth:0x06cd61045f958A209a0f8D746e103eCc625f4193",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xA5b9e96E951089E629Ab0834AEaF242a81394EA0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758112595,
"transactionHash": "0xee0e9d3615ca2adf655423758cbee63d18002bd818c01363a9e1c470315c3730",
"implementations": [
"eth:0x8ff828860A67658C39d89809457a97D81AAd418b"
]
},
{
"timestamp": 1758112667,
"transactionHash": "0xaa82b3430ee68cccb797d319594d9d67cfc9aaca8e70e0079ca4e4df75d9f072",
"implementations": [
"eth:0xDa22fA1CEa40d05Fe4CD536967afdD839586D546"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xA5b9e96E951089E629Ab0834AEaF242a81394EA0"
]
}
],
"description": "Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **module**: CSModule\n * **strikes**: ValidatorStrikes",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x06cd61045f958A209a0f8D746e103eCc625f4193#code"
},
{
"name": "ValidatorsExitBusOracle",
"isVerified": true,
"address": "eth:0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x2C3386b39db89eef0F362A3BE0C05a6811E809E3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683024035,
"transactionHash": "0xef3eea1523d2161c2f36ba61e327e3520231614c055b8a88c7f5928d18e423ea",
"implementations": [
"eth:0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31"
]
},
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0xA89Ea51FddE660f67d1850e03C9c9862d33Bc42c"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x905A211eD6830Cfc95643f0bE2ff64E7f3bf9b94"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x2C3386b39db89eef0F362A3BE0C05a6811E809E3"
]
}
],
"description": "Receives committee-consensus lists of validators that staking modules must exit and emits the exit requests. SRv3 accounts for the validators' effective-balance weights and key indices when applying per-report and replenishing exit limits.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **reportHashSubmitters**: EVMScriptExecutor; ultimately EasyTrack\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e#code"
},
{
"name": "OracleReportSanityChecker",
"isVerified": true,
"address": "eth:0x147f8d3cf3004FAf9Bf94E88B54b6C06De507be9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Validates AccountingOracle report values against configurable safety limits. The version 3 checker covers validator balance flows, consolidations, external pending balances, triggerable exits, and EIP-7251 balance weights.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x147f8d3cf3004FAf9Bf94E88B54b6C06De507be9#code"
},
{
"name": "ConsolidationGateway",
"isVerified": true,
"address": "eth:0x17be979344f2c2cC806229a532D92f8742C10462",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Validates validator ownership proofs and submits EIP-7251 consolidation requests through the protocol consolidation-request predeploy. It rate-limits the amount consolidated and preserves its ETH balance across requests.\n* Roles:\n * **consolidationRequesters**: ConsolidationBus\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x17be979344f2c2cC806229a532D92f8742C10462#code"
},
{
"name": "VaultHub",
"isVerified": true,
"address": "eth:0x1d201BE093d847f6446530Efb0E8Fb426d176709",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x6330fE7756FBE8649adfb9A541d61C5edB8B4D70"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766391,
"transactionHash": "0x982025c6295107b4a32e9512b84a826a9868fc653e0d1499067ee43d604ff234",
"implementations": [
"eth:0x7c7d957D0752AB732E73400624C4a1eb1cb6CF50"
]
},
{
"timestamp": 1776444131,
"transactionHash": "0xf43f6fe63edc60ae6eb0bc919b3c682ac0c068df7eb1cb44aa514302539f19cb",
"implementations": [
"eth:0x6330fE7756FBE8649adfb9A541d61C5edB8B4D70"
]
}
],
"description": "The central registry and lifecycle manager for stVaults connected to Lido. It enforces collateral and risk parameters, tracks vault reports and liabilities, mints and burns stETH shares, settles fees, rebalances unhealthy vaults, and manages bad debt.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **badDebtMasters**: VaultsAdapter\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **validatorExiters**: VaultsAdapter",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1d201BE093d847f6446530Efb0E8Fb426d176709#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x207798e6fD1aa7Ee8a63782A64c959cD6727b78C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071275,
"transactionHash": "0x090dd90bdb213e486dd5733283117fd998317f1d5f227dc5ae1976532b523607",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x207798e6fD1aa7Ee8a63782A64c959cD6727b78C#code"
},
{
"name": "Core Accounting",
"isVerified": true,
"address": "eth:0x23ED611be0e1a820978875C0122F92260804cdDf",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3aa937Ac2ab89CDd363EdC6b5A4d4A42dF5bc043"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766271,
"transactionHash": "0x372f801a2b751b83134974d6e77c75e32e6baab34d0ea14afe0c38c829fb0027",
"implementations": [
"eth:0xd43a3E984071F40d5d840f60708Af0e9526785df"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x3aa937Ac2ab89CDd363EdC6b5A4d4A42dF5bc043"
]
}
],
"description": "Calculates and applies a complete Lido oracle report: it reconciles validator balances, smooths the rebase, collects vault balances, finalizes withdrawals, burns shares, distributes module rewards, and updates stETH accounting.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **countingOracle**: AccountingOracle",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x23ED611be0e1a820978875C0122F92260804cdDf#code"
},
{
"name": "Dashboard",
"isVerified": true,
"address": "eth:0x294825c2764c7D412dc32d87E2242c4f1D989AF3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The standard role-based management interface for a StakingVault. It owns the underlying vault, routes funding, withdrawals, stETH minting and burning through VaultHub, controls validator operations, and accounts for the node operator fee.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x294825c2764c7D412dc32d87E2242c4f1D989AF3#code"
},
{
"name": "Accounting",
"isVerified": true,
"address": "eth:0x2F91e3A8C5d6593bf4F8403fCfeCcd62dF59f6F6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xB41F5d2721906b3BE4fC7ae08261266C801076C2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070435,
"transactionHash": "0xbe3ffcd1d838a2d50ca393eb2abcc80ddb253fd06bd9925393ecaf81ce85ba3c",
"implementations": [
"eth:0x422f0d117615949E0620E998E1FE455eB6215E30"
]
},
{
"timestamp": 1783070495,
"transactionHash": "0xbf32487f2ebc8f9ae2d56fb14bbb9a0983fb26985ec7f58d320a1a57cb3bfcbc",
"implementations": [
"eth:0xB41F5d2721906b3BE4fC7ae08261266C801076C2"
]
}
],
"description": "Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **bondCurveSetters**: CuratedGate\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2F91e3A8C5d6593bf4F8403fCfeCcd62dF59f6F6#code"
},
{
"name": "FeeDistributor",
"isVerified": true,
"address": "eth:0x367d23c756599c20DCc8D6943F4976E8F88D60d7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x7C8FEE1dcC95Df60fC9b5BE7603c28Eb3af16753"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070471,
"transactionHash": "0xc3734359abde0164f25af7dd2a01bb56b56f73502e645b7629ce9973e4a67dba",
"implementations": [
"eth:0x7C8FEE1dcC95Df60fC9b5BE7603c28Eb3af16753"
]
}
],
"description": "Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x367d23c756599c20DCc8D6943F4976E8F88D60d7#code"
},
{
"name": "Execution Layer Rewards Vault",
"isVerified": true,
"address": "eth:0x388C818CA8B9251b393131C08a736A67ccB19297",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Holds execution-layer validator rewards until stETH accounting collects them during an oracle report.\n* Roles:\n * **lido**: Liquid staked Ether 2.0 Token",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x388C818CA8B9251b393131C08a736A67ccB19297#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x3BbBb175f7F07954DE00052b20E1c5572223F24D",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071455,
"transactionHash": "0xcc511ccd912e33d88c5643a4e0f9543c13bf6d74b4250d04ec73e815a7078085",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3BbBb175f7F07954DE00052b20E1c5572223F24D#code"
},
{
"name": "StakingVault",
"isVerified": true,
"address": "eth:0x3eda1e756Ba9aC0217Ac8fc5db4C5E9a8486d9c4",
"upgradeability": {
"proxyType": "Beacon proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766367,
"transactionHash": "0xc1b1edfb9449fe7544219c94a0097c95521a4938cbda114f97f7e7b1c2d1e975",
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
}
],
"description": "An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **depositor**: PredepositGuarantee\n * **owner**: VaultHub",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3eda1e756Ba9aC0217Ac8fc5db4C5E9a8486d9c4#code"
},
{
"name": "TopUpGateway",
"isVerified": true,
"address": "eth:0x3FC2C71579D80790Aaa3fc7Be8B66ac39dC57374",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xb08dBc68C521cD7A4318dc4C807a42bEB20f1106"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782909431,
"transactionHash": "0x4f5fbf064af095ca58b23f92a0a595c30a374826039bf60a39ad8f7a7ec992c7",
"implementations": [
"eth:0xb08dBc68C521cD7A4318dc4C807a42bEB20f1106"
]
}
],
"description": "Validates consensus-layer proofs and submits EIP-7251 validator top-ups for staking modules. It limits top-up batch size, proof age, and call frequency.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **topUpSubmitters**: EOA 15",
"description": "Validates consensus-layer proofs and submits EIP-7251 validator top-ups for staking modules. It limits top-up batch size, proof age, and call frequency.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **topUpSubmitters**: DelegationContract; ultimately EOA 11",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3FC2C71579D80790Aaa3fc7Be8B66ac39dC57374#code"
},
{
"name": "FeeOracle",
"isVerified": true,
"address": "eth:0x4D4074628678Bd302921c20573EEa1ed38DdF7FB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xecE6e0Cde61078F76b66Ef0C338a6875E5D01F79"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1728566339,
"transactionHash": "0x3dfff1bb9a5dd98d252ab44ae3ef8a002a4ab84ef6f35f5b7aeeae60f91ec32e",
"implementations": [
"eth:0x919ac5C6c62B6ef7B05cF05070080525a7B0381E"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0xe0B234f99E413E27D9Bc31aBba9A49A3e570Da97"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xecE6e0Cde61078F76b66Ef0C338a6875E5D01F79"
]
}
],
"description": "Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4D4074628678Bd302921c20573EEa1ed38DdF7FB#code"
},
{
"name": "Accounting",
"isVerified": true,
"address": "eth:0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xe768572cc5aE5C698345C59288d871a949Ea8bd3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1728566339,
"transactionHash": "0x94ce92b9b05768e1908e5eab2097dc80da33715a37de5ffb149fc6142fa2a93b",
"implementations": [
"eth:0x71FCD2a6F38B644641B0F46c345Ea03Daabf2758"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x6f09d2426c7405C5546413e6059F884D2D03f449"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xe768572cc5aE5C698345C59288d871a949Ea8bd3"
]
}
],
"description": "Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **bondCurveSetters**: CommunityStakingModuleCommittee, VettedGate\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da#code"
},
{
"name": "NodeOperatorsRegistry",
"isVerified": true,
"address": "eth:0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x6828b023e737f96B168aCd0b5c6351971a4F81aE"
],
"immutable": false
},
"chain": "ethereum",
"description": "Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n* Roles:\n * **nodeOperatorLimitPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **nodeOperatorLimitSetters**: EVMScriptExecutor; ultimately EasyTrack\n * **nodeOperatorManagers**: Lido Dao Agent; ultimately Voting\n * **nodeOperatorPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **signingKeyPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingRouterPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingRouters**: StakingRouter",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5#code"
},
{
"name": "LazyOracle",
"isVerified": true,
"address": "eth:0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x96c9a897D116ef660086d3aA67b3af653324aB37"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766343,
"transactionHash": "0xfe172172aa9958a04136f504f36df5b94040c7363c3e4d70b76fe406c817613e",
"implementations": [
"eth:0x47f3a6b1E70F7Ec7dBC3CB510B1fdB948C863a5B"
]
},
{
"timestamp": 1776444131,
"transactionHash": "0xf43f6fe63edc60ae6eb0bc919b3c682ac0c068df7eb1cb44aa514302539f19cb",
"implementations": [
"eth:0x96c9a897D116ef660086d3aA67b3af653324aB37"
]
}
],
"description": "Verifies cryptographic oracle reports for individual stVaults and forwards accepted total-value, fee, and liability updates to VaultHub. Reports outside configured rate, reward, or quarantine bounds are rejected or quarantined.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x6093EFA6B5E2FF3be54d1c895c9deA932805c49F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071119,
"transactionHash": "0xded1c22f93a55ac151b3b3c01f040cc3ec1d868847729bc06c7f35a12a206b1a",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6093EFA6B5E2FF3be54d1c895c9deA932805c49F#code"
},
{
"name": "Ejector",
"isVerified": true,
"address": "eth:0x610B517D380f287c239C93F8eF6FfBd567AA4bA5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **strikes**: ValidatorStrikes",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x610B517D380f287c239C93F8eF6FfBd567AA4bA5#code"
},
{
"name": "StakingRevenueSource",
"isVerified": true,
"address": "eth:0x6220212a33a87Ed7Cc386B67eB2c393974F28C38",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Tracks Lido DAO staking revenue for the buyback program: as a TokenRateNotifier observer it accrues the treasury fee share of each stETH rebase and converts it into a monotonic cumulative USD figure at the OracleRouter spot price.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6220212a33a87Ed7Cc386B67eB2c393974F28C38#code"
},
{
"name": "StakingVault",
"isVerified": true,
"address": "eth:0x62e0D92cf7B8752b5292B9BCbbacE4cFa1633428",
"upgradeability": {
"proxyType": "Beacon proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766367,
"transactionHash": "0xc1b1edfb9449fe7544219c94a0097c95521a4938cbda114f97f7e7b1c2d1e975",
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
}
],
"description": "An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **depositor**: PredepositGuarantee\n * **owner**: VaultHub",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x62e0D92cf7B8752b5292B9BCbbacE4cFa1633428#code"
},
{
"name": "HashConsensus",
"isVerified": true,
"address": "eth:0x71093efF8D8599b5fA340D665Ad60fA7C80688e4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: DelegationContract; ultimately EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x71093efF8D8599b5fA340D665Ad60fA7C80688e4#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x773933F9db8964A17d62fb808f2EC7A2de4247CC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071455,
"transactionHash": "0xcc73810d0e4a72ad3dee90c08df552e3793337f1831c51101adb1b62e8b2e9ef",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x773933F9db8964A17d62fb808f2EC7A2de4247CC#code"
},
{
"name": "OracleRouter",
"isVerified": true,
"address": "eth:0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Price router that reads token prices from the Chainlink Feed Registry, either directly in USD or via an ETH/USD bridge feed for ETH-quoted tokens, and reports them normalized to 18 decimals.\n* Roles:\n * **admin**: Voting\n * **manager**: TreasuryManagementCommittee",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31#code"
},
{
"name": "HashConsensus",
"isVerified": true,
"address": "eth:0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: DelegationContract; ultimately EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a#code"
},
{
"name": "AccountingOracle",
"isVerified": true,
"address": "eth:0x852deD011285fe67063a08005c71a85690503Cee",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xe4f03D1107d1905B6F2A28FCb6Af221E0CE19136"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683023999,
"transactionHash": "0x3def88f27741216b131de2861cf89af2ca2ac4242b384ee33dca8cc70c51c8dd",
"implementations": [
"eth:0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31"
]
},
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0xF3c5E0A67f32CF1dc07a8817590efa102079a1aF"
]
},
{
"timestamp": 1729872203,
"transactionHash": "0x0078b3e0cecb3b50c78a22e0b1a985e6cde3bf431e9cb3b2ba4e50260122d542",
"implementations": [
"eth:0x0e65898527E77210fB0133D00dd4C0E86Dc29bC7"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0xE9906E543274cebcd335d2C560094089e9547e8d"
]
},
{
"timestamp": 1766586947,
"transactionHash": "0xf143303a719ee2e0c494efce07f889f7c4cd432d9ed993b410c20ad1c904d38f",
"implementations": [
"eth:0x1455B96780A93e08abFE41243Db92E2fCbb0141c"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xe4f03D1107d1905B6F2A28FCb6Af221E0CE19136"
]
}
],
"description": "Receives committee-consensus reports of Lido's Beacon Chain balances, validator state, withdrawals, and staking-module accounting data, then drives the stETH accounting rebase and related protocol updates.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x86A8d4E0db5938D21d98047544668FCCB1A9ADc8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071455,
"transactionHash": "0xc859b9b44c3d23ab693aabcd823ffe4db2a1c56cc09a4d51ca6f63c66491cba4",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x86A8d4E0db5938D21d98047544668FCCB1A9ADc8#code"
},
{
"name": "WithdrawalQueueERC721",
"isVerified": true,
"address": "eth:0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xE42C659Dc09109566720EA8b2De186c2Be7D94D9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683023927,
"transactionHash": "0x98c2170be034f750f5006cb69ea0aeeaf0858b11f6324ee53d582fa4dd49bc1a",
"implementations": [
"eth:0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31"
]
},
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0xE42C659Dc09109566720EA8b2De186c2Be7D94D9"
]
}
],
"description": "Queues stETH and wstETH withdrawal requests as transferable NFTs. Oracle reports can enter bunker mode and finalize batches by supplying ETH and a maximum share rate, after which NFT owners claim ETH.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **finalizers**: Liquid staked Ether 2.0 Token\n * **oracleReporters**: AccountingOracle\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0x8c002c6eE10cf8adb78D1F9EB2e134FdaF8A7C1a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071191,
"transactionHash": "0x379680a282d03d9a9bfa5e1de7c7c5b966b7084befaab052296050b35403d2ff",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8c002c6eE10cf8adb78D1F9EB2e134FdaF8A7C1a#code"
},
{
"name": "FeeOracle",
"isVerified": true,
"address": "eth:0x8EeFCdbD984c30E472BcbF545783D051CB5114e5",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x16804084408B6Caad10046F49aD421cBA56C0b5e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070435,
"transactionHash": "0xc844b0715f8ec935d11a68c90ff00faa14451d0785e2fa4d1dd37d53b1346c5d",
"implementations": [
"eth:0x422f0d117615949E0620E998E1FE455eB6215E30"
]
},
{
"timestamp": 1783071527,
"transactionHash": "0xf300e2bd3fcbec11ba780db1e7f7670ede3df9d7382ea9003ee201999fc8b932",
"implementations": [
"eth:0x16804084408B6Caad10046F49aD421cBA56C0b5e"
]
}
],
"description": "Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8EeFCdbD984c30E472BcbF545783D051CB5114e5#code"
},
{
"name": "EIP712StETH",
"isVerified": true,
"address": "eth:0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Stateless helper that builds the stETH EIP-712 domain separator and typed-data hashes.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7#code"
},
{
"name": "HashConsensus",
"isVerified": true,
"address": "eth:0x902D64c93F6595339aA46105627a085591051aFb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: DelegationContract; ultimately EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x902D64c93F6595339aA46105627a085591051aFb#code"
},
{
"name": "ParametersRegistry",
"isVerified": true,
"address": "eth:0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x107d287F178cD54792614d7D63C47D8242240BeD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758112319,
"transactionHash": "0xd40178939134c7e6eb244f0bb678e63459aa2c952a948ecd7789ffdbf37d7c43",
"implementations": [
"eth:0x25fdC3BE9977CD4da679dF72A64C8B6Bd5216A78"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x107d287F178cD54792614d7D63C47D8242240BeD"
]
}
],
"description": "Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **penaltyAndChargeManagers**: CommunityStakingModuleCommittee",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428#code"
},
{
"name": "ConsolidationMigrator",
"isVerified": true,
"address": "eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x6Fb4c152F092373dD71f0C07C83c1E77406599aB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782909659,
"transactionHash": "0xf79a695d824a1eb187cd259fe36ea680b52e7eb605c8d55c5287e19f38002145",
"implementations": [
"eth:0x6Fb4c152F092373dD71f0C07C83c1E77406599aB"
]
}
],
"description": "Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pairAllowers**: EVMScriptExecutor; ultimately EasyTrack\n * **pairDisallowers**: CuratedModuleCommittee",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7#code"
},
{
"name": "VettedGate",
"isVerified": true,
"address": "eth:0xa12760721A72A7199aB38059DA6690b9Cd4ed7B8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x66ADb8b3F58d3DFdF6bAdB595E41f19e947E5c14"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782821927,
"transactionHash": "0x9bdb3a2474c15442e5c02c9331763acbdc2bb054ff76b2682f5701738faa49b8",
"implementations": [
"eth:0x66ADb8b3F58d3DFdF6bAdB595E41f19e947E5c14"
]
}
],
"description": "Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa12760721A72A7199aB38059DA6690b9Cd4ed7B8#code"
},
{
"name": "MetaRegistry",
"isVerified": true,
"address": "eth:0xA64b339eebD3dC3De848298B6a140955932901d8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x6d852907463496622bb5FE5bc55cc30C4682E10e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070447,
"transactionHash": "0x9a0936e2a90541fcb683d2631feb777435a9d1884be25ef0f714054075f78fdf",
"implementations": [
"eth:0x422f0d117615949E0620E998E1FE455eB6215E30"
]
},
{
"timestamp": 1783070531,
"transactionHash": "0x411335e3c8d0c94d919a23dcef0c5cee74a63cef2e4972025e502332b7aab98e",
"implementations": [
"eth:0x6d852907463496622bb5FE5bc55cc30C4682E10e"
]
}
],
"description": "Stores metadata that groups permissionless staking-module node operators, describes their operators, and assigns bond-curve weights.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **operatorGroupManagers**: EVMScriptExecutor; ultimately EasyTrack\n * **operatorInfoSetters**: CuratedGate, CuratedModuleCommittee",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA64b339eebD3dC3De848298B6a140955932901d8#code"
},
{
"name": "wstETH Referral Staker",
"isVerified": true,
"address": "eth:0xa88f0329C2c4ce51ba3fc619BBf44efE7120Dd0d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless convenience contract that stakes supplied ETH in Lido with a caller-selected referral, wraps the resulting stETH, and returns wstETH to the caller.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa88f0329C2c4ce51ba3fc619BBf44efE7120Dd0d#code"
},
{
"name": "ValidatorStrikes",
"isVerified": true,
"address": "eth:0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xd25E7C3923d2e68c325980b0e15eD20d62B2691F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758112631,
"transactionHash": "0xce2dc07d9ed8201b98d438819ba4c3ef2b1d236e017c949d6af9dbc8a509d9d0",
"implementations": [
"eth:0x3E5021424c9e13FC853e523Cd68ebBec848956a0"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xd25E7C3923d2e68c325980b0e15eD20d62B2691F"
]
}
],
"description": "Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **oracle**: FeeOracle",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f#code"
},
{
"name": "ValidatorConsolidationRequests",
"isVerified": true,
"address": "eth:0xaC4Aae7123248684C405A4b0038C1560EC7fE018",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Read-only stVault helper that validates a Dashboard's ownership of a connected StakingVault and builds the EIP-7251 consolidation-request calldata and fee-exemption call for its source and target validators.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaC4Aae7123248684C405A4b0038C1560EC7fE018#code"
},
{
"name": "Liquid staked Ether 2.0 Token",
"isVerified": true,
"address": "eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x028271E30a695c0527A0C50cA30603feD004cDb0"
],
"immutable": false
},
"chain": "ethereum",
"description": "The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n* Roles:\n * **bufferReserveManagers**: Lido Dao Agent; ultimately Voting\n * **bufferReservePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **pausePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **resumePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingControlPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingPausePermissionManagers**: Lido Dao Agent; ultimately Voting",
"description": "The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n* Roles:\n * **bufferReserveManagers**: EVMScriptExecutor, Lido Dao Agent; ultimately EasyTrack, Voting\n * **bufferReservePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **pausePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **resumePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingControlPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingPausePermissionManagers**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84#code"
},
{
"name": "NodeOperatorsRegistry",
"isVerified": true,
"address": "eth:0xaE7B191A31f627b4eB1d4DaC64eaB9976995b433",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x6828b023e737f96B168aCd0b5c6351971a4F81aE"
],
"immutable": false
},
"chain": "ethereum",
"description": "Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n* Roles:\n * **nodeOperatorLimitPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **nodeOperatorLimitSetters**: EVMScriptExecutor; ultimately EasyTrack\n * **nodeOperatorManagers**: EVMScriptExecutor; ultimately EasyTrack\n * **nodeOperatorPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **signingKeyManagers**: EVMScriptExecutor; ultimately EasyTrack\n * **signingKeyPermissionManagers**: EVMScriptExecutor; ultimately EasyTrack\n * **stakingRouterPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **stakingRouters**: EVMScriptExecutor, StakingRouter; ultimately EasyTrack",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaE7B191A31f627b4eB1d4DaC64eaB9976995b433#code"
},
{
"name": "VettedGate",
"isVerified": true,
"address": "eth:0xB314D4A76C457c93150d308787939063F4Cc67E0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x66ADb8b3F58d3DFdF6bAdB595E41f19e947E5c14"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758112391,
"transactionHash": "0x34c17146c21269afdad518c3d057bcfe8e9fe674743598ac04943111c88c47fb",
"implementations": [
"eth:0x65D4D92Cd0EabAa05cD5A46269C24b71C21cfdc4"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x66ADb8b3F58d3DFdF6bAdB595E41f19e947E5c14"
]
}
],
"description": "Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB314D4A76C457c93150d308787939063F4Cc67E0#code"
},
{
"name": "PermissionlessGate",
"isVerified": true,
"address": "eth:0xb8cd8F059Ad7a5dB8CAfDe34aAb007317F7156C8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless Community Staking Module onboarding contract. Any address can create a node operator using its fixed bond curve by depositing ETH, stETH or wstETH.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb8cd8F059Ad7a5dB8CAfDe34aAb007317F7156C8#code"
},
{
"name": "WithdrawalVault",
"isVerified": true,
"address": "eth:0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xfB4521BD151BFB45DB6045D2d07e58e0f597e340"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0xCC52f17756C04bBa7E377716d7062fC36D7f69Fd"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x7D2BAa6094E1C4B60Da4cbAF4A77C3f4694fD53D"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xfB4521BD151BFB45DB6045D2d07e58e0f597e340"
]
}
],
"description": "Holds consensus-layer withdrawals and pays protocol predeploy fees. It lets stETH collect withdrawn ETH and lets the designated gateways submit EIP-7002 withdrawal and EIP-7251 consolidation requests.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **consolidation_gateway**: ConsolidationGateway\n * **lido**: Liquid staked Ether 2.0 Token\n * **triggerable_withdrawals_gateway**: TriggerableWithdrawalsGateway",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f#code"
},
{
"name": "ValidatorExitDelayVerifier",
"isVerified": true,
"address": "eth:0xbDb567672c867DB533119C2dcD4FB9d8b44EC82f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless EIP-4788 proof verifier that detects validators which remained active after a ValidatorExitBus exit request and reports their exit delay to the StakingRouter.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbDb567672c867DB533119C2dcD4FB9d8b44EC82f#code"
},
{
"name": "TokenRateNotifier",
"isVerified": true,
"address": "eth:0xbe05d12Fd10919F1881125006523452F6aFF791b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Notifies registered observer contracts after each stETH rebase (oracle report). Observers either just push the current token rate or additionally receive the full rebase report payload.\n* Roles:\n * **owner**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbe05d12Fd10919F1881125006523452F6aFF791b#code"
},
{
"name": "OracleDaemonConfig",
"isVerified": true,
"address": "eth:0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Stores key-value configuration consumed by Lido's off-chain oracle daemon.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09#code"
},
{
"name": "LidoLocator",
"isVerified": true,
"address": "eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313"
"eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1681295123,
"transactionHash": "0x3a2910624533935cc8c21837b1705bcb159a760796930097016186be705cc455",
"implementations": [
"eth:0xEC3B38EDc7878Ad3f18cFddcd341aa94Fc57d20B"
]
},
{
"timestamp": 1681378415,
"transactionHash": "0x299b401a2312fa081a6cb5012797a0f5a23b07394a96d505ebf7f4ab6420ff63",
"implementations": [
"eth:0x2faE8f0A4D8D11B6EC35d04d3Ea6a0d195EB6D3F"
]
},
{
"timestamp": 1681456667,
"transactionHash": "0x20aab9de778f007c034b35a11206f7e17ec8b28f9c8beabc26a8551ecab8f9f6",
"implementations": [
"eth:0xc601E93D9F48D5E374820957CdA57516e2523d6C"
]
},
{
"timestamp": 1681817063,
"transactionHash": "0x6105c893856a2528347ff1b2efd0838097b8c562670116f60bb76eb54cb80ce6",
"implementations": [
"eth:0xd4f6BEF8DdBc7306684b8D7c836269e0E6f8B6D0"
]
},
{
"timestamp": 1683731075,
"transactionHash": "0x3b419bde1ce29392444d861c02f3846ce0ea65b0caa50dbd5136f1ff46cddf4f",
"implementations": [
"eth:0x1D920cc5bACf7eE506a271a5259f2417CaDeCE1d"
]
},
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0x1D920cc5bACf7eE506a271a5259f2417CaDeCE1d"
]
},
{
"timestamp": 1728663671,
"transactionHash": "0xc7bc3019721ecf320698f2897b329d1930f64661100a5fa159181146088e03c2",
"implementations": [
"eth:0x39aFE23cE59e8Ef196b81F0DCb165E9aD38b9463"
]
},
{
"timestamp": 1729872203,
"transactionHash": "0x0078b3e0cecb3b50c78a22e0b1a985e6cde3bf431e9cb3b2ba4e50260122d542",
"implementations": [
"eth:0x3ABc4764f0237923d52056CFba7E9AEBf87113D3"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x2C298963FB763f74765829722a1ebe0784f4F5Cf"
]
},
{
"timestamp": 1766586947,
"transactionHash": "0xf143303a719ee2e0c494efce07f889f7c4cd432d9ed993b410c20ad1c904d38f",
"implementations": [
"eth:0x2f8779042EFaEd4c53db2Ce293eB6B3f7096C72d"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b"
]
},
{
"timestamp": 1786712795,
"transactionHash": "0x5a7868439de1003dc5f3d7ecf99826410c17883794bcd38ff75dd0e0bcce57c4",
"implementations": [
"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313"
]
},
{
"timestamp": 1790339267,
"transactionHash": "0x2aac8dd013e5284a39a08c3ca463862aa22b06b3c1253390a4fc806d0bca6a9e",
"implementations": [
"eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C"
]
}
],
"description": "Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb#code"
},
{
"name": "Community Staking Module Verifier",
"isVerified": true,
"address": "eth:0xC392F457960f1B13Ebaf1aa6C065479dD507E1E3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC392F457960f1B13Ebaf1aa6C065479dD507E1E3#code"
},
{
"name": "OperatorGrid",
"isVerified": true,
"address": "eth:0xC69685E89Cefc327b43B7234AC646451B27c544d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xA612E30D71d7D54aEaf4e5A21023F3F270932C2C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766451,
"transactionHash": "0x40af678429fcb6c79b61224f49b397f25f91a40bf4aadf2cb55b56c89de6c15d",
"implementations": [
"eth:0xA612E30D71d7D54aEaf4e5A21023F3F270932C2C"
]
}
],
"description": "Registry of stVault node-operator groups and risk tiers. It defines per-tier share limits, reserve ratios, forced-rebalance thresholds and fees, coordinates two-party tier changes, and can jail vaults.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **registryManagers**: EVMScriptExecutor, VaultsAdapter; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC69685E89Cefc327b43B7234AC646451B27c544d#code"
},
{
"name": "StakingVault",
"isVerified": true,
"address": "eth:0xd402937b3Ff3c187f727C1146a9E846275E9F711",
"upgradeability": {
"proxyType": "Beacon proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766367,
"transactionHash": "0xc1b1edfb9449fe7544219c94a0097c95521a4938cbda114f97f7e7b1c2d1e975",
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
}
],
"description": "An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **depositor**: PredepositGuarantee\n * **owner**: VaultHub",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd402937b3Ff3c187f727C1146a9E846275E9F711#code"
},
{
"name": "OpStackTokenRatePusher",
"isVerified": true,
"address": "eth:0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Pushes the current wstETH token rate to the token rate oracle on Optimism via the canonical OP Stack messenger whenever a rebase is reported.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE#code"
},
{
"name": "HashConsensus",
"isVerified": true,
"address": "eth:0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"description": "Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **memberAndQuorumManagers**: Lido Dao Agent; ultimately Voting\n * **members**: DelegationContract; ultimately EOA 1, EOA 2, EOA 3, EOA 4, EOA 5, EOA 6, EOA 7, EOA 8, EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288#code"
},
{
"name": "ConsolidationBus",
"isVerified": true,
"address": "eth:0xd907CE33B4Be423823d1CFFe80BD147E8b8554C8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xFfDe8Acab9D7037f29198Ad03ad6d05bac8B0a2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1782909563,
"transactionHash": "0x9b245b7da17cafc49ec0d05940243da32fa2cd10d252c8ad8324042fb27e4b75",
"implementations": [
"eth:0xFfDe8Acab9D7037f29198Ad03ad6d05bac8B0a2E"
]
}
],
"description": "Queues validator consolidation batches and, after an execution delay, forwards proven EIP-7251 requests to ConsolidationGateway.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **batchRemovers**: CuratedModuleCommittee\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **publishers**: ConsolidationMigrator",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd907CE33B4Be423823d1CFFe80BD147E8b8554C8#code"
},
{
"name": "FeeDistributor",
"isVerified": true,
"address": "eth:0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x936da7cDB7eed1084d294E23eA1d7Ad72DCcfE0E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1728566351,
"transactionHash": "0xee7781fe84a8d09249d1d882c3e1f4dbb82f8dd743a15d4b27df35c4959e17b3",
"implementations": [
"eth:0x17Fc610ecbbAc3f99751b3B2aAc1bA2b22E444f0"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x5DCF7cF7c6645E9E822a379dF046a8b0390251A1"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x936da7cDB7eed1084d294E23eA1d7Ad72DCcfE0E"
]
}
],
"description": "Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0#code"
},
{
"name": "CuratedModule",
"isVerified": true,
"address": "eth:0xDa5F930cE326EB5205085D66c72A4E79d60cB8C1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x959fC67FE53c8A6C7a1AEd73430Aa07a36eD9337"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070435,
"transactionHash": "0x73bb79457c94ed9d2e57bf4e1c769515b3f079e7c236093b27d4aeb6f28d0e76",
"implementations": [
"eth:0x422f0d117615949E0620E998E1FE455eB6215E30"
]
},
{
"timestamp": 1783070507,
"transactionHash": "0x4fae01530d41411c27f17cc6ba0314e0eab91d9240c89af3880a21e56d5e3efd",
"implementations": [
"eth:0x959fC67FE53c8A6C7a1AEd73430Aa07a36eD9337"
]
}
],
"description": "The permissioned Curated Staking Module. It manages approved node operators and validator keys, accepts deposits and top-ups from the StakingRouter, and processes validator lifecycle reports and penalties.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **delayedPenaltyReporters**: CuratedModuleCommittee\n * **delayedPenaltySettlers**: EVMScriptExecutor; ultimately EasyTrack\n * **nodeOperatorCreators**: CuratedGate\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **regularWithdrawalReporters**: Community Staking Module Verifier\n * **resumers**: ResealManager; ultimately Voting\n * **slashedWithdrawalReporters**: EVMScriptExecutor; ultimately EasyTrack\n * **stakingRouters**: StakingRouter\n * **verifiers**: Community Staking Module Verifier",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDa5F930cE326EB5205085D66c72A4E79d60cB8C1#code"
},
{
"name": "CSModule",
"isVerified": true,
"address": "eth:0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x63992a86f009fcC796a8369feEfB68880aef4e3a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1728566339,
"transactionHash": "0xf5330dbcf09885ed145c4435e356b5d8a10054751bb8009d3a2605d476ac173f",
"implementations": [
"eth:0x8daEa53b17a629918CDFAB785C5c74077c1D895B"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x1eB6d4da13ca9566c17F526aE0715325d7a07665"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0x63992a86f009fcC796a8369feEfB68880aef4e3a"
]
}
],
"description": "Lido's permissionless Community Staking Module. It manages node operators and validator keys, accepts router deposits and top-ups, processes validator exits, and applies bond-backed penalties.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **delayedPenaltyReporters**: CommunityStakingModuleCommittee\n * **delayedPenaltySettlers**: EVMScriptExecutor; ultimately EasyTrack\n * **nodeOperatorCreators**: PermissionlessGate, VettedGate\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **regularWithdrawalReporters**: Community Staking Module Verifier\n * **resumers**: ResealManager; ultimately Voting\n * **slashedWithdrawalReporters**: EVMScriptExecutor; ultimately EasyTrack\n * **stakingRouters**: StakingRouter\n * **verifiers**: Community Staking Module Verifier",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F#code"
},
{
"name": "TriggerableWithdrawalsGateway",
"isVerified": true,
"address": "eth:0xDC00116a0D3E064427dA2600449cfD2566B3037B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The permissioned entrypoint for full EIP-7002 validator withdrawals. It charges the current request fee, applies a replenishing global exit limit, forwards requests to WithdrawalVault, and notifies StakingRouter.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **exitLimitManagers**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **withdrawalRequesters**: Ejector, ValidatorsExitBusOracle",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDC00116a0D3E064427dA2600449cfD2566B3037B#code"
},
{
"name": "Ejector",
"isVerified": true,
"address": "eth:0xe181A377A2d2BDE9A83f1474BC3DB7A412de091E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting\n * **strikes**: ValidatorStrikes",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe181A377A2d2BDE9A83f1474BC3DB7A412de091E#code"
},
{
"name": "StakingVault",
"isVerified": true,
"address": "eth:0xE2cC063DEc5685718Bd57aAC6AEE9941b25b7c37",
"upgradeability": {
"proxyType": "Beacon proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766367,
"transactionHash": "0xc1b1edfb9449fe7544219c94a0097c95521a4938cbda114f97f7e7b1c2d1e975",
"implementations": [
"eth:0x06A56487494aa080deC7Bf69128EdA9225784553"
]
}
],
"description": "An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **depositor**: PredepositGuarantee\n * **owner**: VaultHub",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE2cC063DEc5685718Bd57aAC6AEE9941b25b7c37#code"
},
{
"name": "Burner",
"isVerified": true,
"address": "eth:0xE76c52750019b80B43E36DF30bf4060EB73F573a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xEe1E3B4f047122650086985f794f0dB5f10Ae49D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766319,
"transactionHash": "0x5002e54676d77acc3cd874929f8b1311434e10586ce72f58d05d4b1450a4e17d",
"implementations": [
"eth:0xEe1E3B4f047122650086985f794f0dB5f10Ae49D"
]
}
],
"description": "Escrows stETH shares requested for cover or non-cover burning and burns them during an oracle report. Excess stETH can be recovered into the Lido protocol during migration.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **selfBurnRequesters**: Accounting\n * **shareBurnRequesters**: Core Accounting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE76c52750019b80B43E36DF30bf4060EB73F573a#code"
},
{
"name": "CuratedGate",
"isVerified": true,
"address": "eth:0xeF273Ca4A21Ba7B414Ae3C9f9b443038cb133F72",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071383,
"transactionHash": "0xca276977fdd30f6065858d5358dbd53da86a6250da7ffee0525e5c9bfab9abeb",
"implementations": [
"eth:0x3cb948FD454ad6b20DE67633f25DcbDbEaa0e849"
]
}
],
"description": "Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CuratedModuleCommittee\n * **treeSetters**: EVMScriptExecutor; ultimately EasyTrack",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xeF273Ca4A21Ba7B414Ae3C9f9b443038cb133F72#code"
},
{
"name": "ValidatorStrikes",
"isVerified": true,
"address": "eth:0xf4618370a1fBf46905B16C10817c8CFaD924D6db",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x239Ee6ab18fB06370ad53Ce05097B32208fB0a30"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783071011,
"transactionHash": "0x23d4bf97b318f495c75af785aee05dc484d062ab141b17651cac85343b30925e",
"implementations": [
"eth:0x7A4C579e6Ed4017A03B4d43687f09b851F68d391"
]
},
{
"timestamp": 1783071071,
"transactionHash": "0xe2f72eb391f620d7e53e90783c652813f41c6c03d6a063c26e686f935cc7e0ec",
"implementations": [
"eth:0x239Ee6ab18fB06370ad53Ce05097B32208fB0a30"
]
}
],
"description": "Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **oracle**: FeeOracle",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf4618370a1fBf46905B16C10817c8CFaD924D6db#code"
},
{
"name": "PredepositGuarantee",
"isVerified": true,
"address": "eth:0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xE78717192C45736DF0E4be55c0219Ee7f9aDdd0D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1764766415,
"transactionHash": "0xfd1b90b1797f0728db5453713513a823a5b2751e5a6947d103c2f4d0bcc15f83",
"implementations": [
"eth:0xCC08C36BD5bb78FDcB10F35B404ada6Ffc71a023"
]
},
{
"timestamp": 1769692907,
"transactionHash": "0x8edb8008fdc48301db7b4f40ab520ba6f8b9354452fc52faf2092eb7df31c24c",
"implementations": [
"eth:0xE78717192C45736DF0E4be55c0219Ee7f9aDdd0D"
]
}
],
"description": "Protects StakingVault deposits by proving validator withdrawal credentials and requiring an initial predeposit before the remaining validator deposit is sent.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3#code"
},
{
"name": "MEV Boost Relay Allowed List",
"isVerified": true,
"address": "eth:0xF95f069F9AD107938F6ba802a3da87892298610E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Registry of MEV-Boost relay endpoints supported by Lido node operators. The list distinguishes mandatory relays from optional relays and is consumed offchain.\n* Roles:\n * **get_manager**: EVMScriptExecutor; ultimately EasyTrack\n * **get_owner**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF95f069F9AD107938F6ba802a3da87892298610E#code"
},
{
"name": "Community Staking Module Verifier",
"isVerified": true,
"address": "eth:0xfce7aB839e55de77730716D05b3553e45ab3A5Ba",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n* Roles:\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **pausers**: CircuitBreaker, ResealManager; ultimately Voting\n * **resumers**: ResealManager; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfce7aB839e55de77730716D05b3553e45ab3A5Ba#code"
},
{
"name": "StakingRouter",
"isVerified": true,
"address": "eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xDD76927045435C7605cf6f5F978cfb8CABDb5F80"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1683023963,
"transactionHash": "0xb8620f04a8db6bb52cfd0978c6677a5f16011e03d4622e5d660ea6ba34c2b122",
"implementations": [
"eth:0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31"
]
},
{
"timestamp": 1684163759,
"transactionHash": "0x592d68a259af899fb435da0ac08c2fd500cb423f37f1d8ce8e3120cb84186b21",
"implementations": [
"eth:0xD8784e748f59Ba711fB5643191Ec3fAdD50Fb6df"
]
},
{
"timestamp": 1729872203,
"transactionHash": "0x0078b3e0cecb3b50c78a22e0b1a985e6cde3bf431e9cb3b2ba4e50260122d542",
"implementations": [
"eth:0x89eDa99C0551d4320b56F82DDE8dF2f8D2eF81aA"
]
},
{
"timestamp": 1759420367,
"transactionHash": "0xfff774d519ec1afd4358d4858672578437e815dc1652245a2ffb7bde1bfff2ad",
"implementations": [
"eth:0x226f9265CBC37231882b7409658C18bB7738173A"
]
},
{
"timestamp": 1784904479,
"transactionHash": "0x297042b4e5fd41399634f124beec7afc37712bc3374c3419b72932caf52714aa",
"implementations": [
"eth:0xDD76927045435C7605cf6f5F978cfb8CABDb5F80"
]
}
],
"description": "Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **exitedValidatorReporters**: AccountingOracle\n * **rewardsMintReporters**: Core Accounting\n * **stakingModuleManagers**: Lido Dao Agent; ultimately Voting\n * **stakingModuleShareManagers**: EVMScriptExecutor; ultimately EasyTrack\n * **stakingModuleUnvetters**: DepositSecurityModule\n * **validatorExitTriggerReporters**: TriggerableWithdrawalsGateway\n * **validatorExitingStatusReporters**: ValidatorExitDelayVerifier",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFdDf38947aFB03C621C71b06C9C70bce73f12999#code"
},
{
"name": "ParametersRegistry",
"isVerified": true,
"address": "eth:0xffC1C5d59CeAC6F6c27E701F04a70cb50474607C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xfF419BbBC5f44d46547079922a88d691886d192a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1783070423,
"transactionHash": "0x5336a3ec97750f1e0852f43cb31f4e9f60a906699b143cb6ffb3128391819ab2",
"implementations": [
"eth:0xfF419BbBC5f44d46547079922a88d691886d192a"
]
}
],
"description": "Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n* Roles:\n * **admin**: Lido Dao Agent; ultimately Voting\n * **defaultAdmins**: Lido Dao Agent; ultimately Voting\n * **penaltyAndChargeManagers**: CuratedModuleCommittee",
"upgradableBy": [
{
"name": "Voting",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xffC1C5d59CeAC6F6c27E701F04a70cb50474607C#code"
},
{
"name": "Escrow",
"isVerified": true,
"address": "eth:0x165813A31446a98c84E20Dda8C101BB3C8228e1c",
"upgradeability": {
"proxyType": "EIP1167 proxy",
"admins": [],
"implementations": [
"eth:0xd6A67636c05BeB5B4a5c90D408b03A63c4e39426"
]
},
"chain": "ethereum",
"description": "Dual Governance escrow in which holders lock stETH, wstETH or unstETH to build veto support. It can be irreversibly converted into a Rage Quit escrow that withdraws the locked position as ETH.\n* Roles:\n * **dual_governance**: DualGovernance; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x165813A31446a98c84E20Dda8C101BB3C8228e1c#code"
},
{
"name": "Executor",
"isVerified": true,
"address": "eth:0x23E0B465633FF5178808F4A75186E2F2F9537021",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "External-call executor used by the Dual Governance timelock. Its owner can make it call any target with arbitrary calldata and ETH.\n* Roles:\n * **owner**: EmergencyProtectedTimelock; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x23E0B465633FF5178808F4A75186E2F2F9537021#code"
},
{
"name": "VaultsAdapter",
"isVerified": true,
"address": "eth:0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "EasyTrack adapter for stVault administration. The EVMScriptExecutor may change vault fees and jail status, liability targets, socialize bad debt, and force validator exits; a separate trusted caller controls the maximum exit fee and ETH recovery.\n* Roles:\n * **evmScriptExecutor**: EVMScriptExecutor; ultimately EasyTrack\n * **trustedCaller**: StVaultsCommittee",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27#code"
},
{
"name": "Lido Dao Agent",
"isVerified": true,
"address": "eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x3A93C17FC82CC33420d1809dDA9Fb715cc89dd37"
],
"immutable": false
},
"chain": "ethereum",
"description": "The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n* Roles:\n * **assetTransferers**: Finance\n * **executePermissionManagers**: Lido Dao Agent; ultimately Voting\n * **executors**: Executor\n * **scriptPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **scriptRunners**: Executor\n * **transferPermissionManagers**: Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c#code"
},
{
"name": "TimelockedGovernance",
"isVerified": true,
"address": "eth:0x553337946F2FAb8911774b20025fa776B76a7CcE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Emergency governance adapter. Its configured governance may submit and cancel proposals in the EmergencyProtectedTimelock; scheduling is permissionless once the submission delay has elapsed.\n* Roles:\n * **governance**: Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x553337946F2FAb8911774b20025fa776B76a7CcE#code"
},
{
"name": "CallsScript",
"isVerified": true,
"address": "eth:0x5cEb19e1890f677c3676d5ecDF7c501eBA01A054",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Petrified Aragon CallsScript executor library used by the Lido DAO and EasyTrack to decode and perform a batch of external calls.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5cEb19e1890f677c3676d5ecDF7c501eBA01A054#code"
},
{
"name": "ResealManager",
"isVerified": true,
"address": "eth:0x7914b5a1539b97Bd0bbd155757F25FD79A522d24",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter that lets the governance configured in the EmergencyProtectedTimelock indefinitely extend an existing pause or resume a supported sealable contract.\n* Roles:\n * **governance**: DualGovernance; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7914b5a1539b97Bd0bbd155757F25FD79A522d24#code"
},
{
"name": "EVMScriptRegistry",
"isVerified": true,
"address": "eth:0x853cc0D5917f49B57B8e9F89e491F5E18919093A",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0xBF1Ce0Bc4EdaAD8e576b3b55e19c4C15Cf6999eb"
],
"immutable": true
},
"chain": "ethereum",
"description": "Aragon registry of EVM script executors used by Lido DAO applications.\n* Roles:\n * **executorAdderPermissionManagers**: Lido Dao Agent; ultimately Voting\n * **registryManagerPermissionManagers**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x853cc0D5917f49B57B8e9F89e491F5E18919093A#code"
},
{
"name": "MiniMeTokenFactory",
"isVerified": true,
"address": "eth:0x909d05F384D0663eD4BE59863815aB43b4f347Ec",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable factory used by LDO's MiniMe token implementation to create snapshot-enabled token clones.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x909d05F384D0663eD4BE59863815aB43b4f347Ec#code"
},
{
"name": "Lido DAO ACL",
"isVerified": true,
"address": "eth:0x9895F0F17cc1d1891b6f18ee0b483B6f221b37Bb",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x9f3b9198911054B122fDb865f8A5Ac516201c339"
],
"immutable": false
},
"chain": "ethereum",
"description": "The shared Aragon ACL that stores Lido DAO permission grants, optional permission parameters, and the manager allowed to grant or revoke each app role.\n* Roles:\n * **permissionCreatorManagers**: Lido Dao Agent; ultimately Voting\n * **permissionCreators**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9895F0F17cc1d1891b6f18ee0b483B6f221b37Bb#code"
},
{
"name": "ImmutableDualGovernanceConfigProvider",
"isVerified": true,
"address": "eth:0xa1692Af6FDfdD1030E4E9c4Bc429986FA64CB5EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Immutable Dual Governance timing and veto-threshold configuration. Replacing the provider in DualGovernance is the only way to change these parameters.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa1692Af6FDfdD1030E4E9c4Bc429986FA64CB5EF#code"
},
{
"name": "Lido DAO Kernel",
"isVerified": true,
"address": "eth:0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc",
"upgradeability": {
"proxyType": "EIP897 proxy",
"admins": [],
"implementations": [
"eth:0x2b33CF282f867A7FF693A66e11B0FcC5552e4425"
],
"immutable": false
},
"chain": "ethereum",
"description": "The Lido DAO's Aragon Kernel. It registers DAO applications and their implementation bases and points them to the shared ACL.\n* Roles:\n * **appManagerPermissionManagers**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc#code"
},
{
"name": "DualGovernance",
"isVerified": true,
"address": "eth:0xC1db28B3301331277e307FDCfF8DE28242A4486E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Lido Dual Governance state machine. Registered proposers submit calls through an associated executor, while stETH, wstETH and unstETH holders can lock assets in an escrow to delay or stop governance execution and enter Rage Quit.\n* Roles:\n * **adminExecutor**: Executor; ultimately Voting\n * **getProposalsCanceller**: Voting\n * **getResealCommittee**: ResealCommittee\n * **proposers**: Voting\n * **tiebreakerCommittee**: TiebreakerCoreCommittee",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC1db28B3301331277e307FDCfF8DE28242A4486E#code"
},
{
"name": "EmergencyProtectedTimelock",
"isVerified": true,
"address": "eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Timelock used by Dual Governance. Governance submits and schedules batches, anyone may execute a ready batch, and time-bounded emergency committees can activate emergency mode and execute already submitted proposals without the ordinary schedule delay.\n* Roles:\n * **getAdminExecutor**: Executor; ultimately Voting\n * **getEmergencyActivationCommittee**: DualGovernanceEmergencyActivationCommittee\n * **getEmergencyExecutionCommittee**: DualGovernanceEmergencyExecutionCommittee\n * **getGovernance**: DualGovernance; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316#code"
},
{
"name": "EVMScriptExecutor",
"isVerified": true,
"address": "eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "EasyTrack execution adapter. It executes the Aragon CallsScript produced by an approved EasyTrack motion, making downstream calls from this contract's address.\n* Roles:\n * **easyTrack**: EasyTrack\n * **owner**: Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977#code"
},
{
"name": "DepositContract",
"isVerified": true,
"address": "eth:0x00000000219ab540356cBB839Cbe05303d7705Fa",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Ethereum Beacon Chain deposit contract.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x00000000219ab540356cBB839Cbe05303d7705Fa#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x031E597BcF680f1f2293b119b4b2B14096B15497",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 14",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x031E597BcF680f1f2293b119b4b2B14096B15497#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x35506190Ca6df385aA6Bc4a970646dd4f49426c1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 10",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35506190Ca6df385aA6Bc4a970646dd4f49426c1#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 6",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 4",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC#code"
},
{
"name": "Lido DAO Token",
"isVerified": true,
"address": "eth:0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "eth:0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A beacon with an upgradeable implementation currently set as StakingVault. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: Lido Dao Agent; ultimately Voting",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x6A22d74a816662078f2371A7138E7614874cd61d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 16",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6A22d74a816662078f2371A7138E7614874cd61d#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 11",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5#code"
},
{
"name": "Wrapped liquid staked Ether 2.0 Token",
"isVerified": true,
"address": "eth:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x915F0Fa50E1af761B113b41c79ab33Bf4734C36E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 12",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x915F0Fa50E1af761B113b41c79ab33Bf4734C36E#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x99Cd2EF33040879D40BBC77Df81863D97f13C64d#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC4f2704273598d51A0ec76A31C12553ec8f5A891#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 7",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 8",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd524101C3c40f71Fce7B9312D299603880a06Bdb#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xDc1579636686C082fc3b00B9EB25259A110D0C44",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 13",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDc1579636686C082fc3b00B9EB25259A110D0C44#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xe387Ba1d5C9f6306eCe9ac949C7fB6233dD5411E",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 15",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe387Ba1d5C9f6306eCe9ac949C7fB6233dD5411E#code"
},
{
"name": "DelegationContract",
"isVerified": true,
"address": "eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n* Roles:\n * **getDelegate**: EOA 5",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3#code"
}
]
},
"risks": [
{
"category": "Funds can be stolen if",
"text": "the Lido DAO passes a malicious upgrade through Dual Governance and stETH holders fail to veto (≥1%) or rage-quit (≥10%) within the timelock delay.",
"isCritical": true
},
{
"category": "Funds can be stolen if",
"text": "the emergency committees reset governance to the no-veto fallback and an LDO majority then pushes an upgrade the stETH-holder veto would otherwise have blocked."
},
{
"category": "Funds can be stolen if",
"text": "a quorum of Deposit Security Module guardians colludes with a node operator to sign off a deposit batch that front-runs freshly-deposited ETH with attacker withdrawal credentials (bounded per block by the max deposits per block)."
},
{
"category": "Funds can lose value if",
"text": "the oracle committee quorum misreports — bounded per report by the OracleReportSanityChecker (rebase and consensus-layer balance-change clamps), so mispricing is capped."
},
{
"category": "Funds can be frozen if",
"text": "the oracle committee stops submitting reports, since withdrawals can only be finalized inside the oracle report — recovery requires a governance action."
},
{
"category": "Funds can lose value if",
"text": "node operators go offline or are slashed; the loss is socialized to all stETH holders through a smaller rebase, pooled (NOR/SDVT) operators post no bond to absorb it, and correlated mass-slashing raises the per-validator penalty."
}
]
}
+1 -1
{
"baseTimestamp": 1789656139,
"baseTimestamp": 1790851094,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "14e50736",
"date": "Thu, 01 Oct 2026 12:52:03 GMT",
"timestamp": 1790851094,
"description": "Aragon vote 205 / Dual Governance proposal 14 (LIP-37 Execution Delegation Framework), executed 2026-09-25:\n- All four HashConsensus committees and the DSM guardian set now consist of per-entity DelegationContracts: a hot-key delegate acts through the contract, its owner Safe can revoke it instantly or install a new one after a 2-day cooldown.\n- New DepositSecurityModule v5 that only accepts ERC-1271 guardians and binds signatures to the guardian. It replaces the old DSM as StakingRouter unvetter. LidoLocator impl redeployed only to point to it: https://disco.l2beat.com/diff/eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be/eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0, https://disco.l2beat.com/diff/eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313/eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C\n- TopUpGateway TOP_UP_ROLE moved to a DelegationContract (depositor bot). EasyTrack EVMScriptExecutor gets stETH BUFFER_RESERVE_MANAGER_ROLE.\n\nOther: P2P Safe signer rotated, VettedGate tree updated, 15 ConsolidationMigrator pairs added, MEV relay list v26 drops bloXroute Max-Profit, stETH fee split shifts with stake migrating from Curated Module v1 to v2 (module fees unchanged).",
"isHighSeverity": true,
"changeCount": 97,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Voting (eth:0x2e59A20f205bB85a89C53f1936454680651E618e) [lido/Voting] {\n +++ description: Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n receivedPermissions.23:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0\",\"description\":\"transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits.\",\"role\":\".getOwner\",\"via\":[{\"address\":\"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\"},{\"address\":\"eth:0x23E0B465633FF5178808F4A75186E2F2F9537021\"},{\"address\":\"eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316\",\"delay\":259200},{\"address\":\"eth:0xC1db28B3301331277e307FDCfF8DE28242A4486E\"}]}\n receivedPermissions.143:\n- {\"permission\":\"interact\",\"from\":\"eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be\",\"description\":\"transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits.\",\"role\":\".getOwner\",\"via\":[{\"address\":\"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\"},{\"address\":\"eth:0x23E0B465633FF5178808F4A75186E2F2F9537021\"},{\"address\":\"eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316\",\"delay\":259200},{\"address\":\"eth:0xC1db28B3301331277e307FDCfF8DE28242A4486E\"}]}\n }\n```\n\n```diff\n contract Lido Dao Agent (eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) [lido/LidoDaoAgent] {\n +++ description: The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n directlyReceivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0\",\"description\":\"transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits.\",\"role\":\".getOwner\"}\n directlyReceivedPermissions.73:\n- {\"permission\":\"interact\",\"from\":\"eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be\",\"description\":\"transfer ownership, configure guardians, quorum and pause parameters, and unpause staking-module deposits.\",\"role\":\".getOwner\"}\n }\n```\n\n```diff\n contract TopUpGateway (eth:0x3FC2C71579D80790Aaa3fc7Be8B66ac39dC57374) [lido/TopUpGateway] {\n +++ description: Validates consensus-layer proofs and submits EIP-7251 validator top-ups for staking modules. It limits top-up batch size, proof age, and call frequency.\n values.accessControl.TOP_UP_ROLE.members.0:\n- \"eth:0xF82aC5937A20dC862F9bc0668779031E06000f17\"\n+ \"eth:0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5\"\n values.topUpSubmitters.0:\n- \"eth:0xF82aC5937A20dC862F9bc0668779031E06000f17\"\n+ \"eth:0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5\"\n }\n```\n\n```diff\n contract HashConsensus (eth:0x71093efF8D8599b5fA340D665Ad60fA7C80688e4) [lido/HashConsensus] {\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.0:\n- \"eth:0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12\"\n+ \"eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.1:\n- \"eth:0x4118DAD7f348A4063bD15786c299De2f3B1333F3\"\n+ \"eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.2:\n- \"eth:0x404335BcE530400a5814375E7Ec1FB55fAff3eA2\"\n+ \"eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.3:\n- \"eth:0x8dB977C13CAA938BC58464bFD622DF0570564b78\"\n+ \"eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.4:\n- \"eth:0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5\"\n+ \"eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.5:\n- \"eth:0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf\"\n+ \"eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.6:\n- \"eth:0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8\"\n+ \"eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.7:\n- \"eth:0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9\"\n+ \"eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.8:\n- \"eth:0x042a9e5acCfa17e28300F1b5967f20891E973922\"\n+ \"eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f\"\n }\n```\n\n```diff\n contract HashConsensus (eth:0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a) [lido/HashConsensus] {\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.0:\n- \"eth:0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12\"\n+ \"eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.1:\n- \"eth:0x4118DAD7f348A4063bD15786c299De2f3B1333F3\"\n+ \"eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.2:\n- \"eth:0x404335BcE530400a5814375E7Ec1FB55fAff3eA2\"\n+ \"eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.3:\n- \"eth:0x8dB977C13CAA938BC58464bFD622DF0570564b78\"\n+ \"eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.4:\n- \"eth:0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5\"\n+ \"eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.5:\n- \"eth:0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf\"\n+ \"eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.6:\n- \"eth:0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8\"\n+ \"eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.7:\n- \"eth:0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9\"\n+ \"eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.8:\n- \"eth:0x042a9e5acCfa17e28300F1b5967f20891E973922\"\n+ \"eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f\"\n }\n```\n\n```diff\n contract P2P (eth:0x8ed4dfd3A610CCF1FB45e797bf5D8e0f93084F22) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"eth:0xE21a08C60b065cE42FD5b0BD99a98A0FAe6ddA23\"\n+ \"eth:0x8a955ed24FcB3cF71d8A5BC828B7DcFdB2C17101\"\n }\n```\n\n```diff\n contract HashConsensus (eth:0x902D64c93F6595339aA46105627a085591051aFb) [lido/HashConsensus] {\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.0:\n- \"eth:0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12\"\n+ \"eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.1:\n- \"eth:0x4118DAD7f348A4063bD15786c299De2f3B1333F3\"\n+ \"eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.2:\n- \"eth:0x404335BcE530400a5814375E7Ec1FB55fAff3eA2\"\n+ \"eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.3:\n- \"eth:0x8dB977C13CAA938BC58464bFD622DF0570564b78\"\n+ \"eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.4:\n- \"eth:0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5\"\n+ \"eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.5:\n- \"eth:0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf\"\n+ \"eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.6:\n- \"eth:0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8\"\n+ \"eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.7:\n- \"eth:0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9\"\n+ \"eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.8:\n- \"eth:0x042a9e5acCfa17e28300F1b5967f20891E973922\"\n+ \"eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f\"\n }\n```\n\n```diff\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator] {\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.24:\n+ {\"sourceOperatorId\":37,\"targetOperatorId\":25,\"submitter\":\"eth:0xF5Cba67d34c18bD77Ecd705341bD1b00d8A6bDB9\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.25:\n+ {\"sourceOperatorId\":19,\"targetOperatorId\":40,\"submitter\":\"eth:0x60bC65e1ccA448F98578F8d9f9AB64c3BA70a4c3\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.26:\n+ {\"sourceOperatorId\":19,\"targetOperatorId\":41,\"submitter\":\"eth:0x60bC65e1ccA448F98578F8d9f9AB64c3BA70a4c3\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.27:\n+ {\"sourceOperatorId\":31,\"targetOperatorId\":14,\"submitter\":\"eth:0xE556Da28015c04F35A52B3111B9F4120E908056e\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.28:\n+ {\"sourceOperatorId\":17,\"targetOperatorId\":35,\"submitter\":\"eth:0xb79C6146b0165eB25Fa33A796FB3bF3916254c67\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.29:\n+ {\"sourceOperatorId\":28,\"targetOperatorId\":24,\"submitter\":\"eth:0x209a649DAF35f390285c28F8FE3907804535C247\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.30:\n+ {\"sourceOperatorId\":36,\"targetOperatorId\":26,\"submitter\":\"eth:0x35921FB43cB92F5Bfef7cBA1e97Eb5A21Fc2d353\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.31:\n+ {\"sourceOperatorId\":0,\"targetOperatorId\":38,\"submitter\":\"eth:0x6fA0f36A24Cdb9cE4aeCc74DC86084c0c5dad8c6\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.32:\n+ {\"sourceOperatorId\":5,\"targetOperatorId\":5,\"submitter\":\"eth:0x3831dc257b7b0b507c8aEBfBf94B8E82E5092311\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.33:\n+ {\"sourceOperatorId\":5,\"targetOperatorId\":7,\"submitter\":\"eth:0x3831dc257b7b0b507c8aEBfBf94B8E82E5092311\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.34:\n+ {\"sourceOperatorId\":2,\"targetOperatorId\":23,\"submitter\":\"eth:0x1126EBBDd9f2A9B3a1F1D48A74cDF4e67B80C262\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.35:\n+ {\"sourceOperatorId\":35,\"targetOperatorId\":13,\"submitter\":\"eth:0x78CEE97C23560279909c0215e084dB293F036774\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.36:\n+ {\"sourceOperatorId\":27,\"targetOperatorId\":45,\"submitter\":\"eth:0x58b620C74fB5D370e960C81B9f319653f6176945\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.37:\n+ {\"sourceOperatorId\":33,\"targetOperatorId\":4,\"submitter\":\"eth:0x208e16012C0D774703cAA93f00F59A2d4a31689a\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.38:\n+ {\"sourceOperatorId\":11,\"targetOperatorId\":39,\"submitter\":\"eth:0xd8d93E91EA5F24D0E2a328BC242055D40f00bE1A\"}\n }\n```\n\n```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.aragonPermissions.BUFFER_RESERVE_MANAGER_ROLE.members.1:\n+ \"eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977\"\n values.bufferReserveManagers.1:\n+ \"eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977\"\n }\n```\n\n```diff\n contract VettedGate (eth:0xB314D4A76C457c93150d308787939063F4Cc67E0) [lido/VettedGate] {\n +++ description: Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n values.treeCid:\n- \"bafkreihg2mqulwsmhiho6bcd4mf4ao2kigzaq3uh5dlna34cjiyllawvja\"\n+ \"bafkreibtrmelqmb22jhbc5bnexwmfuoz3sgntv7b5ip5bvsbmftt4jevru\"\n values.treeRoot:\n- \"0x8c92643a5320749acb56f82705e45e3cd680e1760c172e28a4945118f3769b69\"\n+ \"0x233e33a3d3a195e614c5dc13886e1804cd9c0b88dac909fb67e0badef44a8f38\"\n }\n```\n\n```diff\n contract LidoLocator (eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb) [lido/LidoLocator] {\n +++ description: Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n values.$implementation:\n- \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n+ \"eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C\"\n values.$pastUpgrades.12:\n+ [\"2026-09-25T12:27:47.000Z\",\"0x2aac8dd013e5284a39a08c3ca463862aa22b06b3c1253390a4fc806d0bca6a9e\",[\"eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C\"]]\n values.$upgradeCount:\n- 12\n+ 13\n values.depositSecurityModule:\n- \"eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be\"\n+ \"eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0\"\n values.proxy__getImplementation:\n- \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n+ \"eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C\"\n implementationNames.eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313:\n- \"LidoLocator\"\n implementationNames.eth:0x60E09F1791F1168d0450E4F100616B4a3F95119C:\n+ \"LidoLocator\"\n }\n```\n\n```diff\n contract HashConsensus (eth:0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288) [lido/HashConsensus] {\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.0:\n- \"eth:0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12\"\n+ \"eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.1:\n- \"eth:0x4118DAD7f348A4063bD15786c299De2f3B1333F3\"\n+ \"eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.2:\n- \"eth:0x404335BcE530400a5814375E7Ec1FB55fAff3eA2\"\n+ \"eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.3:\n- \"eth:0x8dB977C13CAA938BC58464bFD622DF0570564b78\"\n+ \"eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.4:\n- \"eth:0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5\"\n+ \"eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.5:\n- \"eth:0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf\"\n+ \"eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.6:\n- \"eth:0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8\"\n+ \"eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.7:\n- \"eth:0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9\"\n+ \"eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d\"\n+++ description: Oracle committee members, excluding their changing last-reported reference slots.\n values.members.8:\n- \"eth:0x042a9e5acCfa17e28300F1b5967f20891E973922\"\n+ \"eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f\"\n }\n```\n\n```diff\n contract EasyTrack (eth:0xF0211b7660680B49De1A7E9f25C65660F0a13Fea) [lido/EasyTrack] {\n +++ description: Optimistic Lido DAO motion system. Approved factories restrict the target and selector of each motion; LDO holders can object, and an unobstructed motion is executed through the EVMScriptExecutor after its delay.\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84\",\"description\":\"change the ETH deposit-reserve target retained in the stETH buffer.\",\"role\":\".bufferReserveManagers\",\"via\":[{\"address\":\"eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract DepositSecurityModule (eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be) [lido/DepositSecurityModule]\n +++ description: Guardian-based circuit breaker for staking-module deposits. Buffered ETH can only be deposited into a module with attestations of the current deposit root and module nonce from a quorum of guardians, while any single guardian can pause all deposits or unvet node-operator signing keys. The owner configures guardians, quorum and pause parameters and resumes deposits. Version 5 only accepts ERC-1271 guardian contracts and binds every signed message to the signing guardian.\n```\n\n```diff\n contract MEV Boost Relay Allowed List (eth:0xF95f069F9AD107938F6ba802a3da87892298610E) [lido/MEVBoostRelayAllowedList] {\n +++ description: Registry of MEV-Boost relay endpoints supported by Lido node operators. The list distinguishes mandatory relays from optional relays and is consumed offchain.\n values.get_allowed_list_version:\n- 25\n+ 26\n values.get_relays.3.description:\n- \"bloXroute Max-Profit Relay\"\n+ \"Ultra Sound Relay - filtering\"\n values.get_relays.3.operator:\n- \"bloXroute\"\n+ \"Ultra Sound\"\n values.get_relays.3.uri:\n- \"https://0x8b5d2e73e2a3a55c6c87b8b6eb92e0149a125c852751db1422fa951e42a09b82c142c3ea98d0d9930b056a3bc9896b8f@bloxroute.max-profit.blxrbdn.com\"\n+ \"https://0xa1559ace749633b997cb3fdacffb890aeebdb0f5a3b6aaa7eeeaf1a38af0a8fe88b9e4b1f61f236d2e64d95733327a62@relay-filtered.ultrasound.money\"\n values.get_relays.8:\n- {\"uri\":\"https://0xa1559ace749633b997cb3fdacffb890aeebdb0f5a3b6aaa7eeeaf1a38af0a8fe88b9e4b1f61f236d2e64d95733327a62@relay-filtered.ultrasound.money\",\"operator\":\"Ultra Sound\",\"is_mandatory\":true,\"description\":\"Ultra Sound Relay - filtering\"}\n values.get_relays_amount:\n- 9\n+ 8\n }\n```\n\n```diff\n contract StakingRouter (eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999) [lido/StakingRouter] {\n +++ description: Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n values.accessControl.STAKING_MODULE_UNVETTING_ROLE.members.0:\n- \"eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be\"\n+ \"eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0\"\n values.stakingModuleUnvetters.0:\n- \"eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be\"\n+ \"eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0\"\n }\n```\n\n```diff\n contract EVMScriptExecutor (eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977) [lido/EVMScriptExecutor] {\n +++ description: EasyTrack execution adapter. It executes the Aragon CallsScript produced by an approved EasyTrack motion, making downstream calls from this contract's address.\n directlyReceivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84\",\"description\":\"change the ETH deposit-reserve target retained in the stETH buffer.\",\"role\":\".bufferReserveManagers\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x031E597BcF680f1f2293b119b4b2B14096B15497) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x35506190Ca6df385aA6Bc4a970646dd4f49426c1) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DepositSecurityModule (eth:0x39BB5d491e98A44D1bfe8047A737a81E296a63E0) [lido/DepositSecurityModule]\n +++ description: Guardian-based circuit breaker for staking-module deposits. Buffered ETH can only be deposited into a module with attestations of the current deposit root and module nonce from a quorum of guardians, while any single guardian can pause all deposits or unvet node-operator signing keys. The owner configures guardians, quorum and pause parameters and resumes deposits. Version 5 only accepts ERC-1271 guardian contracts and binds every signed message to the signing guardian.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x4E3F2DEeb59eB9a205D82D17647b3e56422e0FEe) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x56B3eA8016Da18C6E8CD8135492d242F0dE0DBBC) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x5e8Ed9f10307eD6FA793A347e4D0f407D00B9C6f) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x6A22d74a816662078f2371A7138E7614874cd61d) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x6Aa249bA53A3abcaC52F91146583B3eE2Ee4C7F5) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x915F0Fa50E1af761B113b41c79ab33Bf4734C36E) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0x99Cd2EF33040879D40BBC77Df81863D97f13C64d) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xC4f2704273598d51A0ec76A31C12553ec8f5A891) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xc7442d4d8F3FfEa0fA4a18Ad3062c8137cE21749) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xc77d0Bf3AA4778E36a89CDC8bbc9c34d8060637d) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xd524101C3c40f71Fce7B9312D299603880a06Bdb) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xDc1579636686C082fc3b00B9EB25259A110D0C44) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xe387Ba1d5C9f6306eCe9ac949C7fB6233dD5411E) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```\n\n```diff\n+ Status: CREATED\n contract DelegationContract (eth:0xE75A431A98487DC69A14Bdd13d858E3238e9C1b3) [lido/DelegationContract]\n +++ description: Execution Delegation Framework contract that holds a Lido protocol role, such as an oracle committee seat or a Deposit Security Module guardian seat, on behalf of one entity. Its current delegate can make arbitrary calls from this contract and produce ERC-1271 signatures for it. The immutable owner can nominate a new delegate, which becomes effective only after the immutable cooldown, revoke the delegate immediately, or irreversibly terminate the contract.\n```"
}
]
},
{
"id": "f481444e",
"date": "Thu, 17 Sep 2026 14:45:27 GMT",
"timestamp": 1789656139,
"description": "ConsolidationMigrator: 2 more source/target operator pairs allowed through EasyTrack (24 total).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator] {\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.22:\n+ {\"sourceOperatorId\":9,\"targetOperatorId\":3,\"submitter\":\"eth:0x62EFDC587691319357D0518be026f940E4e2843a\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.23:\n+ {\"sourceOperatorId\":7,\"targetOperatorId\":33,\"submitter\":\"eth:0xa434489C243cb5e38Ca69809a0992B70a8930Bb6\"}\n }\n```"
}
]
},
{
"id": "3e5c973b",
"date": "Tue, 15 Sep 2026 12:10:43 GMT",
"timestamp": 1789473742,
"description": "The Curated Module v1 -> v2 validator consolidation started: 22 source/target operator pairs were allowed through EasyTrack, each naming the node operator address permitted to submit that pair's consolidation batches to the ConsolidationBus. Config change: submitters are no longer followed into discovery.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator] {\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.0:\n+ {\"sourceOperatorId\":4,\"targetOperatorId\":19,\"submitter\":\"eth:0x987Cc5111389a1f58BC7f678C95f485631205Ec3\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.1:\n+ {\"sourceOperatorId\":29,\"targetOperatorId\":0,\"submitter\":\"eth:0xcd51df5142156BD92E7A9494Dd2b9362f5078D64\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.2:\n+ {\"sourceOperatorId\":20,\"targetOperatorId\":29,\"submitter\":\"eth:0xEd95f777FDF439f2bea0B26ed4e37b95a851d131\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.3:\n+ {\"sourceOperatorId\":18,\"targetOperatorId\":12,\"submitter\":\"eth:0x6d1d325bE40726Ef8c88F009b62d2135d9b38b11\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.4:\n+ {\"sourceOperatorId\":22,\"targetOperatorId\":22,\"submitter\":\"eth:0x765c6a8f20c842E8C826B0D9425015784F982aFc\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.5:\n+ {\"sourceOperatorId\":14,\"targetOperatorId\":18,\"submitter\":\"eth:0xd9faE181C6BD5b4CD361b0F08926226a3af274Db\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.6:\n+ {\"sourceOperatorId\":38,\"targetOperatorId\":34,\"submitter\":\"eth:0xcA6817DAb36850D58375A10c78703CE49d41D25a\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.7:\n+ {\"sourceOperatorId\":24,\"targetOperatorId\":9,\"submitter\":\"eth:0x8845D7F2Bbfe82249c3B95e378A6eD039Dd953F5\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.8:\n+ {\"sourceOperatorId\":16,\"targetOperatorId\":2,\"submitter\":\"eth:0x1EC3Cbe8fb1D8019092500CcA2111C158a35bC82\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.9:\n+ {\"sourceOperatorId\":34,\"targetOperatorId\":10,\"submitter\":\"eth:0x944849824A88ffeA23eF7e53b8A6793D88CE7581\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.10:\n+ {\"sourceOperatorId\":34,\"targetOperatorId\":11,\"submitter\":\"eth:0x944849824A88ffeA23eF7e53b8A6793D88CE7581\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.11:\n+ {\"sourceOperatorId\":13,\"targetOperatorId\":16,\"submitter\":\"eth:0xa9995734C3e182aC5FfeFC2a399fb92F971BB1A6\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.12:\n+ {\"sourceOperatorId\":25,\"targetOperatorId\":8,\"submitter\":\"eth:0xC6AACba3a2dF56169aaA93c2947BF7Cea346fDA5\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.13:\n+ {\"sourceOperatorId\":6,\"targetOperatorId\":31,\"submitter\":\"eth:0x904A289145b1FE0B672682db895bAde2EB186126\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.14:\n+ {\"sourceOperatorId\":6,\"targetOperatorId\":32,\"submitter\":\"eth:0x904A289145b1FE0B672682db895bAde2EB186126\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.15:\n+ {\"sourceOperatorId\":23,\"targetOperatorId\":42,\"submitter\":\"eth:0x98B2D0988c4f69303be834C9d0b5DdacD8257880\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.16:\n+ {\"sourceOperatorId\":26,\"targetOperatorId\":36,\"submitter\":\"eth:0x29d5a9917A82Dbb77e3362128C425d3a63eE8E6F\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.17:\n+ {\"sourceOperatorId\":15,\"targetOperatorId\":17,\"submitter\":\"eth:0x5A934D6822a372CFe221C8D2bB02B6DfCd683578\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.18:\n+ {\"sourceOperatorId\":21,\"targetOperatorId\":6,\"submitter\":\"eth:0xF45C77EadD434612fCD93db978B3E36B0D58eC99\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.19:\n+ {\"sourceOperatorId\":30,\"targetOperatorId\":27,\"submitter\":\"eth:0x5a8B929EDBf3CE44526465DD2087EC7EFB59A561\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.20:\n+ {\"sourceOperatorId\":30,\"targetOperatorId\":28,\"submitter\":\"eth:0x5a8B929EDBf3CE44526465DD2087EC7EFB59A561\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.21:\n+ {\"sourceOperatorId\":10,\"targetOperatorId\":44,\"submitter\":\"eth:0x1d8A932E727331a5e4EAB41b565aFDA9A100476B\"}\n }\n```"
}
]
},
{
"id": "1a7f8fd4",
"date": "Fri, 04 Sep 2026 15:07:58 GMT",
"timestamp": 1788534406,
"description": "Name Lido committee multisigs and the tiebreaker subcommittees after the Lido multisig registry; show the CircuitBreaker, Finance, DepositSecurityModule and TokenManager permission aggregators as actors in their own right; scope the Agent TRANSFER_ROLE description to ETH and ERC-20",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3793\n+ 3783\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6206\n+ 6216\n }\n```"
}
]
},
{
"id": "3970d2c8",
"date": "Tue, 25 Aug 2026 08:54:24 GMT",
"timestamp": 1787647851,
"description": "Fee adjustment.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3783\n+ 3793\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6216\n+ 6206\n }\n```\n\n```diff\n EOA (eth:0xddD80BC94975C10A2f613511F80bd860FcB76818) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xddD80BC94975C10A2f613511F80bd860FcB76818\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0xadb55a1ae85f692b559ec1e9eb19d290078ad89f05860ae2056753b396978fa2\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```"
}
]
},
{
"id": "4bdc8d90",
"date": "Thu, 20 Aug 2026 12:02:26 GMT",
"timestamp": 1787227248,
"description": "Regenerated after fixing the `accessControl` discovery handler.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3793\n+ 3783\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6206\n+ 6216\n }\n```"
}
]
},
{
"id": "1bb4dd02",
"date": "Mon, 17 Aug 2026 10:06:36 GMT",
"timestamp": 1786960746,
"description": "Wiring for the Lido DAO buyback program's revenue accounting:\n\n- The `LidoLocator` implementation was upgraded only to swap the immutable `postTokenRebaseReceiver` to a redeployed `TokenRateNotifier`.\n- The new `TokenRateNotifier` has two targets: the pre-existing `OpStackTokenRatePusher` and the new `StakingRevenueSource`, which accrues the DAO treasury's fee share of each stETH rebase and converts it into a cumulative USD figure for the buyback program.\n- `StakingRevenueSource` values stETH via the new `OracleRouter`, which reads prices from Chainlink's canonical Feed Registry. The router's admin is the Aragon `Voting` app and its manager is the DAO's `TreasuryManagementCommittee` 4/7 multisig; both can configure feed routes, staleness limits, and activation flags.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract TokenRateNotifier (eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9) [N/A]\n +++ description: None\n```\n\n```diff\n contract Voting (eth:0x2e59A20f205bB85a89C53f1936454680651E618e) [lido/Voting] {\n +++ description: Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n receivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31\",\"description\":\"appoint the manager and emergency operator of the OracleRouter and configure all token price feed routes, staleness limits and activation flags.\",\"role\":\".ADMIN\"}\n }\n```\n\n```diff\n contract Lido Dao Agent (eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) [lido/LidoDaoAgent] {\n +++ description: The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n directlyReceivedPermissions.26:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\",\"description\":\"add or remove token-rate observers and transfer or renounce ownership.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract LidoLocator (eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb) [lido/LidoLocator] {\n +++ description: Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n values.$implementation:\n- \"eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b\"\n+ \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n values.$pastUpgrades.11:\n+ [\"2026-08-14T13:06:35.000Z\",\"0x5a7868439de1003dc5f3d7ecf99826410c17883794bcd38ff75dd0e0bcce57c4\",[\"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.oracleReportComponents.4:\n- \"eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9\"\n+ \"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\"\n values.postTokenRebaseReceiver:\n- \"eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9\"\n+ \"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\"\n values.proxy__getImplementation:\n- \"eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b\"\n+ \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n implementationNames.eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b:\n- \"LidoLocator\"\n implementationNames.eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313:\n+ \"LidoLocator\"\n }\n```\n\n```diff\n contract EmergencyProtectedTimelock (eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316) [lido/EmergencyProtectedTimelock] {\n +++ description: Timelock used by Dual Governance. Governance submits and schedules batches, anyone may execute a ready batch, and time-bounded emergency committees can activate emergency mode and execute already submitted proposals without the ordinary schedule delay.\n receivedPermissions.28:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\",\"description\":\"add or remove token-rate observers and transfer or renounce ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\"},{\"address\":\"eth:0x23E0B465633FF5178808F4A75186E2F2F9537021\"}]}\n }\n```\n\n```diff\n+ Status: CREATED\n reference FeedRegistry (eth:0x47Fb2585D2C56Fe188D0E6ec628a38b74fCeeeDf)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingRevenueSource (eth:0x6220212a33a87Ed7Cc386B67eB2c393974F28C38) [lido/StakingRevenueSource]\n +++ description: Tracks Lido DAO staking revenue for the buyback program: as a TokenRateNotifier observer it accrues the treasury fee share of each stETH rebase and converts it into a monotonic cumulative USD figure at the OracleRouter spot price.\n```\n\n```diff\n+ Status: CREATED\n contract OracleRouter (eth:0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31) [lido/OracleRouter]\n +++ description: Price router that reads token prices from the Chainlink Feed Registry, either directly in USD or via an ETH/USD bridge feed for ETH-quoted tokens, and reports them normalized to 18 decimals.\n```\n\n```diff\n+ Status: CREATED\n reference Chainlink_ETH_USD_Aggregator (eth:0x7d4E742018fb52E48b08BE73d041C18B21de6Fb5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TreasuryManagementCommittee (eth:0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647) [GnosisSafe]\n +++ description: Multisig of the Lido DAO Treasury Management Committee.\n```\n\n```diff\n+ Status: CREATED\n contract TokenRateNotifier (eth:0xbe05d12Fd10919F1881125006523452F6aFF791b) [lido/TokenRateNotifier]\n +++ description: Notifies registered observer contracts after each stETH rebase (oracle report). Observers either just push the current token rate or additionally receive the full rebase report payload.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract OpStackTokenRatePusher (eth:0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE) [lido/OpStackTokenRatePusher]\n +++ description: Pushes the current wstETH token rate to the token rate oracle on Optimism via the canonical OP Stack messenger whenever a rebase is reported.\n```"
}
]
},
{
"id": "f3e775e7",
"date": "Wed, 29 Jul 2026 11:42:27 GMT",
"timestamp": 1785325193,
"description": "The Community Staking Module's stake share limit increased from 8.5% to 9%, and its priority-exit threshold increased from 10.2% to 10.8%. The module can receive a larger share of Lido stake before reaching its allocation cap, while its exits become prioritized at the higher threshold.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakingRouter (eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999) [lido/StakingRouter] {\n +++ description: Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n values.getStakingModuleStateConfig.2.4:\n- 1020\n+ 1080\n values.getStakingModuleStateConfig.2.3:\n- 850\n+ 900\n }\n```"
}
]
},
{
"id": "e937e3fd",
"date": "Mon, 27 Jul 2026 15:11:46 GMT",
"timestamp": 1785159796,
"description": "Lido v3.0.2 activates Staking Router v3 together with Community Staking\nModule v3 and Curated Module v2. The upgrade adds EIP-7251 support for\nvalidator consolidations and balance top-ups, changes protocol accounting and\nexit limits to use validator balance weights, and extends oracle sanity checks\nfor the new balance flows.\n\nThe release also deploys the stVault system built around VaultHub,\nOperatorGrid, VaultFactory, Dashboard, CoreAccounting, and LazyOracle. It adds\nsupporting contracts for predeposit proofs, EIP-7002 triggerable withdrawals,\nexit penalties, consolidation migration, and the associated governance and\npermission wiring.",
"isHighSeverity": false,
"changeCount": 108,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract DepositContract (eth:0x00000000219ab540356cBB839Cbe05303d7705Fa) [global/DepositContract]\n +++ description: Ethereum Beacon Chain deposit contract.\n```\n\n```diff\n+ Status: CREATED\n contract ExitPenalties (eth:0x004aFb7DAA7dEA20EbAaB75c9F4892C879FaCCe0) [lido/ExitPenalties]\n +++ description: Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n```\n\n```diff\n+ Status: CREATED\n contract VaultFactory (eth:0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175A) [lido/VaultFactory]\n +++ description: Permissionless factory for StakingVaults and their Dashboard management contracts. It deploys beacon proxies, initializes their code-defined authorities, and optionally connects the vault to VaultHub.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x06A56487494aa080deC7Bf69128EdA9225784553) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract ExitPenalties (eth:0x06cd61045f958A209a0f8D746e103eCc625f4193) [lido/ExitPenalties]\n +++ description: Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorsExitBusOracle (eth:0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) [lido/ValidatorsExitBusOracle]\n +++ description: Receives committee-consensus lists of validators that staking modules must exit and emits the exit requests. SRv3 accounts for the validators' effective-balance weights and key indices when applying per-report and replenishing exit limits.\n```\n\n```diff\n+ Status: CREATED\n contract OracleReportSanityChecker (eth:0x147f8d3cf3004FAf9Bf94E88B54b6C06De507be9) [lido/OracleReportSanityChecker]\n +++ description: Validates AccountingOracle report values against configurable safety limits. The version 3 checker covers validator balance flows, consolidations, external pending balances, triggerable exits, and EIP-7251 balance weights.\n```\n\n```diff\n+ Status: CREATED\n contract Escrow (eth:0x165813A31446a98c84E20Dda8C101BB3C8228e1c) [lido/Escrow]\n +++ description: Dual Governance escrow in which holders lock stETH, wstETH or unstETH to build veto support. It can be irreversibly converted into a Rage Quit escrow that withdraws the locked position as ETH.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationGateway (eth:0x17be979344f2c2cC806229a532D92f8742C10462) [lido/ConsolidationGateway]\n +++ description: Validates validator ownership proofs and submits EIP-7251 consolidation requests through the protocol consolidation-request predeploy. It rate-limits the amount consolidated and preserves its ETH balance across requests.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x18A1065c81b0Cc356F1b1C843ddd5E14e4AefffF) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract VaultHub (eth:0x1d201BE093d847f6446530Efb0E8Fb426d176709) [lido/VaultHub]\n +++ description: The central registry and lifecycle manager for stVaults connected to Lido. It enforces collateral and risk parameters, tracks vault reports and liabilities, mints and burns stETH shares, settles fees, rebalances unhealthy vaults, and manages bad debt.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x207798e6fD1aa7Ee8a63782A64c959cD6727b78C) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Executor (eth:0x23E0B465633FF5178808F4A75186E2F2F9537021) [lido/Executor]\n +++ description: External-call executor used by the Dual Governance timelock. Its owner can make it call any target with arbitrary calldata and ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Core Accounting (eth:0x23ED611be0e1a820978875C0122F92260804cdDf) [lido/CoreAccounting]\n +++ description: Calculates and applies a complete Lido oracle report: it reconciles validator balances, smooths the rebase, collects vault balances, finalizes withdrawals, burns shares, distributes module rewards, and updates stETH accounting.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x2570e0b22AD904501dfB0d49575991ACB801dD91) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenRateNotifier (eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9) [lido/TokenRateNotifier]\n +++ description: Pushes the current stETH token rate to registered observer contracts after rebases.\n```\n\n```diff\n+ Status: CREATED\n contract VaultsAdapter (eth:0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27) [lido/VaultsAdapter]\n +++ description: EasyTrack adapter for stVault administration. The EVMScriptExecutor may change vault fees and jail status, liability targets, socialize bad debt, and force validator exits; a separate trusted caller controls the maximum exit fee and ETH recovery.\n```\n\n```diff\n+ Status: CREATED\n contract Dashboard (eth:0x294825c2764c7D412dc32d87E2242c4f1D989AF3) [lido/Dashboard]\n +++ description: The standard role-based management interface for a StakingVault. It owns the underlying vault, routes funding, withdrawals, stETH minting and burning through VaultHub, controls validator operations, and accounts for the node operator fee.\n```\n\n```diff\n+ Status: CREATED\n contract Voting (eth:0x2e59A20f205bB85a89C53f1936454680651E618e) [lido/Voting]\n +++ description: Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n```\n\n```diff\n+ Status: CREATED\n contract Accounting (eth:0x2F91e3A8C5d6593bf4F8403fCfeCcd62dF59f6F6) [lido/Accounting]\n +++ description: Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n```\n\n```diff\n+ Status: CREATED\n contract FeeDistributor (eth:0x367d23c756599c20DCc8D6943F4976E8F88D60d7) [lido/FeeDistributor]\n +++ description: Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n```\n\n```diff\n+ Status: CREATED\n contract Execution Layer Rewards Vault (eth:0x388C818CA8B9251b393131C08a736A67ccB19297) [lido/LidoExecutionLayerRewardsVault]\n +++ description: Holds execution-layer validator rewards until stETH accounting collects them during an oracle report.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x3BbBb175f7F07954DE00052b20E1c5572223F24D) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0x3D3ba54D54bbFF40F2Dfa2A8e27bD4dE3dab2951) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract Lido Dao Agent (eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) [lido/LidoDaoAgent]\n +++ description: The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x3eda1e756Ba9aC0217Ac8fc5db4C5E9a8486d9c4) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract TopUpGateway (eth:0x3FC2C71579D80790Aaa3fc7Be8B66ac39dC57374) [lido/TopUpGateway]\n +++ description: Validates consensus-layer proofs and submits EIP-7251 validator top-ups for staking modules. It limits top-up batch size, proof age, and call frequency.\n```\n\n```diff\n+ Status: CREATED\n contract FeeOracle (eth:0x4D4074628678Bd302921c20573EEa1ed38DdF7FB) [lido/FeeOracle]\n +++ description: Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n```\n\n```diff\n+ Status: CREATED\n contract Accounting (eth:0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da) [lido/Accounting]\n +++ description: Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n```\n\n```diff\n+ Status: CREATED\n contract NodeOperatorsRegistry (eth:0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5) [lido/NodeOperatorsRegistry]\n +++ description: Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n```\n\n```diff\n+ Status: CREATED\n contract TimelockedGovernance (eth:0x553337946F2FAb8911774b20025fa776B76a7CcE) [lido/TimelockedGovernance]\n +++ description: Emergency governance adapter. Its configured governance may submit and cancel proposals in the EmergencyProtectedTimelock; scheduling is permissionless once the submission delay has elapsed.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO Token (eth:0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32) [lido/MiniMeToken]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CallsScript (eth:0x5cEb19e1890f677c3676d5ecDF7c501eBA01A054) [lido/CallsScript]\n +++ description: Petrified Aragon CallsScript executor library used by the Lido DAO and EasyTrack to decode and perform a batch of external calls.\n```\n\n```diff\n+ Status: CREATED\n contract LazyOracle (eth:0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c) [lido/LazyOracle]\n +++ description: Verifies cryptographic oracle reports for individual stVaults and forwards accepted total-value, fee, and liability updates to VaultHub. Reports outside configured rate, reward, or quarantine bounds are rejected or quarantined.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (eth:0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789) [global/UpgradeableBeacon]\n +++ description: A beacon with an upgradeable implementation currently set as eth:0x06A56487494aa080deC7Bf69128EdA9225784553. Beacon proxy contracts pointing to this beacon will all use its implementation.\n```\n\n```diff\n+ Status: CREATED\n contract CircuitBreaker (eth:0x6019CB557978296BA3C08a7B73225C0975DFB2F7) [lido/CircuitBreaker]\n +++ description: Emergency pause coordinator. The admin assigns one heartbeat-gated pauser to each registered protocol contract; a live pauser can trigger one time-bounded pause before its assignment is consumed.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x6093EFA6B5E2FF3be54d1c895c9deA932805c49F) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Ejector (eth:0x610B517D380f287c239C93F8eF6FfBd567AA4bA5) [lido/Ejector]\n +++ description: Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x62e0D92cf7B8752b5292B9BCbbacE4cFa1633428) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x71093efF8D8599b5fA340D665Ad60fA7C80688e4) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract Lido Multisig 1 (eth:0x73b047fe6337183A454c5217241D780a932777bD) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x773933F9db8964A17d62fb808f2EC7A2de4247CC) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract ResealManager (eth:0x7914b5a1539b97Bd0bbd155757F25FD79A522d24) [lido/ResealManager]\n +++ description: Adapter that lets the governance configured in the EmergencyProtectedTimelock indefinitely extend an existing pause or resume a supported sealable contract.\n```\n\n```diff\n+ Status: CREATED\n contract Wrapped liquid staked Ether 2.0 Token (eth:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0) [lido/wstETH]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract AccountingOracle (eth:0x852deD011285fe67063a08005c71a85690503Cee) [lido/AccountingOracle]\n +++ description: Receives committee-consensus reports of Lido's Beacon Chain balances, validator state, withdrawals, and staking-module accounting data, then drives the stETH accounting rebase and related protocol updates.\n```\n\n```diff\n+ Status: CREATED\n contract EVMScriptRegistry (eth:0x853cc0D5917f49B57B8e9F89e491F5E18919093A) [lido/EVMScriptRegistry]\n +++ description: Aragon registry of EVM script executors used by Lido DAO applications.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x86A8d4E0db5938D21d98047544668FCCB1A9ADc8) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x8772E3a2D86B9347A2688f9bc1808A6d8917760C) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawalQueueERC721 (eth:0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1) [lido/WithdrawalQueueERC721]\n +++ description: Queues stETH and wstETH withdrawal requests as transferable NFTs. Oracle reports can enter bunker mode and finalize batches by supplying ETH and a maximum share rate, after which NFT owners claim ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8B7854488Fde088d686Ea672B6ba1A5242515f45) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x8c002c6eE10cf8adb78D1F9EB2e134FdaF8A7C1a) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8ed4dfd3A610CCF1FB45e797bf5D8e0f93084F22) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FeeOracle (eth:0x8EeFCdbD984c30E472BcbF545783D051CB5114e5) [lido/FeeOracle]\n +++ description: Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n```\n\n```diff\n+ Status: CREATED\n contract EIP712StETH (eth:0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7) [lido/EIP712StETH]\n +++ description: Stateless helper that builds the stETH EIP-712 domain separator and typed-data hashes.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x902D64c93F6595339aA46105627a085591051aFb) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract MiniMeTokenFactory (eth:0x909d05F384D0663eD4BE59863815aB43b4f347Ec) [lido/MiniMeTokenFactory]\n +++ description: Immutable factory used by LDO's MiniMe token implementation to create snapshot-enabled token clones.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO ACL (eth:0x9895F0F17cc1d1891b6f18ee0b483B6f221b37Bb) [lido/ACL]\n +++ description: The shared Aragon ACL that stores Lido DAO permission grants, optional permission parameters, and the manager allowed to grant or revoke each app role.\n```\n\n```diff\n+ Status: CREATED\n contract ParametersRegistry (eth:0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428) [lido/ParametersRegistry]\n +++ description: Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator]\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n```\n\n```diff\n+ Status: CREATED\n contract VettedGate (eth:0xa12760721A72A7199aB38059DA6690b9Cd4ed7B8) [lido/VettedGate]\n +++ description: Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n```\n\n```diff\n+ Status: CREATED\n contract ImmutableDualGovernanceConfigProvider (eth:0xa1692Af6FDfdD1030E4E9c4Bc429986FA64CB5EF) [lido/ImmutableDualGovernanceConfigProvider]\n +++ description: Immutable Dual Governance timing and veto-threshold configuration. Replacing the provider in DualGovernance is the only way to change these parameters.\n```\n\n```diff\n+ Status: CREATED\n contract MetaRegistry (eth:0xA64b339eebD3dC3De848298B6a140955932901d8) [lido/MetaRegistry]\n +++ description: Stores metadata that groups permissionless staking-module node operators, describes their operators, and assigns bond-curve weights.\n```\n\n```diff\n+ Status: CREATED\n contract wstETH Referral Staker (eth:0xa88f0329C2c4ce51ba3fc619BBf44efE7120Dd0d) [lido/WstETHReferralStaker]\n +++ description: Permissionless convenience contract that stakes supplied ETH in Lido with a caller-selected referral, wraps the resulting stETH, and returns wstETH to the caller.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorStrikes (eth:0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f) [lido/ValidatorStrikes]\n +++ description: Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorConsolidationRequests (eth:0xaC4Aae7123248684C405A4b0038C1560EC7fE018) [lido/ValidatorConsolidationRequests]\n +++ description: Read-only stVault helper that validates a Dashboard's ownership of a connected StakingVault and builds the EIP-7251 consolidation-request calldata and fee-exemption call for its source and target validators.\n```\n\n```diff\n+ Status: CREATED\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH]\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n```\n\n```diff\n+ Status: CREATED\n contract NodeOperatorsRegistry (eth:0xaE7B191A31f627b4eB1d4DaC64eaB9976995b433) [lido/NodeOperatorsRegistry]\n +++ description: Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n```\n\n```diff\n+ Status: CREATED\n contract VettedGate (eth:0xB314D4A76C457c93150d308787939063F4Cc67E0) [lido/VettedGate]\n +++ description: Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n```\n\n```diff\n+ Status: CREATED\n contract PermissionlessGate (eth:0xb8cd8F059Ad7a5dB8CAfDe34aAb007317F7156C8) [lido/PermissionlessGate]\n +++ description: Permissionless Community Staking Module onboarding contract. Any address can create a node operator using its fixed bond curve by depositing ETH, stETH or wstETH.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO Kernel (eth:0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc) [lido/Kernel]\n +++ description: The Lido DAO's Aragon Kernel. It registers DAO applications and their implementation bases and points them to the shared ACL.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawalVault (eth:0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f) [lido/WithdrawalVault]\n +++ description: Holds consensus-layer withdrawals and pays protocol predeploy fees. It lets stETH collect withdrawn ETH and lets the designated gateways submit EIP-7002 withdrawal and EIP-7251 consolidation requests.\n```\n\n```diff\n+ Status: CREATED\n contract Finance (eth:0xB9E5CBB9CA5b0d659238807E84D0176930753d86) [lido/Finance]\n +++ description: Lido DAO's Aragon Finance application. ACL roles create and execute one-time or recurring treasury payments and change their budgets, recipients, amounts and accounting period.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorExitDelayVerifier (eth:0xbDb567672c867DB533119C2dcD4FB9d8b44EC82f) [lido/ValidatorExitDelayVerifier]\n +++ description: Permissionless EIP-4788 proof verifier that detects validators which remained active after a ValidatorExitBus exit request and reports their exit delay to the StakingRouter.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0xBF048f2111497B6Df5E062811f5fC422804D4baE) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract OracleDaemonConfig (eth:0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09) [lido/OracleDaemonConfig]\n +++ description: Stores key-value configuration consumed by Lido's off-chain oracle daemon.\n```\n\n```diff\n+ Status: CREATED\n contract LidoLocator (eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb) [lido/LidoLocator]\n +++ description: Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n```\n\n```diff\n+ Status: CREATED\n contract DualGovernance (eth:0xC1db28B3301331277e307FDCfF8DE28242A4486E) [lido/DualGovernance]\n +++ description: Lido Dual Governance state machine. Registered proposers submit calls through an associated executor, while stETH, wstETH and unstETH holders can lock assets in an escrow to delay or stop governance execution and enter Rage Quit.\n```\n\n```diff\n+ Status: CREATED\n contract Community Staking Module Verifier (eth:0xC392F457960f1B13Ebaf1aa6C065479dD507E1E3) [lido/CSVerifier]\n +++ description: Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OperatorGrid (eth:0xC69685E89Cefc327b43B7234AC646451B27c544d) [lido/OperatorGrid]\n +++ description: Registry of stVault node-operator groups and risk tiers. It defines per-tier share limits, reserve ratios, forced-rebalance thresholds and fees, coordinates two-party tier changes, and can jail vaults.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xC7792b3F2B399bB0EdF53fECDceCeB97FBEB18AF) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyProtectedTimelock (eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316) [lido/EmergencyProtectedTimelock]\n +++ description: Timelock used by Dual Governance. Governance submits and schedules batches, anyone may execute a ready batch, and time-bounded emergency committees can activate emergency mode and execute already submitted proposals without the ordinary schedule delay.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0xd402937b3Ff3c187f727C1146a9E846275E9F711) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationBus (eth:0xd907CE33B4Be423823d1CFFe80BD147E8b8554C8) [lido/ConsolidationBus]\n +++ description: Queues validator consolidation batches and, after an execution delay, forwards proven EIP-7251 requests to ConsolidationGateway.\n```\n\n```diff\n+ Status: CREATED\n contract FeeDistributor (eth:0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0) [lido/FeeDistributor]\n +++ description: Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedModule (eth:0xDa5F930cE326EB5205085D66c72A4E79d60cB8C1) [lido/CuratedModule]\n +++ description: The permissioned Curated Staking Module. It manages approved node operators and validator keys, accepts deposits and top-ups from the StakingRouter, and processes validator lifecycle reports and penalties.\n```\n\n```diff\n+ Status: CREATED\n contract CSModule (eth:0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F) [lido/CSModule]\n +++ description: Lido's permissionless Community Staking Module. It manages node operators and validator keys, accepts router deposits and top-ups, processes validator exits, and applies bond-backed penalties.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0xDBfa0B8A15a503f25224fcA5F84a3853230A715C) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract TriggerableWithdrawalsGateway (eth:0xDC00116a0D3E064427dA2600449cfD2566B3037B) [lido/TriggerableWithdrawalsGateway]\n +++ description: The permissioned entrypoint for full EIP-7002 validator withdrawals. It charges the current request fee, applies a replenishing global exit limit, forwards requests to WithdrawalVault, and notifies StakingRouter.\n```\n\n```diff\n+ Status: CREATED\n contract Ejector (eth:0xe181A377A2d2BDE9A83f1474BC3DB7A412de091E) [lido/Ejector]\n +++ description: Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0xE2cC063DEc5685718Bd57aAC6AEE9941b25b7c37) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract Burner (eth:0xE76c52750019b80B43E36DF30bf4060EB73F573a) [lido/Burner]\n +++ description: Escrows stETH shares requested for cover or non-cover burning and burns them during an oracle report. Excess stETH can be recovered into the Lido protocol during migration.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0xeF273Ca4A21Ba7B414Ae3C9f9b443038cb133F72) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract EasyTrack (eth:0xF0211b7660680B49De1A7E9f25C65660F0a13Fea) [lido/EasyTrack]\n +++ description: Optimistic Lido DAO motion system. Approved factories restrict the target and selector of each motion; LDO holders can object, and an unobstructed motion is executed through the EVMScriptExecutor after its delay.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorStrikes (eth:0xf4618370a1fBf46905B16C10817c8CFaD924D6db) [lido/ValidatorStrikes]\n +++ description: Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n```\n\n```diff\n+ Status: CREATED\n contract PredepositGuarantee (eth:0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3) [lido/PredepositGuarantee]\n +++ description: Protects StakingVault deposits by proving validator withdrawal credentials and requiring an initial predeposit before the remaining validator deposit is sent.\n```\n\n```diff\n+ Status: CREATED\n contract DepositSecurityModule (eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be) [lido/DepositSecurityModule]\n +++ description: Guardian-based circuit breaker for legacy staking-module deposits. Guardians can collectively pause deposits if a malicious or stale deposit is observed, while the owner configures guardians and resumes deposits.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerCoreCommittee (eth:0xf65614d73952Be91ce0aE7Dd9cFf25Ba15bEE2f5) [lido/TiebreakerCoreCommittee]\n +++ description: Top-level Dual Governance tiebreaker committee. Its members reach quorum to schedule a delayed governance proposal or resume a paused sealable contract when Dual Governance is tied.\n```\n\n```diff\n+ Status: CREATED\n contract TokenManager (eth:0xf73a1260d222f447210581DDf212D915c09a3249) [lido/TokenManager]\n +++ description: Aragon TokenManager for LDO. Its ACL roles can issue supply, mint or burn LDO, assign vested balances, and revoke vesting.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xf8Bfa395744Cb25fa4368Ffe2344Dc35546092d9) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MEV Boost Relay Allowed List (eth:0xF95f069F9AD107938F6ba802a3da87892298610E) [lido/MEVBoostRelayAllowedList]\n +++ description: Registry of MEV-Boost relay endpoints supported by Lido node operators. The list distinguishes mandatory relays from optional relays and is consumed offchain.\n```\n\n```diff\n+ Status: CREATED\n contract Community Staking Module Verifier (eth:0xfce7aB839e55de77730716D05b3553e45ab3A5Ba) [lido/CSVerifier]\n +++ description: Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n```\n\n```diff\n+ Status: CREATED\n contract StakingRouter (eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999) [lido/StakingRouter]\n +++ description: Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n```\n\n```diff\n+ Status: CREATED\n contract EVMScriptExecutor (eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977) [lido/EVMScriptExecutor]\n +++ description: EasyTrack execution adapter. It executes the Aragon CallsScript produced by an approved EasyTrack motion, making downstream calls from this contract's address.\n```\n\n```diff\n+ Status: CREATED\n contract ParametersRegistry (eth:0xffC1C5d59CeAC6F6c27E701F04a70cb50474607C) [lido/ParametersRegistry]\n +++ description: Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xFFe21561251c49AdccFad065C94Fb4931dF49081) [GnosisSafe]\n +++ description: None\n```"
}
]
}
]
+3 -3
+3 -3
{
"clusteredEventCount": 59,
"contracts": [
{
"name": "Lighter",
"address": "eth:0x3B4D794a66304F130a4Db8F2551B0070dfCf5ca7",
"isVerified": true,
"ossifyingSince": 1789910219,
"codeChangeCount": 21,
"stateChangeCount": 0
},
{
"name": "UpgradeGatekeeper",
"address": "eth:0x94da8A995D0D82Ef0fE7E509C6D76c22603B6f67",
"isVerified": true,
"ossifyingSince": 1789910219,
"codeChangeCount": 0,
"stateChangeCount": 152
},
{
"name": "ZkLighterVerifier",
"address": "eth:0xac3Ce44B6ff4E402858C99D5699ff63131572BaA",
"isVerified": true,
"ossifyingSince": 1789910219,
"codeChangeCount": 64,
"stateChangeCount": 0
},
{
"name": "DesertVerifier",
"address": "eth:0x866418061d4C1168e1c8E8f6facE79675395E008",
"isVerified": true,
"ossifyingSince": 1784379467,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Governance",
"address": "eth:0xa464DA0B43f80EE3FfC4795cbbFC78472b5c81A1",
"isVerified": true,
"ossifyingSince": 1737090335,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1737139751,
1737264431,
1737623303,
1738733903,
1738978151,
1739428151,
1741186163,
1741647875,
1742943923,
1743039563,
1743280079,
1744136675,
1744553687,
1746131831,
1746235007,
1746578543,
1749280139,
1750721651,
1751596475,
1753750103,
1755635711,
1759348199,
1761490571,
1762084091,
1764849563,
1766621339,
1767568979,
1767804407,
1768172423,
1768911059,
1769658551,
1770944819,
1771294043,
1771624919,
1772980763,
1773229307,
1774601231,
1774792151,
1776007127,
1776661907,
1777044599,
1777828259,
1777990103,
1778504015,
1778794283,
1779033143,
1779895415,
1780154471,
1783873907,
1784382047,
1784807819,
1786291487,
1787364167,
1787489699,
1787661323,
1788204263,
1788899147,
1789296359,
1789909139
],
"criticalChangesPerYear": 34.59780679956955,
"criticalChangesPerYear": 34.5978042262218,
"criticalUpdates": [
{
"id": "5517b089",
"type": "code"
},
{
"id": "42d84a81",
"type": "code"
},
{
"id": "196b1d79",
"type": "code"
},
{
"id": "1e1f3162",
"type": "code"
},
{
"id": "9519397f",
"type": "code"
},
{
"id": "13a4c4d4",
"type": "code"
},
{
"id": "a3678747",
"type": "code"
},
{
"id": "ed521fe8",
"type": "code"
},
{
"id": "9e8022b3",
"type": "code"
},
{
"id": "42874125",
"type": "code"
},
{
"id": "65748edf",
"type": "code"
},
{
"id": "0aafdc95",
"type": "code"
},
{
"id": "83b66f4d",
"type": "code"
},
{
"id": "813318ec",
"type": "code"
},
{
"id": "5b795ab3",
"type": "code"
},
{
"id": "f0ac0634",
"type": "code"
},
{
"id": "121f63dd",
"type": "code"
},
{
"id": "4e9b56bc",
"type": "code"
},
{
"id": "dccd34b3",
"type": "code"
},
{
"id": "a5c2bdc7",
"type": "code"
},
{
"id": "22833684",
"type": "code"
},
{
"id": "3484e5da",
"type": "code"
},
{
"id": "3fce832b",
"type": "code"
},
{
"id": "6ca52fb0",
"type": "code"
},
{
"id": "2a4ae025",
"type": "code"
},
{
"id": "eb7b4d0f",
"type": "code"
},
{
"id": "319f3083",
"type": "code"
},
{
"id": "21a86659",
"type": "code"
},
{
"id": "f3073dbb",
"type": "code"
},
{
"id": "16a37b66",
"type": "code"
}
],
"lastCriticalChange": 1789910219,
"maturity": 0.3316964764429583,
"maturity": 0.3316967373486193,
"perimeterResets": [
1737090335,
1737264431,
1737623303,
1738733903,
1738978151,
1739428151,
1741186163,
1741647875,
1742943923,
1743039563,
1743280079,
1744136675,
1744553687,
1746131831,
1746235007,
1746578543,
1749280139,
1750721651,
1751596475,
1753750103,
1755635711,
1759348199,
1761490571,
1762084091,
1764849563,
1766621339,
1767568979,
1767804407,
1768172423,
1768911059,
1769658551,
1770944819,
1771294043,
1771624919,
1772980763,
1773229307,
1774601231,
1774792151,
1776007127,
1776661907,
1777044599,
1777828259,
1777990103,
1778504015,
1778794283,
1779033143,
1779895415,
1780154471,
1783873907,
1784379467,
1784807819,
1786291487,
1787364167,
1787489699,
1787661323,
1788204263,
1788899147,
1789296359,
1789909139
],
"projectClockStart": 1789910219,
"score": 33,
"windowSeconds": 53778669
"windowSeconds": 53778673
}
+1 -1
+1 -1
{
"clusteredEventCount": 32,
"contracts": [
{
"name": "LineaRollup",
"address": "eth:0xd19d4B5d358258f05D7B411E21A1460D11B0876F",
"isVerified": true,
"ossifyingSince": 1788510683,
"codeChangeCount": 4,
"stateChangeCount": 30
},
{
"name": "PlonkVerifierFull",
"address": "eth:0xAFF26999780901ee8B48f0a1271a177ff46fD53F",
"isVerified": true,
"ossifyingSince": 1788424391,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "YieldManager",
"address": "eth:0xeb63cABDd78537b9b72A2AFB573F7caa91bd8D94",
"isVerified": true,
"ossifyingSince": 1788253667,
"codeChangeCount": 0,
"stateChangeCount": 5
},
{
"name": "L2Timelock",
"address": "linea:0xc808BfCBeD34D90fa9579CAa664e67B9A03C56ca",
"isVerified": true,
"ossifyingSince": 1784199952,
"codeChangeCount": 0,
"stateChangeCount": 5
},
{
"name": "PlonkVerifierFull",
"address": "eth:0x09ac9f7E5Fb37e241e0B1e52aaF01eFE0a488a77",
"isVerified": true,
"ossifyingSince": 1783527107,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressFilter",
"address": "eth:0x526AE78F0103Ae73F05449ae30eb626C1003784E",
"isVerified": true,
"ossifyingSince": 1781777411,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Timelock",
"address": "eth:0xd6B95c960779c72B8C6752119849318E5d550574",
"isVerified": true,
"ossifyingSince": 1777542575,
"codeChangeCount": 0,
"stateChangeCount": 6
},
{
"name": "L2MessageService",
"address": "linea:0x508Ca82Df566dCD1B0DE8296e70a96332cD644ec",
"isVerified": true,
"ossifyingSince": 1777540107,
"codeChangeCount": 3,
"stateChangeCount": 8
},
{
"name": "TokenBridge",
"address": "linea:0x353012dc4a9A6cF55c941bADC267f82004A8ceB9",
"isVerified": true,
"ossifyingSince": 1774970935,
"codeChangeCount": 2,
"stateChangeCount": 1
},
{
"name": "TokenBridge",
"address": "eth:0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319",
"isVerified": true,
"ossifyingSince": 1774970807,
"codeChangeCount": 2,
"stateChangeCount": 1
},
{
"name": "LidoStVaultYieldProvider",
"address": "eth:0x486D8cADc10489B30b64c890aEc747F1220eEEC3",
"isVerified": true,
"ossifyingSince": 1770742547,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Delay",
"address": "eth:0x784CCeE002E259Fc38C4b36C2D8bd8a457e55436",
"isVerified": true,
"ossifyingSince": 1753454807,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CallForwardingProxy",
"address": "eth:0x3697bD0bC6C050135b8321F989a5316eACbF367D",
"isVerified": true,
"ossifyingSince": 1733219987,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UpgradeableBeacon",
"address": "linea:0xE798695d2e78f7caeb5BbF3385433959324c02c0",
"isVerified": true,
"ossifyingSince": 1691068246,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "BridgedToken",
"address": "linea:0xda8AEFCf0F9B0b81915a2C124f913e58212D49dF",
"isVerified": true,
"ossifyingSince": 1691068234,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UpgradeableBeacon",
"address": "eth:0x971f46a2852d11D59dbF0909e837cfd06f357DeB",
"isVerified": true,
"ossifyingSince": 1691067839,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "BridgedToken",
"address": "eth:0x36f274C1C197F277EA3C57859729398FCc8a3763",
"isVerified": true,
"ossifyingSince": 1691067827,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xF5058616517C068C7b8c7EbC69FF636Ade9066d6",
"isVerified": true,
"ossifyingSince": 1689158711,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "linea:0x1E1f6F22f97b4a7522D8B62e983953639239774E",
"isVerified": true,
"ossifyingSince": 1688650653,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1690185683,
1690562783,
1691513927,
1693599947,
1697440450,
1700506391,
1707813305,
1708467875,
1711448987,
1717588175,
1721289491,
1721724311,
1730216147,
1734357131,
1745842943,
1748942951,
1749460535,
1753454807,
1756078979,
1758247055,
1758532607,
1761067259,
1761578543,
1763371871,
1764802439,
1772375135,
1774211675,
1774393919,
1774970807,
1775081291,
1776450743,
1776778631,
1777540107,
1784199952,
1788253667,
1788510683
],
"criticalChangesPerYear": 10.666666666666666,
"criticalUpdates": [
{
"id": "d18fed4f",
"type": "state"
},
{
"id": "3376a51f",
"type": "state"
},
{
"id": "d37a911c",
"type": "state"
},
{
"id": "75facd10",
"type": "state"
},
{
"id": "0546d3e6",
"type": "state"
},
{
"id": "0f15f1fd",
"type": "state"
},
{
"id": "b0a6b80c",
"type": "state"
},
{
"id": "f6ae248d",
"type": "state"
},
{
"id": "6b70b41a",
"type": "state"
},
{
"id": "94da819f",
"type": "state"
},
{
"id": "b62380e0",
"type": "state"
},
{
"id": "2b932220",
"type": "state"
},
{
"id": "8f408813",
"type": "state"
},
{
"id": "5d2181e9",
"type": "state"
},
{
"id": "a0fe459a",
"type": "state"
},
{
"id": "cfe482dd",
"type": "state"
},
{
"id": "440c8e93",
"type": "state"
},
{
"id": "4f07d08b",
"type": "state"
},
{
"id": "85c95a19",
"type": "state"
},
{
"id": "1e00a7f6",
"type": "state"
},
{
"id": "a3b27464",
"type": "state"
},
{
"id": "45d15938",
"type": "state"
},
{
"id": "05cf3683",
"type": "state"
},
{
"id": "97d70ccc",
"type": "state"
},
{
"id": "e20553c4",
"type": "state"
}
],
"lastCriticalChange": 1788510683,
"maturity": 0.44538294668222544,
"maturity": 0.44538318535022414,
"perimeterResets": [
1688650653,
1689150959,
1690185683,
1690562783,
1691067827,
1691513927,
1693599947,
1697440450,
1700506391,
1707813305,
1708467875,
1711448987,
1717588175,
1721289491,
1721724311,
1730216147,
1733219987,
1734357131,
1745842943,
1748942951,
1749460535,
1753454807,
1756078979,
1758247055,
1758532607,
1761067259,
1761578543,
1763371871,
1764802439,
1770742511,
1772375135,
1774211675,
1774393919,
1774970807,
1775081291,
1776450743,
1776778631,
1777540107,
1781777411,
1783527107,
1784199952,
1788253667,
1788424391
],
"projectClockStart": 1788510683,
"score": 45,
"windowSeconds": 94608000
}
+3 -3
+1 -1
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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:0x258862dec9a77db57b398c441390783293E2a7A1",
"type": "EOA",
"isVerified": true,
"name": "0x2588…a7A1",
"url": "https://etherscan.io/address/0x258862dec9a77db57b398c441390783293E2a7A1",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x8F2D2Da3044B0A1ea54Ee26F7fe376cD9ec4393F",
"type": "EOA",
"isVerified": true,
"name": "0x8F2D…393F",
"url": "https://etherscan.io/address/0x8F2D2Da3044B0A1ea54Ee26F7fe376cD9ec4393F",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x92726F7dE49300DBdb60930066bc1d0803c0740B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1719499031,
"transactionHash": "0x03c9a006f95a45fda2a18e475242078b8563715bc621e21e62a78962e9fb4e63",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1741176767,
"transactionHash": "0xc376c3725fb986eead241c5b7663e6e081f66b92984bc4b3f0c08d23a0101a35",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1759404935,
"transactionHash": "0x4a9633f61bf7eacf4cfffefccc1e8a561fdaacfbed6470573463e28304b3906d",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the prism 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**: AgglayerManager, EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"description": "System contract defining the prism 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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x92726F7dE49300DBdb60930066bc1d0803c0740B#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": "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": "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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#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": [
"LUMIA"
]
},
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"clusteredEventCount": 29,
"contracts": [
{
"name": "OPSuccinctL2OutputOracle",
"address": "eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481",
"isVerified": true,
"ossifyingSince": 1789615739,
"codeChangeCount": 1,
"stateChangeCount": 11
},
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1776370439,
"codeChangeCount": 0,
"stateChangeCount": 23
},
{
"name": "SystemConfig",
"address": "eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf",
"isVerified": true,
"ossifyingSince": 1776322715,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"isVerified": true,
"ossifyingSince": 1776172415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"isVerified": true,
"ossifyingSince": 1771084331,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1748550023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockController",
"address": "eth:0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F",
"isVerified": true,
"ossifyingSince": 1739349323,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x676A795fe6E43C17c668de16730c3F690FEB7120",
"isVerified": true,
"ossifyingSince": 1710490775,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1StandardBridge",
"address": "eth:0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"isVerified": true,
"ossifyingSince": 1710490775,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "OptimismPortal",
"address": "eth:0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"isVerified": true,
"ossifyingSince": 1710490775,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xca35F8338054739D138884685e08b39EE2217794",
"isVerified": true,
"ossifyingSince": 1710467267,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "AddressManager",
"address": "eth:0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42",
"isVerified": true,
"ossifyingSince": 1687951883,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1MantleToken",
"address": "eth:0x3c3a81e81dc49A522A592e7622A7E711c06bf354",
"isVerified": true,
"ossifyingSince": 1687241795,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MantleTokenProxyAdmin",
"address": "eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd",
"isVerified": true,
"ossifyingSince": 1687241639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MantleEngineeringMultisig",
"address": "eth:0x2F44BD2a54aC3fB20cd7783cF94334069641daC9",
"isVerified": true,
"ossifyingSince": 1686902471,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MantleSecurityMultisig",
"address": "eth:0x4e59e778a0fb77fBb305637435C62FaeD9aED40f",
"isVerified": true,
"ossifyingSince": 1683509999,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1710467267,
1720099295,
1721270315,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729728863,
1730498375,
1731025967,
1735951931,
1736970023,
1748558771,
1750785371,
1758005207,
1758610559,
1767768479,
1769160827,
1771445567,
1776322715,
1776868559,
1777434335,
1781079551,
1785314135,
1788925163,
1789615739
],
"criticalChangesPerYear": 9.666666666666666,
"criticalUpdates": [
{
"id": "5dc1a14e",
"type": "code"
},
{
"id": "df347cbc",
"type": "state"
},
{
"id": "d7e3f45d",
"type": "state"
},
{
"id": "58e087bc",
"type": "state"
},
{
"id": "930cf6f5",
"type": "state"
},
{
"id": "eeb61c0d",
"type": "state"
},
{
"id": "3460a30b",
"type": "state"
},
{
"id": "13fde891",
"type": "state"
},
{
"id": "c3e9d0e9",
"type": "state"
},
{
"id": "d64f0885",
"type": "state"
},
{
"id": "32d5466d",
"type": "state"
},
{
"id": "7337d399",
"type": "state"
},
{
"id": "2437125d",
"type": "state"
},
{
"id": "706bc529",
"type": "state"
}
],
"lastCriticalChange": 1789615739,
"maturity": 0.36289393223712596,
"maturity": 0.3628941429429076,
"perimeterResets": [
1683509999,
1686902471,
1687241639,
1687951883,
1710439895,
1720099223,
1721270315,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729728863,
1730498375,
1731025967,
1735951931,
1736970023,
1739349323,
1748550023,
1750785371,
1758005207,
1758610559,
1767768479,
1769160827,
1771084331,
1771445567,
1776172415,
1776322715,
1776868559,
1777434335,
1781079551,
1785314135,
1788925163,
1789615739
],
"projectClockStart": 1789615739,
"score": 36,
"windowSeconds": 94608000
}
+18 -4
+1 -1
{
"baseTimestamp": 1790080873,
"baseTimestamp": 1790851283,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "3887ddb4",
"date": "Thu, 01 Oct 2026 11:10:41 GMT",
"timestamp": 1790851283,
"description": "A Rollup challenger EOA (eth:0xAa54d89A2B420F286Db0C19732D07abe08E6b442) set an EIP-7702 delegation (no previous delegation) to MetaMask's `EIP7702StatelessDeleGator` v1.3.0 (eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B).",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0xAa54d89A2B420F286Db0C19732D07abe08E6b442) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xAa54d89A2B420F286Db0C19732D07abe08E6b442\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x92af0176a7cce342bb4d9b4a5da3322f3bd575abd9be6d24ec51f986b8f734c8\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```"
}
]
},
{
"id": "da922e8f",
"date": "Tue, 22 Sep 2026 13:48:16 GMT",
"timestamp": 1790080873,
"description": "Rollup upgrade https://disco.l2beat.com/diff/eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB/eth:0x213CE22b487B71Ac68a1B5b12d2b93D1AF30Ea1d: batch commitment, state proposal and slashing are now authorized through a new staked Submitter contract (owned by Morph Multisig) instead of L1Staking. The never-verified BLS signature input was removed.\n\nA new SP1 verifier was registered with a new program vkey (Morph v0.6.3 guest program, reproduced from source).",
"isHighSeverity": true,
"changeCount": 20,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0) [global/ProxyAdmin] {\n +++ description: None\n directlyReceivedPermissions.11:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"role\":\"admin\"}\n }\n```\n\n```diff\n EOA (eth:0x34E387B37d3ADEAa6D5B92cE30dE3af3DCa39796) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"description\":\"Actors allowed to commit transaction batches and propose and prove state roots while staked at or above the minimum.\",\"role\":\".submitters\"}\n }\n```\n\n```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) [morph/MultipleVersionRollupVerifier] {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.latestVerifier.1.verifier:\n- \"eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692\"\n+ \"eth:0x651cA600813fC0126225b727EDbA617949b1d1c9\"\n values.latestVerifier.1.startBatchIndex:\n- 54332\n+ 60478\n }\n```\n\n```diff\n EOA (eth:0x6aB0E960911b50f6d14f249782ac12EC3E7584A0) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"description\":\"Actors allowed to commit transaction batches and propose and prove state roots while staked at or above the minimum.\",\"role\":\".submitters\"}\n }\n```\n\n```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) [morph/Rollup] {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the proof system. Sequencing and proposing are permissioned to the active submitters registered and staked in the Submitter contract. If the EnforcedTxGateway is not paused, any submitter must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the submitters are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n sourceHashes.1:\n- \"0x9505004977004cf77ebe02c63bae0f3420673028462e69fe68350d91356eb33b\"\n+ \"0xf24c39e5b0d3851769ddbafcad7ce6770f9aac6e89c6b220c902ab07d97ab225\"\n values.$implementation:\n- \"eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB\"\n+ \"eth:0x213CE22b487B71Ac68a1B5b12d2b93D1AF30Ea1d\"\n values.$pastUpgrades.11:\n+ [\"2026-09-22T07:54:35.000Z\",\"0xdeb5268cbec1b47c77ad46cb8dd29491833e45ae374d2905f94f4e0499e8110e\",[\"eth:0x213CE22b487B71Ac68a1B5b12d2b93D1AF30Ea1d\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.l1StakingContract:\n- \"eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7\"\n+++ description: Batch index at which the Rollup switched batch-submission authorization to the Submitter contract; batches above it are attributed to a single submitter account.\n values.legacyCutoverBatchIndex:\n+ 60477\n+++ severity: HIGH\n values.submitterContract:\n+ \"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\"\n implementationNames.eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB:\n- \"Rollup\"\n implementationNames.eth:0x213CE22b487B71Ac68a1B5b12d2b93D1AF30Ea1d:\n+ \"Rollup\"\n }\n```\n\n```diff\n EOA (eth:0xBBA36CdF020788f0D08D5688c0Bee3fb30ce1C80) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"description\":\"Actors allowed to commit transaction batches and propose and prove state roots while staked at or above the minimum.\",\"role\":\".submitters\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692) [morph/ZkEvmVerifierV1]\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```\n\n```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) [GnosisSafe] {\n +++ description: None\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"description\":\"add and remove submitters (batch committers/proposers), set the minimum stake, the challenge deposit and the slashing reward share, and withdraw the non-rewarded remainder of slashed stakes.\",\"role\":\".owner\"}\n receivedPermissions.20:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"},{\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}]}\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0x651cA600813fC0126225b727EDbA617949b1d1c9) [morph/ZkEvmVerifierV1]\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```\n\n```diff\n+ Status: CREATED\n contract Submitter (eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6) [morph/Submitter]\n +++ description: Registry and ETH staking contract for the accounts allowed to commit transaction batches and propose state roots to the Rollup. The owner whitelists submitters, who are active only while registered, not withdrawing and staked at or above the minimum. When a submitter's batch is successfully challenged, the Rollup slashes the submitter's whole stake through this contract: the configured reward share is forwarded to the Rollup for the challenger and the remainder accrues to the owner. Stake withdrawals are claimable only once the batch committed at withdrawal time is finalized.\n```"
}
]
},
{
"id": "9bba35e5",
"date": "Fri, 18 Sep 2026 10:24:51 GMT",
"timestamp": 1786719775,
"description": "critical contracts and severities for the ossification perimeter",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract L1USDCGateway (eth:0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289) [morph/L1USDCGateway]\n +++ description: Contract used to bridge USDC tokens from L1 to L2.\n```\n\n```diff\n+ Status: CREATED\n contract L1CustomERC20Gateway (eth:0xA534BAdd09b4C62B7B1C32C41dF310AA17b52ef1) [morph/L1CustomERC20Gateway]\n +++ description: Contract used to bridge ERC20 tokens with custom L2 representations from L1 to L2. It allows to change the token mappings.\n```\n\n```diff\n+ Status: CREATED\n contract L1USDCGatewayLegacy (eth:0xc9045350712A1DCC3A74Eca18Bc985424Bbe7535) [morph/L1USDCGateway]\n +++ description: Contract used to bridge USDC tokens from L1 to L2.\n```"
}
]
},
{
"id": "17fdba45",
"date": "Fri, 14 Aug 2026 15:04:21 GMT",
"timestamp": 1786719775,
"description": "Ownership of MultipleVersionRollupVerifier, L1GatewayRouter and Rollup moved from Morph Multisig 2 (3 of 5) to Morph Multisig 1 (4 of 6), taking the verifier-registration, escrow-mapping and pause/revert permissions with it. Morph Multisig 2: member rotated.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) [morph/MultipleVersionRollupVerifier] {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.owner:\n- \"eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract L1GatewayRouter (eth:0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a) [morph/L1GatewayRouter] {\n +++ description: Main entrypoint for depositing ETH and ERC20 tokens, which are then forwarded to the correct escrow.\n values.owner:\n- \"eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) [morph/Rollup] {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n values.owner:\n- \"eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract Morph Multisig 2 (eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"eth:0xcE7257224441385345CE6eEdd9D8667AD9Bab9f0\"\n+ \"eth:0xA52Bb0BEBfadEDA9DfFFa3Ba5eBFE86d9f6dB321\"\n receivedPermissions.3:\n- {\"permission\":\"interact\",\"from\":\"eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1\",\"description\":\"register new verifiers to be used starting from a given L2 batch index.\",\"role\":\".owner\"}\n receivedPermissions.4:\n- {\"permission\":\"interact\",\"from\":\"eth:0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a\",\"description\":\"manage token to escrow mapping and (un-)register escrows.\",\"role\":\".owner\"}\n receivedPermissions.6:\n- {\"permission\":\"interact\",\"from\":\"eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60\",\"description\":\"can pause and unpause, revert unfinalized batches, update proof window and finalization period, manage challengers, modify the verifier address.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) [GnosisSafe] {\n +++ description: None\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1\",\"description\":\"register new verifiers to be used starting from a given L2 batch index.\",\"role\":\".owner\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a\",\"description\":\"manage token to escrow mapping and (un-)register escrows.\",\"role\":\".owner\"}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60\",\"description\":\"can pause and unpause, revert unfinalized batches, update proof window and finalization period, manage challengers, modify the verifier address.\",\"role\":\".owner\"}\n }\n```"
}
]
},
{
"id": "98f2ec73",
"date": "Mon, 10 Aug 2026 09:06:34 GMT",
"timestamp": 1786352698,
"description": "Owner switched to second Morph multisig. L1CDM owner can set rollup reference and change fee / critical configs.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1CrossDomainMessenger (eth:0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304) [morph/L1CrossDomainMessenger] {\n +++ description: Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n values.owner:\n- \"eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```"
}
]
},
{
"id": "171a57ae",
"date": "Mon, 08 Jun 2026 10:47:43 GMT",
"timestamp": 1780914460,
"description": "Added batch data version 2: https://disco.l2beat.com/diff/eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2/eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB, which handles submitting several blobs.\n\nAlso, upgraded the verifier program, which is reproducible from the sources, and completely switched to SP1 Hypercube.",
"isHighSeverity": true,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423) [morph/ZkEvmVerifierV1]\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```\n\n```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) [morph/MultipleVersionRollupVerifier] {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.latestVerifier.1.verifier:\n- \"eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423\"\n+ \"eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692\"\n values.latestVerifier.1.startBatchIndex:\n- 45847\n+ 54332\n }\n```\n\n```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) [morph/Rollup] {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n sourceHashes.1:\n- \"0x744e3febdbddacbc25d9934fa259bfb08b24e38cb1325cdce9e9740b9b6f192b\"\n+ \"0x9505004977004cf77ebe02c63bae0f3420673028462e69fe68350d91356eb33b\"\n values.$implementation:\n- \"eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2\"\n+ \"eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB\"\n values.$pastUpgrades.10:\n+ [\"2026-06-03T11:26:11.000Z\",\"0xe9128be913e8685a928c8e8468a030a95ad44ef4ad78534c688cd721af496a54\",[\"eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB\"]]\n values.$upgradeCount:\n- 10\n+ 11\n implementationNames.eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2:\n- \"Rollup\"\n implementationNames.eth:0xaC3C379D772f3520B34690d32BA14510ab36C3fB:\n+ \"Rollup\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "2ff16c37",
"date": "Fri, 22 May 2026 09:46:38 GMT",
"timestamp": 1779443124,
"description": "Updated morph verifier to use SP1 v6.2.0. New program that is verified.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63) [morph/ZkEvmVerifierV1]\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```\n\n```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) [morph/MultipleVersionRollupVerifier] {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.latestVerifier.0.verifier:\n- \"eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63\"\n+ \"eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624\"\n values.latestVerifier.0.startBatchIndex:\n- 51566\n+ 53283\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "9e6da537",
"date": "Fri, 10 Apr 2026 10:18:10 GMT",
"timestamp": 1775810477,
"description": "Upgraded one (out of two) SP1 verifiers to a standard SP1 Turbo version.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.latestVerifier.0.verifier:\n- \"eth:0x5ff102a4A4Ce2040288a797CE4CCCa85eE1E2d70\"\n+ \"eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63\"\n values.latestVerifier.0.startBatchIndex:\n- 47944\n+ 51566\n }\n```\n\n```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0x5ff102a4A4Ce2040288a797CE4CCCa85eE1E2d70)\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63)\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```"
}
]
},
{
"id": "585e8d2c",
"date": "Wed, 01 Apr 2026 15:00:34 GMT",
"timestamp": 1775051589,
"description": "New upgrade, introduces mandatory reuse of blob data after reverting a batch.\n\nattack:\n1. use commitBatches() with garbage in blob data\n2. ...\n3. brick (liveness)\n- nobody can prove\n- nobody can revert the blob part\neven ..withProof() reverts because of the existing blob data",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n sourceHashes.1:\n- \"0x1d0f1289361a17ee6c79d7879b1c620c7cee6f143ec4d14090b6aeedb6ed730a\"\n+ \"0x4ae0d375d97899b0fd3cb34e7aa502f2b652e417b27b23df262734b951560256\"\n values.$implementation:\n- \"eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF\"\n+ \"eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2\"\n values.$pastUpgrades.9:\n+ [\"2026-03-30T09:36:47.000Z\",\"0xd2892f5b4e5c8fe4bd476e83689b21f4716a38185a3923bd1fcbcf61deefb8f9\",[\"eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2\"]]\n values.$upgradeCount:\n- 9\n+ 10\n implementationNames.eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF:\n- \"Rollup\"\n implementationNames.eth:0x9e2Fb684935a32CEd121972f23BD0e4634377cA2:\n+ \"Rollup\"\n }\n```"
}
]
},
{
"id": "ed61059f",
"date": "Fri, 27 Mar 2026 13:19:04 GMT",
"timestamp": 1774609123,
"description": "Rollup upgrade to make commitBatchWithProof() permissionless under any of these conditions:\n- The last committed batch has a timestamp that is > 7d ago (rollupDelayPeriod)\n- The first message in the forced tx queue is more than 7d old\n\nthis moves sequencer failure and proposer failure to green.\n\nfor stage 1 at least an SC as upgrader is needed. because of the forced queue and the `rollupDelayPeriod` mechanic, the proof system might already be good for stage 1.\n\nhttps://disco.l2beat.com/diff/eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3/eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\n template:\n- \"morph/MorphOldRollup\"\n+ \"morph/Rollup\"\n sourceHashes.1:\n- \"0x8918639fcac94fac40711260ca7cb4027dbac6a2a48b10cd380818ede6636206\"\n+ \"0x1d0f1289361a17ee6c79d7879b1c620c7cee6f143ec4d14090b6aeedb6ed730a\"\n description:\n- \"The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the challenge mechanism along with the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. Although the contract exposes the external function commitBatchWithProof(), it currently reverts for non-whitelisted actors.\"\n+ \"The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the the proof system. Sequencing and proposing are behind a whitelist. If the EnforcedTxGateway is not paused, any sequencer must include at least one L1 -> L2 message in their proposal if the oldest message is > 7d old. If the Sequencers are censoring or down for more than 7d, users can permissionlessly propose and prove via `commitBatchWithProof()`.\"\n values.$implementation:\n- \"eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3\"\n+ \"eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF\"\n values.$pastUpgrades.8:\n+ [\"2026-03-27T01:34:11.000Z\",\"0x8eec835066ebedafa6430fc7b0cd1de2b7a46eb09e56519868ca9dbb938f4c8f\",[\"eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF\"]]\n values.$upgradeCount:\n- 8\n+ 9\n implementationNames.eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3:\n- \"Rollup\"\n implementationNames.eth:0xB2F539aede77DF4cD1d427d046bBbBd8dB4cBAAF:\n+ \"Rollup\"\n }\n```"
}
]
},
{
"id": "79222b6e",
"date": "Mon, 16 Mar 2026 13:46:23 GMT",
"timestamp": 1773666062,
"description": "enforced tx gateway is unpaused\n\nmorph incomplete CR / self-proposing:\n- EnforcedTxGateway works if unpaused and Rollup.rollupDelayPeriod has passed since you queued: it forces any sequencer to execute at least 1 msg (very low) per proposal (FIFO)\n- `commitBatchWithProof()` reverts on `getStakerBitmap(_msgSender())`, so no permissionless proposing\n- to propose you need the prover source\n- successfully challenged batches need to be reverted, which is `onlyOwner()` (liveness fail)\n- no forced txes by non-EOAs\n- the rollup does `BatchHeaderCodecV0.storeSequencerSetVerifyHash(_batchPtr, keccak256(batchSignatureInput.sequencerSets));` which seems to store some sequencer set hash and feed it into the zk proof via `_publicInputHash`. morph had the famous `return true` BLS verification for their decentralized sequencer set, and this might be a remnant that prevents permissionless proving?\n\ntldr you can force, sequencer cannot skip after 7d, but can stop proposing (liveness fail)\n\nmorph has commited to improve this in the next updates, for now i have changed the sequencer risk slice to yellow since enqueuing is possible and changed the technology.forcedTransactions.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EnforcedTxGateway (eth:0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7) {\n +++ description: Contracts to force L1 -> L2 messages with the L1 sender. Currently paused: false.\n description:\n- \"Contracts to force L1 -> L2 messages with the L1 sender. Currently paused: true.\"\n+ \"Contracts to force L1 -> L2 messages with the L1 sender. Currently paused: false.\"\n values.paused:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "6cd524c6",
"date": "Wed, 04 Mar 2026 10:30:35 GMT",
"timestamp": 1772616101,
"description": "Upgrade adding external func `commitBatchWithProof()` and rollupDelayPeriod with the apparent intention of permissionless proposing after a delay.\n\ncommitBatchWithProof() can be called if any:\n1. last committed batch + rollupDelayPeriod < now\n2. oldest enqueued msg + rollupDelayPeriod < now\n\n`commitBatchWithProof()` currently reverts for non-whitelisted actors since it calls `getStakerBitmap(_msgSender())`, so in practice we still have whitelisted proposals\n\ndiff:\n- [Rollup](https://disco.l2beat.com/diff/eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5/eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3)\n- [L1MessageQueueWithGasPriceOracle](https://disco.l2beat.com/diff/eth:0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA/eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa)",
"isHighSeverity": true,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1MessageQueueWithGasPriceOracle (eth:0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF) {\n +++ description: Contains the array of queued L1 -> L2 messages, either appended using the L1Messenger or the EnforcedTxGateway.\n sourceHashes.1:\n- \"0x1719cdcf5cd2921747ddc6f0dea1d383d56e48c613a99782597914a32d40e4cd\"\n+ \"0x06be3e07c53c199805b384f80352b668ca35f7bdb1b6d5addc8fcb490ff63eac\"\n values.$implementation:\n- \"eth:0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA\"\n+ \"eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa\"\n values.$pastUpgrades.3:\n+ [\"2026-03-03T06:03:11.000Z\",\"0x29632a0458dbc5cbad5e831228a54c118e8e0746bff06fcf151cad568079a318\",[\"eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getFirstUnfinalizedMessageEnqueueTime:\n+ 1772616095\n implementationNames.eth:0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA:\n- \"L1MessageQueueWithGasPriceOracle\"\n implementationNames.eth:0xf3b7724334cb0aDBC49CAC90e166Af99C07Be6aa:\n+ \"L1MessageQueueWithGasPriceOracle\"\n }\n```\n\n```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the challenge mechanism along with the proof system. Sequencing and proposing are behind a whitelist. Although the contract exposes the external function commitBatchWithProof(), it currently reverts for non-whitelisted actors.\n sourceHashes.1:\n- \"0xf8331668c19c4399a7caf054895f9dd43a0593e13f4fdb6b7ac6cc2b130da357\"\n+ \"0x8918639fcac94fac40711260ca7cb4027dbac6a2a48b10cd380818ede6636206\"\n values.$implementation:\n- \"eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5\"\n+ \"eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3\"\n values.$pastUpgrades.7:\n+ [\"2026-03-03T06:06:11.000Z\",\"0xc86bc6dc60ad304afbc7f423668a272434c17dbf4a0bb27906d74f0940a6eab1\",[\"eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3\"]]\n values.$upgradeCount:\n- 7\n+ 8\n+++ description: commitBatchWithProof() can be called if any:\n1. last committed batch + rollupDelayPeriod < now\n2. oldest enqueued msg + rollupDelayPeriod < now\n values.rollupDelayPeriod:\n+ 604800\n implementationNames.eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5:\n- \"Rollup\"\n implementationNames.eth:0x1320d6A438d268044c8EEff0eE6B24E5EC9584e3:\n+ \"Rollup\"\n }\n```"
}
]
},
{
"id": "e1a5c3a0",
"date": "Mon, 02 Mar 2026 14:47:24 GMT",
"timestamp": 1772462455,
"description": "Add timelock with 0 minDelay.",
"isHighSeverity": false,
"changeCount": 23,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0) {\n +++ description: None\n values.owner:\n- \"eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n+ \"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"\n }\n```\n\n```diff\n contract Morph Multisig 2 (eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377) {\n +++ description: None\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"description\":\"cancel queued transactions.\",\"role\":\".Canceller\"}\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"description\":\"propose transactions.\",\"role\":\".Proposer\"}\n }\n```\n\n```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"description\":\"execute transactions that are ready.\",\"role\":\".Executor\"}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"description\":\"manage all access control roles.\",\"role\":\".defaultAdminAC\",\"via\":[{\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}]}\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"description\":\"manage all access control roles.\",\"role\":\".defaultAdminAC\"}\n receivedPermissions.3:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"},{\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}]}\n receivedPermissions.0.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.0.from:\n- \"eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7\"\n+ \"eth:0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68\"\n receivedPermissions.1.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.1.from:\n- \"eth:0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68\"\n+ \"eth:0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF\"\n receivedPermissions.2.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.2.from:\n- \"eth:0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF\"\n+ \"eth:0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8\"\n receivedPermissions.3.via.0.address:\n- \"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"\n+ \"eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17\"\n receivedPermissions.3.from:\n- \"eth:0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8\"\n+ \"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"\n receivedPermissions.4.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.5.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.6.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n receivedPermissions.7.via.1:\n+ {\"address\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\"}\n directlyReceivedPermissions.0:\n+ {\"permission\":\"act\",\"from\":\"eth:0x542675E90E269F20ecbb9e0095d4751ac155B530\",\"role\":\".Executor\"}\n directlyReceivedPermissions.0.from:\n- \"eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"\n+ \"eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (eth:0x542675E90E269F20ecbb9e0095d4751ac155B530)\n +++ description: A timelock with access control. The current minimum delay is 0s.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17)\n +++ description: None\n```"
}
]
},
{
"id": "e59936ee",
"date": "Tue, 13 Jan 2026 10:04:33 GMT",
"timestamp": 1768298606,
"description": "Deployed an SP1 verifier with a new guest zk program. The verifier itself is the same. I did not manage to regenerate the program hash.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) {\n +++ description: Used to update the verifier and keep track of current and old versions. Routes to a registered verifier by batch index, so that every batch is verified by the latest verifier that is enabled for this batch.\n values.latestVerifier.0.verifier:\n- \"eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423\"\n+ \"eth:0x5ff102a4A4Ce2040288a797CE4CCCa85eE1E2d70\"\n values.latestVerifier.0.startBatchIndex:\n- 45847\n+ 47944\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0x5ff102a4A4Ce2040288a797CE4CCCa85eE1E2d70)\n +++ description: A snark verifier based on SP1 by Succinct. It verifies RISC-V execution in a PLONK proof. Used to verify the validity of L2 state transitions for single round fraud proofs.\n```"
}
]
},
{
"id": "eb9341d1",
"date": "Wed, 07 Jan 2026 14:40:16 GMT",
"timestamp": 1767796750,
"description": "bond reset after previous challenges are resolved.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Rollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph rollup. Allows to post transaction data and state roots and implements the challenge mechanism along with the proof system. Sequencing and proposing are behind a whitelist.\n values.proveRemaining:\n- \"2103000000000000000\"\n+ 0\n }\n```"
}
]
},
{
"id": "6ca05f56",
"date": "Mon, 22 Dec 2025 13:16:12 GMT",
"timestamp": 1766409308,
"description": "challengers added and challenge resolved.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n values.challengers.36:\n+ \"eth:0x8b8bc0EB904fDD2862a6433d020F15bBc8a7b13e\"\n values.challengers.37:\n+ \"eth:0xAa54d89A2B420F286Db0C19732D07abe08E6b442\"\n values.proveRemaining:\n- \"1503000000000000000\"\n+ \"2103000000000000000\"\n }\n```"
}
]
},
{
"id": "c276c9bf",
"date": "Mon, 15 Dec 2025 07:37:53 GMT",
"timestamp": 1765784209,
"description": "challenger added + challenge made and resolved.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n values.challengers.35:\n+ \"eth:0xa609285fF6F2a0Dfdeb03cc33d78d8a47A691497\"\n values.proveRemaining:\n- \"903000000000000000\"\n+ \"1503000000000000000\"\n }\n```"
}
]
},
{
"id": "7092aa43",
"date": "Mon, 01 Dec 2025 15:21:11 GMT",
"timestamp": 1764602402,
"description": "New challengers. Another challenge resolved via proof.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n values.challengers.33:\n+ \"eth:0x111BC31F5cfE920004FD17449BDb5e476C02AEC5\"\n values.challengers.34:\n+ \"eth:0x3b065B18EdFFC7cf3D751E33d45C1FB4fD78d57b\"\n values.proveRemaining:\n- \"603000000000000000\"\n+ \"903000000000000000\"\n }\n```"
}
]
},
{
"id": "1fc70abf",
"date": "Wed, 26 Nov 2025 13:57:45 GMT",
"timestamp": 1764165395,
"description": "upgrade to same code to fix LAYER_2_CHAIN_ID (constructor)\n\na second batch is proven, resolving a challenge: https://etherscan.io/tx/0x1cb36b309f949ec6379d0bab0bc992f4d603737d310245af292f28c5bb968f2b",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n values.$implementation:\n- \"eth:0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec\"\n+ \"eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5\"\n values.$pastUpgrades.6:\n+ [\"2025-11-25T08:51:35.000Z\",\"0x27b0e1b46f9878a502c68e414bc6fea028c3a551760e5687c56bdd4eda4f31c9\",[\"eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.challengers.32:\n+ \"eth:0x731a89035F88Bde8fB7357AaAD6620F4716aC1be\"\n values.LAYER_2_CHAIN_ID:\n- 1\n+ 2818\n values.proveRemaining:\n- \"303000000000000000\"\n+ \"603000000000000000\"\n implementationNames.eth:0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec:\n- \"Rollup\"\n implementationNames.eth:0xDF0749e688AE74508D84699Ba2405ED610Aaf8c5:\n+ \"Rollup\"\n }\n```"
}
]
},
{
"id": "1d922498",
"date": "Mon, 24 Nov 2025 11:41:10 GMT",
"timestamp": 1763984401,
"description": "verifier change (programhash, no code changes):\n\nprevious programHashes, removed:\n- 0x001bdbe2a0f4839f3e7ca3b42ab1ca9d012e23249d17564c953d3557aede919c\n- 0x006c835a4c049b699a3675fefa51b182c7efe404a656151c0410245966724bc3\n\nnew programhash, added:\n- 0x0059b74a8fd03c44462de3916b45ebeedb9f1158e3037e8c40b8941cbe438d7e\n\nproveRemaining changed. this var is the accumulated ETH balance retained by the protocol from failed challenges.\n- challenge: https://etherscan.io/tx/0xe92cd2101b2322721bf4601ffa60c03e0e79d27b26c7ccbb8ccabc11737b2266\n- resolve/prove: https://etherscan.io/tx/0x3b6e8a3ba6b62ddb7972ee2f1c80037635c7425378a1b981823ee6f8bb9086ea",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0x4006FDA79493FEE14dA42BfA34575aAA79bcf953)\n +++ description: Current SP1 verifier using Blobs for DA.\n```\n\n```diff\n contract MultipleVersionRollupVerifier (eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) {\n +++ description: Used to update the verifier and keep track of current and old versions.\n values.latestVerifier.0.verifier:\n- \"eth:0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154\"\n+ \"eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423\"\n values.latestVerifier.0.startBatchIndex:\n- 0\n+ 45847\n values.latestVerifier.1.verifier:\n- \"eth:0x4006FDA79493FEE14dA42BfA34575aAA79bcf953\"\n+ \"eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423\"\n values.latestVerifier.1.startBatchIndex:\n- 20230\n+ 45847\n values.legacyVerifiersLength.0:\n- 0\n+ 1\n values.legacyVerifiersLength.1:\n- 0\n+ 1\n }\n```\n\n```diff\n contract MorphRollup (eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n values.challengers.31:\n+ \"eth:0xB2e53dcb84dc869E3bA61911a170B53eE1326184\"\n values.proveRemaining:\n- 3000000000000000\n+ \"303000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (eth:0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154)\n +++ description: SP1 verifier using Blobs for DA (being deprecated).\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (eth:0x045d4BC73Bd1918192f34e98532A5272Ef620423)\n +++ description: None\n```"
}
]
},
{
"id": "e9bd712f",
"date": "Thu, 20 Nov 2025 14:37:55 GMT",
"timestamp": 1763649405,
"description": "add staker.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1Staking (eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7) {\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n values.getActiveStakers.3:\n+ \"eth:0xf0e11a8EA095Cc915f5a7e420928d396ed1Bb7e4\"\n }\n```"
}
]
},
{
"id": "5c20bf43",
"date": "Wed, 19 Nov 2025 14:53:11 GMT",
"timestamp": 1763563909,
"description": "stakers removed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1Staking (eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7) {\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n values.deleteList.0:\n- \"eth:0xa59B26DB10C5Ca26a97AA2Fd2E74CB8DA9D1EB65\"\n values.deleteList.1:\n- \"eth:0xf834ffbeb6bB3F4841afc6b5FB40B94cd580fa23\"\n values.deleteList.2:\n- \"eth:0x61F2945d4bc9E40B66a6376d1094a50438f613e2\"\n values.deleteList.3:\n- \"eth:0xb6cF39ee72e0127E6Ea6059e38B8C197227a6ac7\"\n }\n```"
}
]
},
{
"id": "5fbcb4e0",
"date": "Mon, 20 Oct 2025 15:26:52 GMT",
"timestamp": 1760973938,
"description": "New staker.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1Staking (eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7) {\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n values.getActiveStakers.3:\n+ \"eth:0x76F91869161dC4348230D5F60883Dd17462035f4\"\n }\n```"
}
]
},
{
"id": "e898e91e",
"date": "Thu, 25 Sep 2025 10:25:13 GMT",
"timestamp": 1758795850,
"description": "Removed 5 members of multisig, added 2 new members that were a part of another multisig.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 2 (eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377) {\n +++ description: None\n values.$members.0:\n- \"eth:0x19C0CebaEC6EDb61c00178Cf8c6112BAD5Ef68E6\"\n values.$members.1:\n- \"eth:0xa79fEE4418338B59B8C6c93b87777A89F57c0Fd3\"\n values.$members.2:\n- \"eth:0x429087D7cb89cD816b80804bCE9c7b1A1FFE229F\"\n+ \"eth:0xC7F81B58ec3937D11Bf4BA74C04FF69e944423F2\"\n values.$members.3:\n- \"eth:0x0659dF9D53A987e3aDaa9019407431413A101eF3\"\n+ \"eth:0xbA430e784fe11ADbc20fa1a99193eeD87ACD68C7\"\n values.$members.6:\n- \"eth:0xAD249861A911717fE74FA329fEC3c619f55DfFDf\"\n values.$threshold:\n- 5\n+ 3\n values.multisigThreshold:\n- \"5 of 8 (63%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "83f3649a",
"date": "Tue, 23 Sep 2025 10:00:23 GMT",
"timestamp": 1758621561,
"description": "Multisig update, new signer was already a member of Multisig 2.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x05e1d4694041aF987Af6F8402D902686018E2136\"\n values.$threshold:\n- 3\n+ 4\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"4 of 6 (67%)\"\n }\n```"
}
]
},
{
"id": "1df41700",
"date": "Fri, 19 Sep 2025 08:20:56 GMT",
"timestamp": 1758269993,
"description": "Removed a member of morph multisig 1, this address stays a member of morph multisig 2.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n values.$members.5:\n- \"eth:0x0659dF9D53A987e3aDaa9019407431413A101eF3\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "f9b193fc",
"date": "Thu, 18 Sep 2025 09:08:11 GMT",
"timestamp": 1758186428,
"description": "Added a new member to Morph multisig 1, this address already was a member of morph multisig 2.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x59C09F33d7D901b8B57644D68a45b123e9Bbd0E5\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "6dfc9f70",
"date": "Tue, 02 Sep 2025 09:13:34 GMT",
"timestamp": 1756804333,
"description": "Multisig update.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 1 (eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n values.$members.5:\n- \"eth:0x59C09F33d7D901b8B57644D68a45b123e9Bbd0E5\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "4a92d411",
"date": "Fri, 29 Aug 2025 07:41:15 GMT",
"timestamp": 1756453192,
"description": "Msig changes.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Morph Multisig 1 (0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xe72BB9d10f6eA936D7D4507d298ab867128aF54C\"\n values.$members.1:\n+ \"eth:0x27f05308F4b80242d3Dca1D5e9c3aE976098E9C8\"\n values.$members.2:\n+ \"eth:0xC7F81B58ec3937D11Bf4BA74C04FF69e944423F2\"\n values.$members.3:\n+ \"eth:0xbA430e784fe11ADbc20fa1a99193eeD87ACD68C7\"\n values.$members.2:\n- \"eth:0x19C0CebaEC6EDb61c00178Cf8c6112BAD5Ef68E6\"\n values.$members.3:\n- \"eth:0xcE7257224441385345CE6eEdd9D8667AD9Bab9f0\"\n values.$members.4:\n- \"eth:0x35B98995048b320f2DaFFAD5BaD5884F16e488A9\"\n values.$members.5:\n- \"eth:0x1DeBbDae435295eC72b904Cc8B476BA81a63BAdb\"\n values.$members.6:\n- \"eth:0x0B3d220254e407a780EA7498d51b6d4fef807Bd0\"\n values.$members.7:\n- \"eth:0xf39D8310a7DFEc320bD17bddE32A53d47e340B2e\"\n values.$threshold:\n- 5\n+ 3\n values.multisigThreshold:\n- \"5 of 8 (63%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "21ab066e",
"date": "Mon, 14 Jul 2025 12:45:26 GMT",
"timestamp": 1752497126,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 15,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract L1Staking (0x0Dc417F8AF88388737c5053FF73f345f080543F7)\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n```\n\n```diff\n+ Status: CREATED\n contract L1ETHGateway (0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68)\n +++ description: Contract used to bridge ETH from L1 to L2.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x31110622D6CA24c9FF307d6ae1715F16E47F16A0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1MessageQueueWithGasPriceOracle (0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF)\n +++ description: Contains the array of queued L1 -> L2 messages, either appended using the L1Messenger or the EnforcedTxGateway.\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (0x4006FDA79493FEE14dA42BfA34575aAA79bcf953)\n +++ description: Current SP1 verifier using Blobs for DA.\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardERC20Gateway (0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8)\n +++ description: Contract used to bridge ERC20 tokens from L1 to L2. It uses a fixed token list.\n```\n\n```diff\n+ Status: CREATED\n contract MultipleVersionRollupVerifier (0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1)\n +++ description: Used to update the verifier and keep track of current and old versions.\n```\n\n```diff\n+ Status: CREATED\n contract L1GatewayRouter (0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a)\n +++ description: Main entry point for depositing ETH and ERC20 tokens, which are then forwarded to the correct gateway.\n```\n\n```diff\n+ Status: CREATED\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60)\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n```\n\n```diff\n+ Status: CREATED\n contract Morph Multisig 2 (0xB822319ab7848b7cC4537c8409e50f85BFb04377)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EnforcedTxGateway (0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7)\n +++ description: Contracts to force L1 -> L2 messages with the proper sender. Currently paused: true.\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304)\n +++ description: Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154)\n +++ description: SP1 verifier using Blobs for DA (being deprecated).\n```\n\n```diff\n+ Status: CREATED\n contract Morph Multisig 1 (0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Whitelist (0xFFafDd9167777C0e5421e0B6789D6d7A5E386984)\n +++ description: Contract implementing a generic whitelist. Currently used to define the actor that can relay the L2 basefee on L1.\n```"
}
]
},
{
"id": "e8b3cadf",
"date": "Mon, 23 Jun 2025 14:57:23 GMT",
"timestamp": 1750690643,
"description": "Some stakers (sequencer/proposer) removed (3 left).",
"isHighSeverity": false,
"changeCount": 15,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1Staking (0x0Dc417F8AF88388737c5053FF73f345f080543F7) {\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n values.deleteList.3:\n+ \"0xa59B26DB10C5Ca26a97AA2Fd2E74CB8DA9D1EB65\"\n values.deleteList.2:\n+ \"0xf834ffbeb6bB3F4841afc6b5FB40B94cd580fa23\"\n values.deleteList.1:\n+ \"0xb6cF39ee72e0127E6Ea6059e38B8C197227a6ac7\"\n values.deleteList.0:\n+ \"0x61F2945d4bc9E40B66a6376d1094a50438f613e2\"\n values.getActiveStakers.6:\n- \"0x34E387B37d3ADEAa6D5B92cE30dE3af3DCa39796\"\n values.getActiveStakers.5:\n- \"0x6aB0E960911b50f6d14f249782ac12EC3E7584A0\"\n values.getActiveStakers.4:\n- \"0xa59B26DB10C5Ca26a97AA2Fd2E74CB8DA9D1EB65\"\n values.getActiveStakers.3:\n- \"0xBBA36CdF020788f0D08D5688c0Bee3fb30ce1C80\"\n values.getActiveStakers.2:\n- \"0xf834ffbeb6bB3F4841afc6b5FB40B94cd580fa23\"\n+ \"0x34E387B37d3ADEAa6D5B92cE30dE3af3DCa39796\"\n values.getActiveStakers.1:\n- \"0xb6cF39ee72e0127E6Ea6059e38B8C197227a6ac7\"\n+ \"0x6aB0E960911b50f6d14f249782ac12EC3E7584A0\"\n values.getActiveStakers.0:\n- \"0x61F2945d4bc9E40B66a6376d1094a50438f613e2\"\n+ \"0xBBA36CdF020788f0D08D5688c0Bee3fb30ce1C80\"\n }\n```\n\n```diff\n EOA (0x61F2945d4bc9E40B66a6376d1094a50438f613e2) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"sequence\",\"from\":\"ethereum:0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"description\":\"Actors allowed to commit transaction batches and propose state roots\",\"role\":\".getActiveStakers\"}]\n }\n```\n\n```diff\n EOA (0xa59B26DB10C5Ca26a97AA2Fd2E74CB8DA9D1EB65) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"sequence\",\"from\":\"ethereum:0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"description\":\"Actors allowed to commit transaction batches and propose state roots\",\"role\":\".getActiveStakers\"}]\n }\n```\n\n```diff\n EOA (0xb6cF39ee72e0127E6Ea6059e38B8C197227a6ac7) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"sequence\",\"from\":\"ethereum:0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"description\":\"Actors allowed to commit transaction batches and propose state roots\",\"role\":\".getActiveStakers\"}]\n }\n```\n\n```diff\n EOA (0xf834ffbeb6bB3F4841afc6b5FB40B94cd580fa23) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"sequence\",\"from\":\"ethereum:0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"description\":\"Actors allowed to commit transaction batches and propose state roots\",\"role\":\".getActiveStakers\"}]\n }\n```"
}
]
},
{
"id": "e4a70468",
"date": "Mon, 12 May 2025 12:13:27 GMT",
"timestamp": 1747052007,
"description": "Minor upgrade to the main MorphRollup contract: formatting changes for batch commits, proveState() is now permissioned (onlyActiveStaker).\n\nNew verifier deployed, code-identical to the old one (SP1) but new programVkey.",
"isHighSeverity": true,
"changeCount": 26,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MultipleVersionRollupVerifier (0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1) {\n +++ description: Used to update the verifier and keep track of current and old versions.\n values.latestVerifier.1:\n+ {\"startBatchIndex\":0,\"verifier\":\"0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154\"}\n values.latestVerifier.0.startBatchIndex:\n- 0\n+ 20230\n values.latestVerifier.0.verifier:\n- \"0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154\"\n+ \"0x4006FDA79493FEE14dA42BfA34575aAA79bcf953\"\n values.legacyVerifiersLength.1:\n+ 0\n values.verifierVersions.1:\n+ 2\n }\n```\n\n```diff\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n sourceHashes.1:\n- \"0x993403059c5620e6c91110514f9f4a2f2331c55dab587699c67c19edddab92ad\"\n+ \"0xf8331668c19c4399a7caf054895f9dd43a0593e13f4fdb6b7ac6cc2b130da357\"\n sourceHashes.0:\n- \"0xdbd7245a43b9bfda69e999525405cc2d3a44e2a5d60c8fcbc75bb2d4987837be\"\n+ \"0x993403059c5620e6c91110514f9f4a2f2331c55dab587699c67c19edddab92ad\"\n values.$implementation:\n- \"0x43190DfD1F572Cb56B1942B44482d1774151D77A\"\n+ \"0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec\"\n values.$pastUpgrades.5:\n+ [\"2025-01-13T07:31:59.000Z\",\"0x809b1d9bba9fd8f61c038603ddf7a6f0a079db83a4a6d341cf23d2af5764a9be\",[\"0x43190DfD1F572Cb56B1942B44482d1774151D77A\"]]\n values.$pastUpgrades.4.2:\n- [\"0x43190DfD1F572Cb56B1942B44482d1774151D77A\"]\n+ \"2024-10-19T09:51:35.000Z\"\n values.$pastUpgrades.4.1:\n- \"2025-01-13T07:31:59.000Z\"\n+ [\"0xcffdDbcb5B9EA2ee45ABA121e0849ADc87c38326\"]\n values.$pastUpgrades.4.0:\n- \"0x809b1d9bba9fd8f61c038603ddf7a6f0a079db83a4a6d341cf23d2af5764a9be\"\n+ \"0xeb4cc4248a0b3f459f4d7ab5877114fd4f55fd073c78347df548a9f03013068e\"\n values.$pastUpgrades.3.2:\n- \"2024-10-19T09:51:35.000Z\"\n+ \"2024-10-19T03:11:47.000Z\"\n values.$pastUpgrades.3.1.0:\n- \"0xcffdDbcb5B9EA2ee45ABA121e0849ADc87c38326\"\n+ \"0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F\"\n values.$pastUpgrades.3.0:\n- \"0xeb4cc4248a0b3f459f4d7ab5877114fd4f55fd073c78347df548a9f03013068e\"\n+ \"0xfb3bc602abb088d5d94e6869d56417de3c16a3966e5c6abfa4d157dfbcc36cba\"\n values.$pastUpgrades.2.2:\n- \"2024-10-19T03:11:47.000Z\"\n+ [\"0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A\"]\n values.$pastUpgrades.2.1:\n- [\"0x98dF320641C2E65ab4BbeF1e6f6C66D9B50EdE5F\"]\n+ \"2024-11-28T03:51:59.000Z\"\n values.$pastUpgrades.2.0:\n- \"0xfb3bc602abb088d5d94e6869d56417de3c16a3966e5c6abfa4d157dfbcc36cba\"\n+ \"0xa452e20183f6860f105cb398bccc9d75dd3758444b956061b3031d1f0a33c424\"\n values.$pastUpgrades.1.2:\n- [\"0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A\"]\n+ \"2025-05-12T07:11:23.000Z\"\n values.$pastUpgrades.1.1:\n- \"2024-11-28T03:51:59.000Z\"\n+ \"0x1cd98e49b0d0c30a39c97683c374f5d3541d1ed02b14272a7113709fe01700d7\"\n values.$pastUpgrades.1.0:\n- \"0xa452e20183f6860f105cb398bccc9d75dd3758444b956061b3031d1f0a33c424\"\n+ [\"0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec\"]\n values.$upgradeCount:\n- 5\n+ 6\n values.LAYER_2_CHAIN_ID:\n- 2818\n+ 1\n implementationNames.0x43190DfD1F572Cb56B1942B44482d1774151D77A:\n- \"Rollup\"\n implementationNames.0x9C79e8F5d0fE910d84a6a0d4A03E8136d036eBec:\n+ \"Rollup\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (0x4006FDA79493FEE14dA42BfA34575aAA79bcf953)\n +++ description: Current SP1 verifier using Blobs for DA.\n```"
}
]
},
{
"id": "a9360a3b",
"date": "Wed, 22 Jan 2025 10:04:06 GMT",
"timestamp": 1737540246,
"description": "New verifier, new Proxyadmin owner MS.\n\nMultipleVersionRollupVerifier (verifier router) has minimal changes.\n\nZkEvmVerifierV1 (the actual verifier) is code-identical with the previous one.",
"isHighSeverity": false,
"changeCount": 24,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1Staking (0x0Dc417F8AF88388737c5053FF73f345f080543F7) {\n +++ description: Contract keeping track of stakers which act as sequencers/proposes. It is responsible for stakers registering and withdrawals and for verifying BLS signatures of stakers (currently not implemented).\n issuedPermissions.7.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract L1ETHGateway (0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68) {\n +++ description: Contract used to bridge ETH from L1 to L2.\n issuedPermissions.0.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract ProxyAdmin (0x31110622D6CA24c9FF307d6ae1715F16E47F16A0) {\n +++ description: None\n values.owner:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract L1MessageQueueWithGasPriceOracle (0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF) {\n +++ description: Contains the array of queued L1 -> L2 messages, either appended using the L1Messenger or the EnforcedTxGateway.\n issuedPermissions.0.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract L1StandardERC20Gateway (0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8) {\n +++ description: Contract used to bridge ERC20 tokens from L1 to L2. It uses a fixed token list.\n issuedPermissions.0.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ZkEvmVerifierV1 (0x6dAece7dFaE212b6A9F55c56FD3cf1462F44069e)\n +++ description: None\n```\n\n```diff\n contract L1GatewayRouter (0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a) {\n +++ description: Main entry point for depositing ETH and ERC20 tokens, which are then forwarded to the correct gateway.\n issuedPermissions.0.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n issuedPermissions.32.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n values.verifier:\n- \"0x87C1D0dAb8d96b69CB91f97F4135E3ed5A49DCF6\"\n+ \"0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MultipleVersionRollupVerifier (0x87C1D0dAb8d96b69CB91f97F4135E3ed5A49DCF6)\n +++ description: None\n```\n\n```diff\n contract MorphOpsMultisig (0xB822319ab7848b7cC4537c8409e50f85BFb04377) {\n +++ description: None\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.9:\n- {\"permission\":\"upgrade\",\"from\":\"0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.8:\n- {\"permission\":\"upgrade\",\"from\":\"0x759894Ced0e6af42c26668076Ffa84d02E3CeF60\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.7:\n- {\"permission\":\"upgrade\",\"from\":\"0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.6:\n- {\"permission\":\"upgrade\",\"from\":\"0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.5:\n- {\"permission\":\"upgrade\",\"from\":\"0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.4:\n- {\"permission\":\"upgrade\",\"from\":\"0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n receivedPermissions.3:\n- {\"permission\":\"upgrade\",\"from\":\"0x0Dc417F8AF88388737c5053FF73f345f080543F7\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]}\n directlyReceivedPermissions:\n- [{\"permission\":\"act\",\"from\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\"}]\n }\n```\n\n```diff\n contract EnforcedTxGateway (0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7) {\n +++ description: Contracts to force L1 -> L2 messages with the proper sender. Currently paused: true.\n issuedPermissions.1.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n contract L1CrossDomainMessenger (0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304) {\n +++ description: Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n issuedPermissions.0.to:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract MultipleVersionRollupVerifier (0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1)\n +++ description: Used to update the verifier and keep track of current and old versions.\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (0xeF88951806f69974bD703Cb9E9eFE362EA0Eb154)\n +++ description: Current SP1 verifier using Blobs for DA, used to prepare data for the PlonkVerifierV0.\n```\n\n```diff\n+ Status: CREATED\n contract MorphUpgradeMultisig (0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887)\n +++ description: None\n```"
}
]
},
{
"id": "27f7ca19",
"date": "Mon, 20 Jan 2025 19:26:41 GMT",
"timestamp": 1737401201,
"description": "Upgrades to MorphRollup, L1MessageQueueWithGasPriceOracle, L1CrossDomainMessenger to **deprecate skipping / dropping messages from the queue**.\n\nThere is no enforcement of the processing of the queue. \n\nThe EnforcedTxGateway is still paused (It is, apart from the L1CrossDomainMessenger, the only address that can append messages to the L1MessageQueue) and thus queuing transactions is currently not possible.\n\nSome Challengers are apparently run by bitget / bitget wallet.",
"isHighSeverity": true,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1MessageQueueWithGasPriceOracle (0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF) {\n +++ description: Contains the array of queued L1 -> L2 messages, either appended using the L1Messenger or the EnforcedTxGateway.\n sourceHashes.1:\n- \"0xe43c8aca9b520edaff0a7339959cee77a47b241a07c6d0dd9836e466caf35e72\"\n+ \"0x1719cdcf5cd2921747ddc6f0dea1d383d56e48c613a99782597914a32d40e4cd\"\n values.$implementation:\n- \"0x828F68e2E05a34fA836416F124350E25021876ac\"\n+ \"0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA\"\n values.$pastUpgrades.2:\n+ [\"2025-01-13T08:11:59.000Z\",\"0x60cc38cb058516da361ecd5f548fc9216fbcda9eb08255b529ebbf78dac44f7b\",[\"0xa3b5bFB885FF92EB8445f262c289548e77c3c0aA\"]]\n values.$upgradeCount:\n- 2\n+ 3\n }\n```\n\n```diff\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n sourceHashes.1:\n- \"0x2b50f40d48451dfa5ae761371d1c0b18c8c827b34d17c401f629bc743888721e\"\n+ \"0xdbd7245a43b9bfda69e999525405cc2d3a44e2a5d60c8fcbc75bb2d4987837be\"\n values.$implementation:\n- \"0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A\"\n+ \"0x43190DfD1F572Cb56B1942B44482d1774151D77A\"\n values.$pastUpgrades.4:\n+ [\"2025-01-13T07:31:59.000Z\",\"0x809b1d9bba9fd8f61c038603ddf7a6f0a079db83a4a6d341cf23d2af5764a9be\",[\"0x43190DfD1F572Cb56B1942B44482d1774151D77A\"]]\n values.$upgradeCount:\n- 4\n+ 5\n }\n```\n\n```diff\n contract L1CrossDomainMessenger (0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304) {\n +++ description: Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n sourceHashes.1:\n- \"0x1a0a7d2a0ed1f83c7043abd7a9f1f24c979e7e86e258c7968ed007894fbf2a4a\"\n+ \"0xdddbb6a01d10a0241f53955182f6b04e5ee4ec2561e412672adae6aa9177fd49\"\n values.$implementation:\n- \"0xB8F0871bc0832cb756f07fFC4bDdC8b6bf8577b5\"\n+ \"0x0cC37d5239F9027A1269f53D83c73084D538f3a9\"\n values.$pastUpgrades.2:\n+ [\"2025-01-13T08:10:23.000Z\",\"0x908d9fce8cd9a787900543daabf45936a8873b543f593030f3edceeca35543f8\",[\"0x0cC37d5239F9027A1269f53D83c73084D538f3a9\"]]\n values.$upgradeCount:\n- 2\n+ 3\n }\n```"
}
]
},
{
"id": "b0e84f1c",
"date": "Mon, 23 Dec 2024 13:12:40 GMT",
"timestamp": 1734959560,
"description": "~30 Challengers added.",
"isHighSeverity": false,
"changeCount": 66,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n issuedPermissions.32:\n+ {\"permission\":\"upgrade\",\"target\":\"0xB822319ab7848b7cC4537c8409e50f85BFb04377\",\"via\":[{\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\",\"delay\":0}]}\n issuedPermissions.31:\n+ {\"permission\":\"configure\",\"target\":\"0xB822319ab7848b7cC4537c8409e50f85BFb04377\",\"via\":[]}\n issuedPermissions.30:\n+ {\"permission\":\"challenge\",\"target\":\"0xF6Ee30269dB1854987cA6812E1ff66c3A5F660Fd\",\"via\":[]}\n issuedPermissions.29:\n+ {\"permission\":\"challenge\",\"target\":\"0xf50A81C771AD3237aeA2FD18E4ee8055CC4Cd2B9\",\"via\":[]}\n issuedPermissions.28:\n+ {\"permission\":\"challenge\",\"target\":\"0xF2FF0509520fAf35B511074466A509e00d73C307\",\"via\":[]}\n issuedPermissions.27:\n+ {\"permission\":\"challenge\",\"target\":\"0xE48eA86dCdE15E28624E5De9d6D3738fc52B6bFe\",\"via\":[]}\n issuedPermissions.26:\n+ {\"permission\":\"challenge\",\"target\":\"0xDF063FAEb46de1b4336bC70Da7175f16aB4A7272\",\"via\":[]}\n issuedPermissions.25:\n+ {\"permission\":\"challenge\",\"target\":\"0xd11f9c4F5d9b1feC2d14581d3674066442B68772\",\"via\":[]}\n issuedPermissions.24:\n+ {\"permission\":\"challenge\",\"target\":\"0xcA00091a35d0b546A15d000F8bCeDA56255EE4D0\",\"via\":[]}\n issuedPermissions.23:\n+ {\"permission\":\"challenge\",\"target\":\"0xc8F7DaeF4b49c1593cC3996aB2afa8B56e00fcF8\",\"via\":[]}\n issuedPermissions.22:\n+ {\"permission\":\"challenge\",\"target\":\"0xC4db900F76293042349448D1Ba30F71518325Bb3\",\"via\":[]}\n issuedPermissions.21:\n+ {\"permission\":\"challenge\",\"target\":\"0xC412B4e6399F694CfF21D038d225373Fd6596811\",\"via\":[]}\n issuedPermissions.20:\n+ {\"permission\":\"challenge\",\"target\":\"0xbfd62b7915da8c19C701FD13237b555Ad38C4b4C\",\"via\":[]}\n issuedPermissions.19:\n+ {\"permission\":\"challenge\",\"target\":\"0xbD9f4fdC48a9A8c7eA1075CFDf4F3bd365d50Bab\",\"via\":[]}\n issuedPermissions.18:\n+ {\"permission\":\"challenge\",\"target\":\"0xB822319ab7848b7cC4537c8409e50f85BFb04377\",\"via\":[]}\n issuedPermissions.17:\n+ {\"permission\":\"challenge\",\"target\":\"0xb4A20D473e8C378aE742a8017DD67756a358eAB6\",\"via\":[]}\n issuedPermissions.16:\n+ {\"permission\":\"challenge\",\"target\":\"0x9Ac29D4f41A139D9b7be32C2906Df9f86FA51b2b\",\"via\":[]}\n issuedPermissions.15:\n+ {\"permission\":\"challenge\",\"target\":\"0x95C373754C66feF1Eb2dbb6934aF821C551D9738\",\"via\":[]}\n issuedPermissions.14:\n+ {\"permission\":\"challenge\",\"target\":\"0x95417708f67f4a5dF1A447efe40c6C74e38Ab832\",\"via\":[]}\n issuedPermissions.13:\n+ {\"permission\":\"challenge\",\"target\":\"0x92C4d5d9CaDD1aF74080DE7aa078434007F710Bb\",\"via\":[]}\n issuedPermissions.12:\n+ {\"permission\":\"challenge\",\"target\":\"0x8C0cFFcBAb44c7aB6e96EB607c49188dE99a17Cd\",\"via\":[]}\n issuedPermissions.11:\n+ {\"permission\":\"challenge\",\"target\":\"0x77B29534738E3F0F297d36635d7884965C7c8cE1\",\"via\":[]}\n issuedPermissions.10:\n+ {\"permission\":\"challenge\",\"target\":\"0x74204e3801E9394848AbDBAd6f378d0b11e9a091\",\"via\":[]}\n issuedPermissions.9:\n+ {\"permission\":\"challenge\",\"target\":\"0x71C10870dC38E54d987C22e96aB32b46cc08564F\",\"via\":[]}\n issuedPermissions.8:\n+ {\"permission\":\"challenge\",\"target\":\"0x6D7cC6C62CD6CcdaC482E82aA7A3763926e93854\",\"via\":[]}\n issuedPermissions.7:\n+ {\"permission\":\"challenge\",\"target\":\"0x611e4B24e89bC524Fc06f73b6FD02bE3Ec73d6Db\",\"via\":[]}\n issuedPermissions.6:\n+ {\"permission\":\"challenge\",\"target\":\"0x5c6E1011cd3b5d7D2937c098b8F61d6B3d1aee7e\",\"via\":[]}\n issuedPermissions.5:\n+ {\"permission\":\"challenge\",\"target\":\"0x4Ee3690901157bE86A33371bEc1e5021A10Ba47C\",\"via\":[]}\n issuedPermissions.4:\n+ {\"permission\":\"challenge\",\"target\":\"0x323a78C1c910b282dE98a557d735628A02E00983\",\"via\":[]}\n issuedPermissions.3:\n+ {\"permission\":\"challenge\",\"target\":\"0x234aCb24b1DeeA7f6c7530b8c29a6378bA21e1D0\",\"via\":[]}\n issuedPermissions.2.permission:\n- \"upgrade\"\n+ \"challenge\"\n issuedPermissions.2.target:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0x1721D3Ae2d68E3Dd32525400Ed2a29060F1300c6\"\n issuedPermissions.2.via.0:\n- {\"address\":\"0x31110622D6CA24c9FF307d6ae1715F16E47F16A0\",\"delay\":0}\n issuedPermissions.1.permission:\n- \"configure\"\n+ \"challenge\"\n issuedPermissions.1.target:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0x03FD36AEd3b2597aA79bb5f543f3a0eAf9DEB0FA\"\n issuedPermissions.0.target:\n- \"0xB822319ab7848b7cC4537c8409e50f85BFb04377\"\n+ \"0x0092bC49078f130D27e70dBeee441E227280B97D\"\n values.challengers.30:\n+ \"0x95C373754C66feF1Eb2dbb6934aF821C551D9738\"\n values.challengers.29:\n+ \"0x5c6E1011cd3b5d7D2937c098b8F61d6B3d1aee7e\"\n values.challengers.28:\n+ \"0x234aCb24b1DeeA7f6c7530b8c29a6378bA21e1D0\"\n values.challengers.27:\n+ \"0x92C4d5d9CaDD1aF74080DE7aa078434007F710Bb\"\n values.challengers.26:\n+ \"0x611e4B24e89bC524Fc06f73b6FD02bE3Ec73d6Db\"\n values.challengers.25:\n+ \"0xDF063FAEb46de1b4336bC70Da7175f16aB4A7272\"\n values.challengers.24:\n+ \"0x1721D3Ae2d68E3Dd32525400Ed2a29060F1300c6\"\n values.challengers.23:\n+ \"0xC412B4e6399F694CfF21D038d225373Fd6596811\"\n values.challengers.22:\n+ \"0x0092bC49078f130D27e70dBeee441E227280B97D\"\n values.challengers.21:\n+ \"0xc8F7DaeF4b49c1593cC3996aB2afa8B56e00fcF8\"\n values.challengers.20:\n+ \"0x4Ee3690901157bE86A33371bEc1e5021A10Ba47C\"\n values.challengers.19:\n+ \"0x03FD36AEd3b2597aA79bb5f543f3a0eAf9DEB0FA\"\n values.challengers.18:\n+ \"0xE48eA86dCdE15E28624E5De9d6D3738fc52B6bFe\"\n values.challengers.17:\n+ \"0xb4A20D473e8C378aE742a8017DD67756a358eAB6\"\n values.challengers.16:\n+ \"0x71C10870dC38E54d987C22e96aB32b46cc08564F\"\n values.challengers.15:\n+ \"0xf50A81C771AD3237aeA2FD18E4ee8055CC4Cd2B9\"\n values.challengers.14:\n+ \"0xF6Ee30269dB1854987cA6812E1ff66c3A5F660Fd\"\n values.challengers.13:\n+ \"0xF2FF0509520fAf35B511074466A509e00d73C307\"\n values.challengers.12:\n+ \"0xC4db900F76293042349448D1Ba30F71518325Bb3\"\n values.challengers.11:\n+ \"0x8C0cFFcBAb44c7aB6e96EB607c49188dE99a17Cd\"\n values.challengers.10:\n+ \"0x6D7cC6C62CD6CcdaC482E82aA7A3763926e93854\"\n values.challengers.9:\n+ \"0xcA00091a35d0b546A15d000F8bCeDA56255EE4D0\"\n values.challengers.8:\n+ \"0xbfd62b7915da8c19C701FD13237b555Ad38C4b4C\"\n values.challengers.7:\n+ \"0x9Ac29D4f41A139D9b7be32C2906Df9f86FA51b2b\"\n values.challengers.6:\n+ \"0xbD9f4fdC48a9A8c7eA1075CFDf4F3bd365d50Bab\"\n values.challengers.5:\n+ \"0x74204e3801E9394848AbDBAd6f378d0b11e9a091\"\n values.challengers.4:\n+ \"0x323a78C1c910b282dE98a557d735628A02E00983\"\n values.challengers.3:\n+ \"0xd11f9c4F5d9b1feC2d14581d3674066442B68772\"\n values.challengers.2:\n+ \"0x95417708f67f4a5dF1A447efe40c6C74e38Ab832\"\n values.challengers.1:\n+ \"0x77B29534738E3F0F297d36635d7884965C7c8cE1\"\n }\n```"
}
]
},
{
"id": "a8175317",
"date": "Thu, 28 Nov 2024 10:07:52 GMT",
"timestamp": 1732788472,
"description": "Minor upgrade of MorphRollup introducing `committedStateRoots`, a mapping that delivers what it promises. Before there was only a finalizedStateRoots mapping.\n\nThis upgrade also adds back the require in `importGenesisBatch()` which prevents calling the function in case the genesis batch is already imported.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60) {\n +++ description: The main contract of the Morph chain. Allows to post transaction data and state roots, implements challenge mechanism along with proofs. Sequencing and proposing are behind a whitelist.\n sourceHashes.1:\n- \"0xb1afd290858bf0702793a7fd0a214fc9c1c0aa70ff5755193bdd20073e5d0ca1\"\n+ \"0x2b50f40d48451dfa5ae761371d1c0b18c8c827b34d17c401f629bc743888721e\"\n values.$implementation:\n- \"0x073403E147a8e607b80985fe458c0B527287278F\"\n+ \"0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A\"\n values.$pastUpgrades.3:\n+ [\"2024-11-28T03:51:59.000Z\",\"0xa452e20183f6860f105cb398bccc9d75dd3758444b956061b3031d1f0a33c424\",[\"0xaD900dB30Bcdf84c38Df0067eA327bbEccCF071A\"]]\n values.$upgradeCount:\n- 3\n+ 4\n }\n```"
}
]
},
{
"id": "901a501c",
"date": "Mon, 25 Nov 2024 10:45:45 GMT",
"timestamp": 1732531545,
"description": "EnforcedTxGateway paused after our nudge on twitter.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EnforcedTxGateway (0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7) {\n +++ description: None\n values.paused:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "c1c351fe",
"date": "Thu, 21 Nov 2024 12:08:57 GMT",
"timestamp": 1732190937,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 13,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract L1Staking (0x0Dc417F8AF88388737c5053FF73f345f080543F7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1ETHGateway (0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x31110622D6CA24c9FF307d6ae1715F16E47F16A0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1MessageQueueWithGasPriceOracle (0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardERC20Gateway (0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZkEvmVerifierV1 (0x6dAece7dFaE212b6A9F55c56FD3cf1462F44069e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1GatewayRouter (0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MorphRollup (0x759894Ced0e6af42c26668076Ffa84d02E3CeF60)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MultipleVersionRollupVerifier (0x87C1D0dAb8d96b69CB91f97F4135E3ed5A49DCF6)\n +++ description: Used to update the verifier and keep track of current and old versions.\n```\n\n```diff\n+ Status: CREATED\n contract MorphAdminMSig (0xB822319ab7848b7cC4537c8409e50f85BFb04377)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EnforcedTxGateway (0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Whitelist (0xFFafDd9167777C0e5421e0B6789D6d7A5E386984)\n +++ description: None\n```"
}
]
}
]
+3 -3
{
"clusteredEventCount": 31,
"contracts": [
{
"name": "Rollup",
"address": "eth:0x759894Ced0e6af42c26668076Ffa84d02E3CeF60",
"isVerified": true,
"ossifyingSince": 1790063675,
"codeChangeCount": 8,
"stateChangeCount": 6
},
{
"name": "MultipleVersionRollupVerifier",
"address": "eth:0x5d1584c27b4aD233283c6da1ca1B825d6f220EC1",
"isVerified": true,
"ossifyingSince": 1790063627,
"codeChangeCount": 0,
"stateChangeCount": 12
},
{
"name": "Submitter",
"address": "eth:0xf2d50000C994565A4742059802fdbb0BEE1CBef6",
"isVerified": true,
"ossifyingSince": 1789617215,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkEvmVerifierV1",
"address": "eth:0x651cA600813fC0126225b727EDbA617949b1d1c9",
"isVerified": true,
"ossifyingSince": 1789614347,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1CustomERC20Gateway",
"address": "eth:0xA534BAdd09b4C62B7B1C32C41dF310AA17b52ef1",
"isVerified": true,
"ossifyingSince": 1786502579,
"codeChangeCount": 0,
"stateChangeCount": 5
},
{
"name": "L1GatewayRouter",
"address": "eth:0x7497756ADA7e656aE9f00781aF49Fc0fD08f8A8a",
"isVerified": true,
"ossifyingSince": 1786502411,
"codeChangeCount": 0,
"stateChangeCount": 13
},
{
"name": "L1USDCGateway",
"address": "eth:0x2C8314f5AADa5D7a9D32eeFebFc43aCCAbe1b289",
"isVerified": true,
"ossifyingSince": 1785410867,
"codeChangeCount": 1,
"stateChangeCount": 2
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0xDc71366EFFA760804DCFC3EDF87fa2A6f1623304",
"isVerified": true,
"ossifyingSince": 1785410831,
"codeChangeCount": 1,
"stateChangeCount": 3
},
{
"name": "L1MessageQueueWithGasPriceOracle",
"address": "eth:0x3931Ade842F5BB8763164bDd81E5361DcE6cC1EF",
"isVerified": true,
"ossifyingSince": 1772517791,
"codeChangeCount": 2,
"stateChangeCount": 2
},
{
"name": "ProxyAdmin",
"address": "eth:0x31110622D6CA24c9FF307d6ae1715F16E47F16A0",
"isVerified": true,
"ossifyingSince": 1772103443,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "TimelockController",
"address": "eth:0x542675E90E269F20ecbb9e0095d4751ac155B530",
"isVerified": true,
"ossifyingSince": 1770779267,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x8654061457582c867B77A3a9f4ca714dFc84Ec17",
"isVerified": true,
"ossifyingSince": 1770779267,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Morph Multisig 2",
"address": "eth:0xB822319ab7848b7cC4537c8409e50f85BFb04377",
"isVerified": true,
"ossifyingSince": 1758698315,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "Morph Multisig 1",
"address": "eth:0xF101f7f59A348c1F971A2BC64fdBdA58c7bBD887",
"isVerified": true,
"ossifyingSince": 1758532307,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "L1USDCGatewayLegacy",
"address": "eth:0xc9045350712A1DCC3A74Eca18Bc985424Bbe7535",
"isVerified": true,
"ossifyingSince": 1730455703,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "EnforcedTxGateway",
"address": "eth:0xc5Fa3b8968c7FAbEeA2B530a20b88d0C2eD8abb7",
"isVerified": true,
"ossifyingSince": 1729765139,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "L1StandardERC20Gateway",
"address": "eth:0x44c28f61A5C2Dd24Fc71D7Df8E85e18af4ab2Bd8",
"isVerified": true,
"ossifyingSince": 1729765055,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L1ETHGateway",
"address": "eth:0x1C1Ffb5828c3A48B54E8910F1c75256a498aDE68",
"isVerified": true,
"ossifyingSince": 1729765043,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L1Staking",
"address": "eth:0x0Dc417F8AF88388737c5053FF73f345f080543F7",
"isVerified": true,
"ossifyingSince": 1729764983,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Whitelist",
"address": "eth:0xFFafDd9167777C0e5421e0B6789D6d7A5E386984",
"isVerified": true,
"ossifyingSince": 1729328435,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1729344671,
1729486715,
1729607387,
1729764527,
1730260763,
1730455703,
1731489851,
1731581219,
1731911627,
1732765919,
1733748707,
1733895167,
1735652267,
1736753519,
1737445727,
1747030703,
1756352015,
1758532307,
1758698315,
1763737343,
1764060695,
1768208819,
1772103443,
1772517791,
1774575251,
1774863407,
1775699999,
1779354407,
1780485971,
1785410831,
1786500551,
1790063627
],
"criticalChangesPerYear": 15.927634978469046,
"criticalChangesPerYear": 15.92763394047646,
"criticalUpdates": [
{
"id": "a9360a3b",
"type": "state"
},
{
"id": "e4a70468",
"type": "state"
},
{
"id": "4a92d411",
"type": "state"
},
{
"id": "83f3649a",
"type": "state"
},
{
"id": "e898e91e",
"type": "state"
},
{
"id": "1d922498",
"type": "state"
},
{
"id": "e59936ee",
"type": "state"
},
{
"id": "e1a5c3a0",
"type": "state"
},
{
"id": "6cd524c6",
"type": "state"
},
{
"id": "9e6da537",
"type": "state"
},
{
"id": "2ff16c37",
"type": "state"
},
{
"id": "171a57ae",
"type": "state"
},
{
"id": "98f2ec73",
"type": "state"
},
{
"id": "17fdba45",
"type": "state"
},
{
"id": "da922e8f",
"type": "state"
}
],
"lastCriticalChange": 1790063675,
"maturity": 0.31185395977222086,
"maturity": 0.3118542690025929,
"perimeterResets": [
1729306655,
1729486715,
1729598531,
1729764527,
1730260763,
1730455703,
1730976923,
1731486323,
1731581219,
1731911627,
1732765919,
1733748707,
1733895167,
1735652267,
1736753519,
1737359447,
1737455087,
1747030703,
1756352015,
1758532307,
1758698315,
1763737343,
1764060695,
1768208819,
1770779267,
1772103443,
1772517791,
1774575251,
1774863407,
1775699999,
1779354407,
1780485971,
1780914460,
1785410831,
1786500551,
1789614347,
1790063627
],
"projectClockStart": 1790063675,
"score": 31,
"windowSeconds": 61378604
"windowSeconds": 61378608
}
+1 -1
+1 -1
{
"clusteredEventCount": 22,
"contracts": [
{
"name": "L2CrossDomainMessenger",
"address": "oeth:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "oeth:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "oeth:0x4200000000000000000000000000000000000016",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ProxyAdmin",
"address": "oeth:0x4200000000000000000000000000000000000018",
"isVerified": true,
"ossifyingSince": 1783526401,
"codeChangeCount": 2,
"stateChangeCount": 1
},
{
"name": "DelayedWETH",
"address": "eth:0x1B6DBF05EaF22d4E70dC993e8a19dd9F3dcb3162",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0x229047fed2591dbec1eF1118d64F7aF3dB9EB290",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 11,
"stateChangeCount": 0
},
{
"name": "AnchorStateRegistry",
"address": "eth:0x23B2C62946350F4246f9f9D027e071f0264FD113",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 3,
"stateChangeCount": 1
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 11,
"stateChangeCount": 0
},
{
"name": "ETHLockbox",
"address": "eth:0x322b47Ff1FA8D5611F761e3E275C45B71b294D43",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "SuperchainConfig",
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "L1StandardBridge",
"address": "eth:0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 8,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0xbEb5Fc579115071764c7423A4f12eDde41f106Ed",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 10,
"stateChangeCount": 1
},
{
"name": "DisputeGameFactory",
"address": "eth:0xe5965Ab5962eDc7477C8520243A95517CD252fA9",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 6,
"stateChangeCount": 7
},
{
"name": "PreimageOracle",
"address": "eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "FaultDisputeGame",
"address": "eth:0x2DDA3584b51eF5236f7726Dea5A0FB6B3cA94AeC",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e",
"isVerified": true,
"ossifyingSince": 1778190599,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MintManagerOwner",
"address": "oeth:0x2A82Ae142b2e62Cb7D10b55E323ACB1Cab663a26",
"isVerified": true,
"ossifyingSince": 1775575311,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "SafeL2",
"address": "oeth:0x3F3Cd78Ef9Bd85961C0729E6BbB11E94Ca6f61D2",
"isVerified": true,
"ossifyingSince": 1770219757,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OpFoundationUpgradeSafe",
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"isVerified": true,
"ossifyingSince": 1769109083,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "SaferSafes",
"address": "oeth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"isVerified": true,
"ossifyingSince": 1764596903,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SaferSafes",
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"isVerified": true,
"ossifyingSince": 1764596735,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Optimism Guardian Multisig",
"address": "eth:0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2",
"isVerified": true,
"ossifyingSince": 1753380539,
"codeChangeCount": 0,
"stateChangeCount": 4
},
{
"name": "DeputyPauseModule",
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"isVerified": true,
"ossifyingSince": 1748963099,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Optimism Security Council",
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"isVerified": true,
"ossifyingSince": 1718045303,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "LivenessModule",
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SuperchainProxyAdmin",
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"isVerified": true,
"ossifyingSince": 1707514547,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "SuperchainProxyAdminOwner",
"address": "eth:0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A",
"isVerified": true,
"ossifyingSince": 1707420875,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0xdE1FCfB0851916CA5101820A69b13a4E276bd81F",
"isVerified": true,
"ossifyingSince": 1686075851,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "OPToken",
"address": "oeth:0x4200000000000000000000000000000000000042",
"isVerified": true,
"ossifyingSince": 1665503636,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "MintManager",
"address": "oeth:0x5C4e7Ba1E219E47948e6e3F55019A647bA501005",
"isVerified": true,
"ossifyingSince": 1665174739,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1665503636,
1686067127,
1696542003,
1707514547,
1708983851,
1712868599,
1718037779,
1720551167,
1726016099,
1733920163,
1736352527,
1737729695,
1743612623,
1745511383,
1746628403,
1753378247,
1759422923,
1764092795,
1765898063,
1769109083,
1770667859,
1775575311,
1782428747,
1783526401
],
"criticalChangesPerYear": 7.333333333333333,
"criticalUpdates": [
{
"id": "db0d2b31",
"type": "state"
},
{
"id": "34096a96",
"type": "code"
},
{
"id": "234c8021",
"type": "code"
},
{
"id": "aeff10bd",
"type": "state"
},
{
"id": "d86b3fe1",
"type": "state"
},
{
"id": "fd9b3eaa",
"type": "state"
},
{
"id": "62284543",
"type": "code"
},
{
"id": "24b38107",
"type": "code"
},
{
"id": "793e7ea6",
"type": "code"
},
{
"id": "9ecac755",
"type": "code"
},
{
"id": "5a491673",
"type": "code"
},
{
"id": "e7f01124",
"type": "code"
},
{
"id": "5871bec8",
"type": "state"
},
{
"id": "3de2546f",
"type": "state"
},
{
"id": "4bd2123b",
"type": "state"
},
{
"id": "60c3fc67",
"type": "code"
}
],
"lastCriticalChange": 1783526401,
"maturity": 0.6139812956812275,
"maturity": 0.6139813461933038,
"perimeterResets": [
1624400033,
1636665399,
1650712171,
1650979836,
1665174739,
1665503636,
1685377355,
1686067127,
1696542003,
1705954799,
1707420419,
1707514547,
1708983851,
1712868599,
1715887055,
1716902219,
1717149791,
1718037779,
1720551167,
1726016099,
1733920163,
1736352527,
1737729695,
1743612623,
1743758251,
1745511383,
1746628403,
1748963099,
1753378247,
1759422923,
1764092795,
1764322695,
1764596735,
1765898063,
1769109083,
1770219757,
1770667859,
1770912106,
1775575311,
1778190599,
1782428747,
1783526401
],
"projectClockStart": 1783526401,
"score": 61,
"windowSeconds": 94608000
}
+5 -19
+1 -1
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471",
"type": "EOA",
"isVerified": true,
"name": "0x34Da…f471",
"url": "https://etherscan.io/address/0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+3 -17
{
"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": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0xb1714954bBc0162A36FB44934F3216aCE81C40d7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740743363,
"transactionHash": "0x351a86bec0a58f513f88024a6a845b25bce736ed78da4ef1c7cda90a717dd61e",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1777640915,
"transactionHash": "0x5ec0f7293eb1ef1149a55aea2a4845d0b905fd808ffa05cd7f949c7ff2ed86e2",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"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**: AgglayerManager, EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"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": "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": "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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+21 -7
+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 upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": 0
},
"sequencerFailure": {
"value": "Decentralized Sequencer Set",
"sentiment": "warning",
"description": "Although there is a sequencer set of 105 (called validators), if the cap of 105 is reached, no new stakers can join. A minimum of 100,000 POL stake is required to obtain block production rights. There is no specific censorship resistance mechanism against selective censorship by parts of the active validator set nor a way to force transactions from Ethereum L1. The canonical bridge between Polygon PoS and Ethereum allows for queuing transactions from the Ethereum and Polygon PoS sides, which cannot be skipped, except for halting the queue entirely."
"description": "Although there is a sequencer set of 104 (called validators), if the cap of 105 is reached, no new stakers can join. A minimum of 100,000 POL stake is required to obtain block production rights. There is no specific censorship resistance mechanism against selective censorship by parts of the active validator set nor a way to force transactions from Ethereum L1. The canonical bridge between Polygon PoS and Ethereum allows for queuing transactions from the Ethereum and Polygon PoS sides, which cannot be skipped, except for halting the queue entirely."
},
"proposerFailure": {
"value": "Cannot withdraw",
"description": "The PoS network is composed of 105 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 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.",
"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": "105 validators",
"value": "104 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"
}
}
]
+3 -3
{
"otherConsiderations": [
{
"name": "Destination tokens are upgradeable",
"description": "Tokens transferred end up as wrapped ERC20 proxies, some of them are upgradable. The contract is named UChildERC20Proxy.",
"references": [],
"risks": [
{
"category": "Funds can be stolen if",
"text": "destination token contract is maliciously upgraded."
}
],
"isIncomplete": true
}
],
"sequencing": {
"name": "Transactions are ordered by Polygon PoS validators",
"description": "Polygon PoS is operated by a closed proof-of-stake validator set with 105 active validators. Block production rights are given to validators randomly (stake-weighted) for the duration of a *span*. In practice, validators delegate the block production further to centralised validator-elected block producers (VeBloPs). Ethereum smart contracts accept checkpoints signed by more than two thirds of Polygon PoS validator stake.",
"description": "Polygon PoS is operated by a closed proof-of-stake validator set with 104 active validators. Block production rights are given to validators randomly (stake-weighted) for the duration of a *span*. In practice, validators delegate the block production further to centralised validator-elected block producers (VeBloPs). Ethereum smart contracts accept checkpoints signed by more than two thirds of Polygon PoS validator stake.",
"sequencingSpec": {
"type": "sequencer-set",
"blockTime": {
"value": "2s"
},
"proposerRotationTime": {
"value": "3h 33m",
"description": "Randomly sampled validators delegate block production for the duration of a span: 6400 blocks"
},
"sequencerCount": {
"value": "105 validators",
"value": "104 validators",
"secondLine": "3.56 B POL"
},
"blockProductionAccess": {
"value": "Closed and capped",
"sentiment": "bad",
"description": "The current validator cap is 105. Joining the set is permissioned (Multisig)."
},
"stakePerValidator": {
"value": "100,000 POL minimum, variable",
"description": "stake-weighted block production rights, no maximum"
},
"rateLimit": {
"value": "No (permissioned)"
},
"deterministicCrGadget": {
"value": "No",
"sentiment": "warning"
},
"additionalCrGadgets": {
"value": "No",
"sentiment": "bad"
},
"inclusionDelayChart": {
"type": "spanlike",
"validatorCount": 105,
"validatorCount": 104,
"spanBlocks": 6400,
"blockSeconds": 2,
"target": 0.99,
"maxCensorFraction": 0.33,
"stakeDistribution": {
"stakeToken": "POL",
"dateType": "fetched",
"date": "2026-08-06T08:48:58.389Z",
"validatorCount": 105,
"totalStake": 3568595994,
"entities": [
{
"name": "Upbit Staking",
"stake": 417333126
},
{
"name": "Coinbase",
"stake": 367924777
},
{
"name": "Luganodes",
"stake": 257764644
},
{
"name": "Anonymous 194",
"stake": 245101958
},
{
"name": "Binance Node",
"stake": 228831375
},
{
"name": "Figment",
"stake": 226258957
},
{
"name": "Matic Power",
"stake": 207786330
},
{
"name": "Blockdaemon",
"stake": 181198908
},
{
"name": "Kraken",
"stake": 164408175
},
{
"name": "Anonymous 95",
"stake": 150542747
}
]
}
},
"inclusionDelayChartDescription": "The chart models live-chain selective censorship only. Since proposing is stake-weighted, the x-axis represents the censoring POL stake, and does not cover validator-set changes, or blanket-censorship resistance gadgets."
},
"censorshipResistance": "The validator set (on Polygon PoS, validators are both proposers and sequencers) is closed and capped, but includes a diverse set of known entities who share block production rights. There are no specific censorship resistance gadgets built into the protocol.\n### Selective censorship\nAs long as the Polygon PoS blockchain is producing blocks, users can expect to include their transactions due to the rotating, diverse block producers, even if they are censored by some of them. Unfortunately, the rotation is very slow (see *span* time) and even just a few entities censoring can cause long inclusion delays.\n### Blanket censorship\nValidators holding more than 1/3 of Polygon PoS stake among them can censor users if they actively refuse to attest to blocks with their transactions. Polygon Multisig controls the core smart contracts on Ethereum and can administer the validator set (including malicious changes) as a consequence.\n### Walkaway\nIf validators holding more than 1/3 of the stake on Polygon PoS stop block production, the chain stops and there is no way for users to include any transactions. As the validator set is currently closed by a permissioned smart contract setting on ethereum, walkaway of the permissioned actor would require social coordination and a hard fork to progress the chain.",
"references": [
{
"title": "Polygon PoS architecture documentation",
"url": "https://docs.polygon.technology/pos/architecture/"
}
],
"risks": [
{
"category": "Users can be censored if",
"text": "the active span proposer censors them, or if at least one third of Polygon PoS stake refuses to attest blocks that include their transactions."
}
]
},
"stateValidation": {
"categories": [
{
"title": "No state validation",
"description": "State updates are settled on Ethereum if signed by at least 2/3+1 of the Polygon PoS validators stake. Contracts on Ethereum do not check whether the state transitions are valid.",
"references": [],
"risks": [
{
"category": "Users can be censored if",
"text": "validators on Polygon decide to not mint tokens after observing an event on Ethereum."
},
{
"category": "Funds can be stolen if",
"text": "validators decide to mint more tokens than there are locked on Ethereum thus preventing some existing holders from being able to bring their funds back to Ethereum."
},
{
"category": "Funds can be stolen if",
"text": "validators submit a fraudulent checkpoint allowing themselves to withdraw all locked funds."
}
]
}
]
}
}
+1 -1
{
"baseTimestamp": 1789472720,
"baseTimestamp": 1790851314,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "b4dad704",
"date": "Thu, 01 Oct 2026 11:10:42 GMT",
"timestamp": 1790851314,
"description": "StakeManager `CHECKPOINT_REWARD` raised by the PolygonMultisig (via Governance) from ~25,213 to 64,500 POL per checkpoint (tx 0x2f5cad77ffd2601301287b7644cea34fe0d5b5424e620791c2aff83db484ae2c). The active validator set shrank from 105 to 104.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.CHECKPOINT_REWARD:\n- \"25212785388127853881278\"\n+ \"64500000000000000000000\"\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "8890dcf7",
"date": "Tue, 15 Sep 2026 11:46:43 GMT",
"timestamp": 1789472720,
"description": "MS signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0x1319279d6d54dB0883F7bAF822191c7184Db0c3d\"\n+ \"eth:0x28260fD38F737e98F1599eCd385d4eB13C5A7A1f\"\n }\n```"
}
]
},
{
"id": "e22bba33",
"date": "Wed, 29 Jul 2026 11:43:14 GMT",
"timestamp": 1785325317,
"description": "Two members were removed from the Safe that holds the Polygon RootChainManager's token-mapping role. The threshold remains 4, leaving a 4-of-12 Safe instead of 4-of-14.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) [GnosisSafe] {\n +++ description: None\n values.$members.7:\n- \"eth:0xF045025C845E786E343Df30cC6f67ec6BB822b34\"\n values.$members.9:\n- \"eth:0xe76c5A6DA94Ed348a80869f26eBd0e5e082664b9\"\n values.multisigThreshold:\n- \"4 of 14 (29%)\"\n+ \"4 of 12 (33%)\"\n }\n```"
}
]
},
{
"id": "bdb91f5f",
"date": "Thu, 23 Jul 2026 14:08:13 GMT",
"timestamp": 1784815601,
"description": "Two signers were rotated in one Safe. The Polygon Labs Engineering/Security Multisig rotated one signer and removed another, while the validator set grew from 102 to 105 (max).",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x2100482bc290716DE46e38046EeD343cfb1aC740\"\n values.$members.1:\n+ \"eth:0x61Cb29AF9E503f0e2d88717f388931f1d10DE768\"\n values.$members.5:\n- \"eth:0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4\"\n values.$members.8:\n- \"eth:0x6624307a4f672ec5C289fBA196952902BB518dc0\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.currentValidatorSetSize:\n- 102\n+ 105\n }\n```\n\n```diff\n contract Polygon Labs Engineering/Security Multisig (eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"eth:0xe0e8e6bBDef7bbcf8dF1F5Ac0ab9906BFe991d8B\"\n+ \"eth:0xFB2a738AE435610354b132c4a4ee647558f663eb\"\n values.$members.6:\n- \"eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2\"\n values.multisigThreshold:\n- \"2 of 8 (25%)\"\n+ \"2 of 7 (29%)\"\n }\n```"
}
]
},
{
"id": "2e80391b",
"date": "Tue, 21 Jul 2026 08:56:45 GMT",
"timestamp": 1784624105,
"description": "Add 4 signers to Multisig.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x9f02595fBFD199C4cBC02878fc9B2b2E07b0840C\"\n values.$members.1:\n+ \"eth:0x1319279d6d54dB0883F7bAF822191c7184Db0c3d\"\n values.$members.2:\n+ \"eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890\"\n values.$members.3:\n+ \"eth:0x573D7a729cfcF20B81D70732d625Ae31549B8b91\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 14 (29%)\"\n }\n```"
}
]
},
{
"id": "dee707e6",
"date": "Fri, 17 Jul 2026 07:50:25 GMT",
"timestamp": 1784274549,
"description": "Vali added, signer rotated.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0x6c20ea7778EA9F3Afd74Ce4538bc4D9d61E6ABb1\"\n+ \"eth:0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.currentValidatorSetSize:\n- 101\n+ 102\n }\n```"
}
]
},
{
"id": "fd0bd985",
"date": "Thu, 25 Jun 2026 12:43:40 GMT",
"timestamp": 1782391177,
"description": "Activate [Zurich hardfork](https://github.com/0xPolygon/heimdall-v2/releases/tag/v0.9.0) with new heimdall id `heimdallv2-137`.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.currentValidatorSetSize:\n- 102\n+ 101\n }\n```\n\n```diff\n contract RootChain (eth:0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287) [polygonposbridge/RootChain] {\n +++ description: Contract storing chain checkpoints. Note that validity of these checkpoints is not verified, it is assumed to be valid if signed by 2/3 of the validators.\n+++ description: Fork identifier for the heimdall state bridge to bor (polygon execution). Changes with hard forks.\n values.heimdallId:\n- \"0x7e10229e6df5851dc336f813dde0cf6559cd517f9ff1980e2e57e192ba3a2329\"\n+ \"0xd982b078cdb2c4f7afb14b52c5127dd9206472cebd6e13a45f50c113cb9401af\"\n }\n```"
}
]
},
{
"id": "f34d92a7",
"date": "Tue, 16 Jun 2026 10:02:11 GMT",
"timestamp": 1781604054,
"description": "3 valis removed: vali set is open to join with min stake.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.CHECKPOINT_REWARD:\n- \"29414916286149162861491\"\n+ \"25212785388127853881278\"\n values.currentValidatorSetSize:\n- 105\n+ 102\n }\n```"
}
]
},
{
"id": "56c00a99",
"date": "Tue, 02 Jun 2026 13:22:27 GMT",
"timestamp": 1780406469,
"description": "Vali added, cap hit (validator set closed).",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [polygon-pos/StakeManager] {\n +++ description: Manages the Polygon PoS validator set.\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```\n\n```diff\n contract Polygon Labs Engineering/Security Multisig (eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2\"\n values.$members.1:\n+ \"eth:0xe0e8e6bBDef7bbcf8dF1F5Ac0ab9906BFe991d8B\"\n values.$members.2:\n+ \"eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890\"\n values.multisigThreshold:\n- \"2 of 5 (40%)\"\n+ \"2 of 8 (25%)\"\n }\n```"
}
]
},
{
"id": "d5ab965f",
"date": "Thu, 28 May 2026 10:20:54 GMT",
"timestamp": 1779963546,
"description": "vali added (permissioned).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [N/A] {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 104\n }\n```"
}
]
},
{
"id": "7a7f56c8",
"date": "Wed, 13 May 2026 13:45:05 GMT",
"timestamp": 1778679802,
"description": "adjust staking reward.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) [N/A] {\n +++ description: None\n values.CHECKPOINT_REWARD:\n- \"34695980000000000000000\"\n+ \"29414916286149162861491\"\n }\n```"
}
]
},
{
"id": "a1d67fda",
"date": "Tue, 05 May 2026 06:55:33 GMT",
"timestamp": 1777964012,
"description": "formatting and minimal refactor for the ERC20PredicateBurnOnly: https://disco.l2beat.com/diff/eth:0x626fb210bf50e201ED62cA2705c16DE2a53DC966/eth:0x4EeA1780c06709D7FA0BCaA6D0f1aB29673586c0 .",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Registry (eth:0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: Maintains the addresses of the contracts used in the system, part of the old 'plasma bridge'.\n values.erc20Predicate:\n- \"eth:0x626fb210bf50e201ED62cA2705c16DE2a53DC966\"\n+ \"eth:0x4EeA1780c06709D7FA0BCaA6D0f1aB29673586c0\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 103\n }\n```\n\n```diff\n- Status: DELETED\n contract ERC20PredicateBurnOnly (eth:0x626fb210bf50e201ED62cA2705c16DE2a53DC966)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20PredicateBurnOnly (eth:0x4EeA1780c06709D7FA0BCaA6D0f1aB29673586c0)\n +++ description: None\n```"
}
]
},
{
"id": "051d5ae3",
"date": "Wed, 22 Apr 2026 13:57:02 GMT",
"timestamp": 1776866125,
"description": "vali removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "4c972992",
"date": "Tue, 07 Apr 2026 11:33:16 GMT",
"timestamp": 1775561522,
"description": "New validator.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "9301cdc3",
"date": "Tue, 24 Mar 2026 12:02:24 GMT",
"timestamp": 1774353663,
"description": "vali removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "b5df338d",
"date": "Mon, 02 Mar 2026 14:27:55 GMT",
"timestamp": 1772461597,
"description": "ms changes, new validatorShare address.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StateSender (eth:0x28e4F3a7f651294B9564800b2D01f35189A5bFbE) {\n +++ description: Smart contract allowing whitelisted addresses to send messages to contracts on the child chain.\n values.REGISTRATIONS.9:\n+ \"eth:0x0356e303B375D5a11D9Eb7d57DBF544FeE6972C9\"\n }\n```\n\n```diff\n contract Registry (eth:0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: Maintains the addresses of the contracts used in the system, part of the old 'plasma bridge'.\n values.getValidatorShareAddress:\n- \"eth:0xFB3a3A64E12FA787a6b709BF57834bdAD958d797\"\n+ \"eth:0xBe63B977ABBAA99fC0243e208340c530Dd4ee9E8\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n values.$members.1:\n- \"eth:0xEad77b01ea770839F7f576Cd1516Ff6A298d9dB2\"\n+ \"eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72\"\n values.$members.2:\n- \"eth:0xAb76AE6926371B82Af3652cCBABefBBA56270adC\"\n+ \"eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B\"\n values.$members.3:\n- \"eth:0xAb3506507449bF1880f3337825efd19ac89E235E\"\n+ \"eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC\"\n values.$members.4:\n- \"eth:0xcAB31b6A7b4d2eCd562A09e2BfA46535a18862f9\"\n+ \"eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5\"\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"2 of 5 (40%)\"\n }\n```"
}
]
},
{
"id": "b4b2fb9e",
"date": "Thu, 26 Feb 2026 06:55:31 GMT",
"timestamp": 1772088852,
"description": "vali added, rewards decrease by 6.5%.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.CHECKPOINT_REWARD:\n- \"37108000000000000000000\"\n+ \"34695980000000000000000\"\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "a8a91ae5",
"date": "Mon, 16 Feb 2026 14:58:30 GMT",
"timestamp": 1771253818,
"description": "vali removo.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "d86784f1",
"date": "Wed, 11 Feb 2026 13:19:17 GMT",
"timestamp": 1770815888,
"description": "vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "98ffff2c",
"date": "Wed, 28 Jan 2026 13:28:40 GMT",
"timestamp": 1769606705,
"description": "add mappings for tokens via pos- / and plasma bridge (used in polygon interop plugin).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "af87123b",
"date": "Wed, 21 Jan 2026 12:56:10 GMT",
"timestamp": 1769000103,
"description": "ms change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) {\n +++ description: None\n values.$members.4:\n- \"eth:0xfd5E854b73a239c9052d89C53D1313f5AfB860ac\"\n+ \"eth:0x6624307a4f672ec5C289fBA196952902BB518dc0\"\n }\n```"
}
]
},
{
"id": "b7493110",
"date": "Mon, 19 Jan 2026 10:41:47 GMT",
"timestamp": 1768817836,
"description": "Upgrade of the ValidatorShare contract (the contract that implements the delegation token for each validator):\n- validator share tokens (dPOL___) are now transferable",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Registry (eth:0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: None\n values.getValidatorShareAddress:\n- \"eth:0x7e94d6cAbb20114b22a088d828772645f68CC67B\"\n+ \"eth:0xFB3a3A64E12FA787a6b709BF57834bdAD958d797\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.minDeposit:\n- \"1000000000000000000\"\n+ \"100000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ValidatorShare (eth:0x7e94d6cAbb20114b22a088d828772645f68CC67B)\n +++ description: None\n```\n\n```diff\n contract PolygonMultisig (eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n values.$members.7:\n- \"eth:0x06f2caFB5276B11bAA6679ABE49D5A5C0A911f5B\"\n+ \"eth:0xdA66Df3920091eF4B54782B9463587c314DAdD41\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShare (eth:0xFB3a3A64E12FA787a6b709BF57834bdAD958d797)\n +++ description: None\n```"
}
]
},
{
"id": "6b0bdee7",
"date": "Wed, 14 Jan 2026 06:29:46 GMT",
"timestamp": 1768372119,
"description": "Two members added to mapper multisig, vali added.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x6c20ea7778EA9F3Afd74Ce4538bc4D9d61E6ABb1\"\n values.$members.1:\n+ \"eth:0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4\"\n values.multisigThreshold:\n- \"4 of 8 (50%)\"\n+ \"4 of 10 (40%)\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "64d52d19",
"date": "Wed, 07 Jan 2026 14:42:22 GMT",
"timestamp": 1767796862,
"description": "vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 104\n }\n```"
}
]
},
{
"id": "1922ce8e",
"date": "Mon, 29 Dec 2025 11:33:00 GMT",
"timestamp": 1767007913,
"description": "Added validator.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 103\n }\n```"
}
]
},
{
"id": "843363c8",
"date": "Mon, 22 Dec 2025 13:17:11 GMT",
"timestamp": 1766409364,
"description": "+1 vali.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 104\n }\n```"
}
]
},
{
"id": "4c35613e",
"date": "Mon, 15 Dec 2025 07:39:04 GMT",
"timestamp": 1765784278,
"description": "sub ms change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n values.$members.2:\n- \"eth:0x54c401eD03D086fE13221E5422165f3b024265d9\"\n+ \"eth:0xAb76AE6926371B82Af3652cCBABefBBA56270adC\"\n }\n```"
}
]
},
{
"id": "ebc0fa99",
"date": "Tue, 09 Dec 2025 11:49:51 GMT",
"timestamp": 1765280918,
"description": "vali removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 103\n }\n```"
}
]
},
{
"id": "bc768be5",
"date": "Mon, 24 Nov 2025 12:30:58 GMT",
"timestamp": 1763987381,
"description": "vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "1ac77900",
"date": "Tue, 28 Oct 2025 09:18:05 GMT",
"timestamp": 1761643008,
"description": "vali rm.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "500bf5e7",
"date": "Tue, 21 Oct 2025 15:21:26 GMT",
"timestamp": 1761060009,
"description": "multisig member change.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xF045025C845E786E343Df30cC6f67ec6BB822b34\"\n values.$members.6:\n- \"eth:0x4Fb38Ca1b96f8694229486636cabe029BdcdbBe7\"\n }\n```"
}
]
},
{
"id": "c99fb2ba",
"date": "Wed, 15 Oct 2025 13:58:15 GMT",
"timestamp": 1760536617,
"description": "vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "536fd115",
"date": "Thu, 25 Sep 2025 12:25:32 GMT",
"timestamp": 1758802148,
"description": "vali removed.\n\nconfig: added act permission in the governance contract.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "0b694746",
"date": "Mon, 22 Sep 2025 10:39:57 GMT",
"timestamp": 1758537508,
"description": "one vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "75ea1b79",
"date": "Thu, 04 Sep 2025 14:18:29 GMT",
"timestamp": 1756995439,
"description": "- [ERC20Predicate](https://disco.l2beat.com/diff/eth:0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB/eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6): added a `migrateTokens` function that can be called by managers. [Here](https://app.blocksec.com/explorer/tx/eth/0x3b4c28808336605520ed240fee7ef8e7dd2cfd0f0509082cd9c099fd60c6e0f1) an example of a migration of a token (USDT). By looking at the example, a \"migration\" in this context means moving out funds from the bridge through an arbitrary call to the token contract, with the goal of migrating canonical tokens to a an external or native version.\n- The ERC20Predicate manager is the \"RootChainManager\" contract, so its implementation has been updated as well to allow for token migration. Upgrade [here](https://disco.l2beat.com/diff/eth:0x639f13D5f30B47c792b6851238c05D0b623C77DE/eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa). A \"migration manager\" role has been added. Only USDT can be migrated as it is hardcoded and the `updateTokenMigrationStatus` function checks that the `rootToken` is USDT. The migrator is ofc the PolygonMultisig.",
"isHighSeverity": true,
"changeCount": 23,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ERC20Predicate (eth:0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf) {\n +++ description: None\n sourceHashes.1:\n- \"0xdb2c7a7688883aa90817563334c9613daee6ccad8d086ff273d6b484340444ab\"\n+ \"0xf159b16a5d3a5070602bdcce59b317b67354f3e0daade4bd67d39fc4b7e11476\"\n values.$implementation:\n- \"eth:0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB\"\n+ \"eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6\"\n values.$pastUpgrades.4:\n+ [\"2025-08-26T13:11:11.000Z\",\"0xfd9678899c41baea6024682e80529ab4971f2ec9c3a36bd074d15e7a3a095718\",[\"eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.implementation:\n- \"eth:0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB\"\n+ \"eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6\"\n implementationNames.eth:0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB:\n- \"ERC20Predicate\"\n implementationNames.eth:0x1F4c1E0afBeb5b5B86d7722549274434b29884F6:\n+ \"ERC20Predicate\"\n }\n```\n\n```diff\n contract StakeManager (eth:0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```\n\n```diff\n contract RootChainManager (eth:0xA0c68C638235ee32657e8f720a23ceC1bFc77C77) {\n +++ description: None\n template:\n- \"polygonposbridge/RootChainManager\"\n+ \"polygonposbridge/RootChainManagerMigrator\"\n sourceHashes.1:\n- \"0x0f4d3951fb826a28e98a0923400b0173d459b26141d47b08227689849ce11141\"\n+ \"0x4d461641f48e1fc41d08d5f5672126575c15044e75679ad3abcd25a23d4575d1\"\n description:\n- \"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.\"\n values.$implementation:\n- \"eth:0x639f13D5f30B47c792b6851238c05D0b623C77DE\"\n+ \"eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa\"\n values.$pastUpgrades.12:\n+ [\"2025-08-26T13:11:11.000Z\",\"0xfd9678899c41baea6024682e80529ab4971f2ec9c3a36bd074d15e7a3a095718\",[\"eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa\"]]\n values.$upgradeCount:\n- 12\n+ 13\n values.implementation:\n- \"eth:0x639f13D5f30B47c792b6851238c05D0b623C77DE\"\n+ \"eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"]},\"MAPPER_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\",\"eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4\"]},\"MIGRATION_MANAGER_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"]}}\n values.MIGRATION_MANAGER_ROLE:\n+ \"0x739a51874800ca2ea551f6738888eda63da7b0ffed906ab18243498239604e96\"\n values.migrator:\n+ [\"eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"]\n values.USDT_ADDRESS:\n+ \"eth:0xdAC17F958D2ee523a2206206994597C13D831ec7\"\n implementationNames.eth:0x639f13D5f30B47c792b6851238c05D0b623C77DE:\n- \"RootChainManager\"\n implementationNames.eth:0xF0235dCa8fb0D3999685724dCBB9DD00c5d62DFa:\n+ \"RootChainManager\"\n }\n```\n\n```diff\n contract PolygonMultisig (eth:0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xA0c68C638235ee32657e8f720a23ceC1bFc77C77\",\"description\":\"can migrate the canonically bridged USDT token to a native or external version.\",\"role\":\".migrator\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x424bDE99FCfB68c5a1218fd3215caFfD031f19C4)\n +++ description: None\n```"
}
]
},
{
"id": "ca37bde6",
"date": "Mon, 25 Aug 2025 13:11:30 GMT",
"timestamp": 1756124354,
"description": "Upgraded to Safe v1.4.1",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n sourceHashes.1:\n- \"0xd42bbf9f7dcd3720a7fc6bdc6edfdfae8800a37d6dd4decfa0ef6ca4a2e88940\"\n+ \"0x7d388119a66f3eae147d748f86136f073d907d6b36f7e87e9363c4c7a2899a8a\"\n values.$implementation:\n- \"eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n+ \"eth:0x41675C099F32341bf84BFc5382aF534df5C7461a\"\n values.VERSION:\n- \"1.3.0\"\n+ \"1.4.1\"\n implementationNames.eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552:\n- \"GnosisSafe\"\n implementationNames.eth:0x41675C099F32341bf84BFc5382aF534df5C7461a:\n+ \"Safe\"\n }\n```"
}
]
},
{
"id": "eb491a9a",
"date": "Wed, 20 Aug 2025 11:58:05 GMT",
"timestamp": 1755691047,
"description": "Increased validator set to 105.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "0fa04ca7",
"date": "Tue, 12 Aug 2025 14:56:55 GMT",
"timestamp": 1755010596,
"description": "vali set +1.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 104\n }\n```"
}
]
},
{
"id": "242e37fa",
"date": "Wed, 06 Aug 2025 12:20:02 GMT",
"timestamp": 1754482796,
"description": "polygon multisig members rotated.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n values.$members.0:\n- \"eth:0xA7499Aa6464c078EeB940da2fc95C6aCd010c3Cc\"\n+ \"eth:0xAB4045C93e4eFFa9b325F706C9a690Ed00d08958\"\n values.$members.2:\n- \"eth:0x0D2600C228D9Bcc9757B64bBb232F86A912B7b03\"\n+ \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n values.$members.3:\n- \"eth:0xD0FD9303fe99EdFAF5eD4A2c1657a347d8053C9a\"\n+ \"eth:0x342EBaca3ACC54d6f5Ee78073FeC4af07f42B94e\"\n values.$members.6:\n- \"eth:0x803B74766D8f79195D4DaeCF6f2aac31Dba78F25\"\n+ \"eth:0x10cb290Fc4a5473460572ECF67B4C0cf06Da99A3\"\n values.$members.7:\n- \"eth:0x80D63799b1e08a80f73FB7a83264b5c31600bF3a\"\n+ \"eth:0x06f2caFB5276B11bAA6679ABE49D5A5C0A911f5B\"\n values.$members.8:\n- \"eth:0x8Eab5aEfe2755E1bAD2052944Ea096AEbdA1d602\"\n+ \"eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Katana Foundation Engineering/Security Multisig (0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Polygon Labs Engineering/Security Multisig (0x9d851f8b8751c5FbC09b9E74E6e68E9950949052)\n +++ description: None\n```"
}
]
},
{
"id": "2f1bf5e4",
"date": "Tue, 15 Jul 2025 10:46:55 GMT",
"timestamp": 1752576415,
"description": "validator checkpoint reward decreased, 1 vali added.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.CHECKPOINT_REWARD:\n- \"53870967741900000000000\"\n+ \"37108000000000000000000\"\n values.currentValidatorSetSize:\n- 102\n+ 103\n }\n```"
}
]
},
{
"id": "60d5cb46",
"date": "Mon, 14 Jul 2025 12:45:56 GMT",
"timestamp": 1752497156,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 34,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ERC1155Predicate (0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CustomPredicate (0x10ebE6EC94922F1c213E4C363C3BB66D4A9E9d35)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20EscrowPredicate (0x21ada4D8A799c4b0ADF100eB597a6f1321bCD3E4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StateSender (0x28e4F3a7f651294B9564800b2D01f35189A5bFbE)\n +++ description: Smart contract allowing whitelisted addresses to send messages to contracts on the child chain.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawManager (0x2A88696e0fFA76bAA1338F2C74497cC013495922)\n +++ description: Contract handling users’ withdrawal finalization for tokens escrowed in DepositManager.\n```\n\n```diff\n+ Status: CREATED\n contract MintableERC1155Predicate (0x2d641867411650cd05dB93B59964536b1ED5b1B7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC721PredicateBurnOnly (0x36C2503d53C6948331144b85D1e74a3B96731d1b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DepositManager (0x401F6c983eA34274ec46f84D70b31C151321188b)\n +++ description: Contract to deposit and escrow ETH, ERC20 or ERC721 tokens.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Predicate (0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PolygonERC20MintBurnPredicate (0x436f5Ba0DCf22f991475fC7A6DE75DAAE2f40cB5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingNFT (0x47Cbe25BbDB40a774cC37E1dA92d10C2C7Ec897F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RootChainInitialImplementation (0x5A09cD4601b66bc107D377AB81E0dbb5dFABaA84)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20PredicateBurnOnly (0x626fb210bf50e201ED62cA2705c16DE2a53DC966)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EventsHub (0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Governance (0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48)\n +++ description: Simple contract that allows the owner to call an `update` function on arbitrary contracts.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShare (0x7e94d6cAbb20114b22a088d828772645f68CC67B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EtherPredicate (0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RootChain (0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287)\n +++ description: Contract storing chain checkpoints. Note that validity of these checkpoints is not verified, it is assumed to be valid if signed by 2/3 of the validators.\n```\n\n```diff\n+ Status: CREATED\n contract MintableERC721Predicate (0x932532aA4c0174b8453839A6E44eE09Cc615F2b7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MintableERC20Predicate (0x9923263fA127b3d1484cFD649df8f1831c2A74e4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RootChainManager (0xA0c68C638235ee32657e8f720a23ceC1bFc77C77)\n +++ 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.\n```\n\n```diff\n+ Status: CREATED\n contract MaticWETH (0xa45b966996374E9e65ab991C6FE4Bfce3a56DDe8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingInfo (0xa59C847Bd5aC0172Ff4FE912C5d29E5A71A7512B)\n +++ description: Contains logging and getter functions about staking.\n```\n\n```diff\n+ Status: CREATED\n contract MerklePatriciaProof (0xA6FA4fB5f76172d178d61B04b0ecd319C5d1C0aa)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShareFactory (0xc4FA447A0e77Eff9717b09C057B40570813bb642)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Timelock (0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0xD9c7C4ED4B66858301D0cb28Cc88bf655Fe34861)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ChainExitERC1155Predicate (0xDB2382413bCb9c2F1B6b62B52238558266361D68)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ExitNFT (0xDF74156420Bd57ab387B195ed81EcA36F9fABAca)\n +++ description: NFTs used to represent a withdrawal in the withdrawal PriorityQueue (Only used for tokens initially deposited via DepositManager).\n```\n\n```diff\n+ Status: CREATED\n contract ERC721Predicate (0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakeManagerExtension (0xef49Ea6996073752b6840CDA34773FFA78F78166)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c)\n +++ description: None\n```"
}
]
},
{
"id": "ffe0503b",
"date": "Mon, 07 Jul 2025 06:52:33 GMT",
"timestamp": 1751871153,
"description": "minus 1 vali.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 102\n }\n```"
}
]
},
{
"id": "cf4b55fd",
"date": "Mon, 23 Jun 2025 15:16:53 GMT",
"timestamp": 1750691813,
"description": "-1 vali.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 103\n }\n```"
}
]
},
{
"id": "fc59667f",
"date": "Wed, 18 Jun 2025 11:34:58 GMT",
"timestamp": 1750246498,
"description": "vali removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "a811b346",
"date": "Mon, 02 Jun 2025 08:08:59 GMT",
"timestamp": 1748851739,
"description": "+1 polygon pos validator.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "30fbeccb",
"date": "Fri, 30 May 2025 05:40:38 GMT",
"timestamp": 1748583638,
"description": "vali removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "44affad7",
"date": "Tue, 25 Mar 2025 11:04:26 GMT",
"timestamp": 1742900666,
"description": "One validator added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 103\n+ 105\n }\n```"
}
]
},
{
"id": "a86746dc",
"date": "Fri, 21 Mar 2025 10:21:12 GMT",
"timestamp": 1742552472,
"description": "validator removed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 103\n }\n```"
}
]
},
{
"id": "387c47b4",
"date": "Mon, 10 Mar 2025 16:49:34 GMT",
"timestamp": 1741625374,
"description": "Validator set -1.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "19f3c42c",
"date": "Mon, 20 Jan 2025 11:46:57 GMT",
"timestamp": 1737373617,
"description": "Vali added.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 104\n+ 105\n }\n```"
}
]
},
{
"id": "f26eb82a",
"date": "Mon, 23 Dec 2024 13:21:40 GMT",
"timestamp": 1734960100,
"description": "Slashing Manager reference removed (the contract was unverified and unused).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract SlashingManager (0x01F645DcD6C796F6BC6C982159B32fAaaebdC96A)\n +++ description: None\n```\n\n```diff\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: None\n values.getSlashingManagerAddress:\n- \"0x01F645DcD6C796F6BC6C982159B32fAaaebdC96A\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.currentValidatorSetSize:\n- 105\n+ 104\n }\n```"
}
]
},
{
"id": "09e7e434",
"date": "Tue, 05 Nov 2024 14:19:22 GMT",
"timestamp": 1730816362,
"description": "Minor patch upgrade. Removes `drainValidatorShares()` and `drain()` permissioned functions from the StakeManager, the rest are lib changes.",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract ValidatorShare (0x053FA9b934b83E1E0ffc7e98a41aAdc3640bB462)\n +++ description: None\n```\n\n```diff\n contract WithdrawManager (0x2A88696e0fFA76bAA1338F2C74497cC013495922) {\n +++ description: None\n sourceHashes.1:\n- \"0xee5a9e827bcc91e480a2d03b37006a7a028e7785a3c351f49251fd7e6521ad30\"\n+ \"0xda0990aeeb22bcf3c867d4f398d00bd7d2f15aef3add8c60800711185b34a09c\"\n values.$implementation:\n- \"0x31f9c8c786aD7cc70ad10cF136B36681d340b792\"\n+ \"0x6F8a42cf6f3CE657B66A9d5849f1251dE7a35168\"\n values.implementation:\n- \"0x31f9c8c786aD7cc70ad10cF136B36681d340b792\"\n+ \"0x6F8a42cf6f3CE657B66A9d5849f1251dE7a35168\"\n }\n```\n\n```diff\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: None\n values.getValidatorShareAddress:\n- \"0x053FA9b934b83E1E0ffc7e98a41aAdc3640bB462\"\n+ \"0x7e94d6cAbb20114b22a088d828772645f68CC67B\"\n }\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n sourceHashes.1:\n- \"0xa084de5be3dc11f2a48e65491394d0ee5c3c2aecf08f90d10c9d1cce6faba01d\"\n+ \"0x5b260eb8b498c90359fa555e522f2fdd615857ea55e37c785de7da84915bfa7d\"\n values.$implementation:\n- \"0x97a3500083348A147F419b8a65717909762c389f\"\n+ \"0x3AD88467E40399dc6Ae10427f8B0842348d9076c\"\n values.$pastUpgrades.8:\n+ [\"2024-11-04T15:38:47.000Z\",\"0xa6a8a4e53e07aaca3a49c554781538762a1457b47b82e3f4a0edd54b18676f7d\",[\"0x3AD88467E40399dc6Ae10427f8B0842348d9076c\"]]\n values.$upgradeCount:\n- 8\n+ 9\n values.implementation:\n- \"0x97a3500083348A147F419b8a65717909762c389f\"\n+ \"0x3AD88467E40399dc6Ae10427f8B0842348d9076c\"\n }\n```\n\n```diff\n contract RootChainManager (0xA0c68C638235ee32657e8f720a23ceC1bFc77C77) {\n +++ description: None\n sourceHashes.1:\n- \"0xdc4360c93969702ab43800fb0154ca71259a30c57fa03a1f9567c3a3937c4b3e\"\n+ \"0x0f4d3951fb826a28e98a0923400b0173d459b26141d47b08227689849ce11141\"\n values.$implementation:\n- \"0x8F372f5404514cec63A3F88BAac772Cc620F2281\"\n+ \"0x639f13D5f30B47c792b6851238c05D0b623C77DE\"\n values.$pastUpgrades.11:\n+ [\"2024-11-04T15:38:47.000Z\",\"0xa6a8a4e53e07aaca3a49c554781538762a1457b47b82e3f4a0edd54b18676f7d\",[\"0x639f13D5f30B47c792b6851238c05D0b623C77DE\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.implementation:\n- \"0x8F372f5404514cec63A3F88BAac772Cc620F2281\"\n+ \"0x639f13D5f30B47c792b6851238c05D0b623C77DE\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShare (0x7e94d6cAbb20114b22a088d828772645f68CC67B)\n +++ description: None\n```"
}
]
},
{
"id": "487c4984",
"date": "Sat, 19 Oct 2024 06:33:29 GMT",
"timestamp": 1729319609,
"description": "CHECKPOINT_REWARD (the base from which PoS validator reward is calculated) decreased by 25%.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.CHECKPOINT_REWARD:\n- \"71795000000000000000000\"\n+ \"53870967741900000000000\"\n }\n```"
}
]
},
{
"id": "40284c6a",
"date": "Mon, 30 Sep 2024 09:42:21 GMT",
"timestamp": 1727689341,
"description": "1 Polygon validator unstaked (removed).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakingNFT (0x47Cbe25BbDB40a774cC37E1dA92d10C2C7Ec897F) {\n +++ description: None\n values.totalSupply:\n- 127\n+ 126\n }\n```"
}
]
},
{
"id": "93fd05a4",
"date": "Tue, 10 Sep 2024 11:43:09 GMT",
"timestamp": 1725968589,
"description": "Merge polygonpos and -plasma discoveries into this one.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract WithdrawManager (0x2A88696e0fFA76bAA1338F2C74497cC013495922)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DepositManager (0x401F6c983eA34274ec46f84D70b31C151321188b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RootChainInitialImplementation (0x5A09cD4601b66bc107D377AB81E0dbb5dFABaA84)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ExitNFT (0xDF74156420Bd57ab387B195ed81EcA36F9fABAca)\n +++ description: None\n```"
}
]
},
{
"id": "ba800daf",
"date": "Thu, 05 Sep 2024 15:30:36 GMT",
"timestamp": 1725550236,
"description": "[PIP-42](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/63c54e7cf534bed44e034fe32a05ff0fafe75a47/PIPs/PIP-42.md) is executed onchain. This upgrade adds POL as a staking token in a backwards-compatible way.\n\n### ValidatorShare.sol\n- POL compatibility via new functions like `buyVoucherPOL()` and `sellVoucher_newPOL()`\n- permit compatibility (POL supports permit)\n\n### StakeManager.sol\n- POL compatibility via new functions with -POL suffix\n- contract can convert POL to MATIC and vice versa within a call via the new migration contract\n- `slash()` now just always reverts",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: None\n values.getValidatorShareAddress:\n- \"0xf98864DA30a5bd657B13e70A57f5718aBf7BAB31\"\n+ \"0x053FA9b934b83E1E0ffc7e98a41aAdc3640bB462\"\n }\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.$implementation:\n- \"0xbA9Ac3C9983a3e967f0f387c75cCbD38Ad484963\"\n+ \"0x97a3500083348A147F419b8a65717909762c389f\"\n values.implementation:\n- \"0xbA9Ac3C9983a3e967f0f387c75cCbD38Ad484963\"\n+ \"0x97a3500083348A147F419b8a65717909762c389f\"\n values.token:\n- \"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0\"\n+ \"0x455e53CBB86018Ac2B8092FdCd39d8444aFFC3F6\"\n values.migration:\n+ \"0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e\"\n values.tokenMatic:\n+ \"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ValidatorShareImpl (0xf98864DA30a5bd657B13e70A57f5718aBf7BAB31)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShare (0x053FA9b934b83E1E0ffc7e98a41aAdc3640bB462)\n +++ description: None\n```"
}
]
},
{
"id": "ccdf2cf7",
"date": "Tue, 03 Sep 2024 12:18:09 GMT",
"timestamp": 1725365889,
"description": "TimeLock (with zero minDelay) has been restored",
"isHighSeverity": false,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ERC1155Predicate (0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract MintableERC1155Predicate (0x2d641867411650cd05dB93B59964536b1ED5b1B7) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract ERC20Predicate (0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.owner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract EventsHub (0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.owner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract Governance (0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48) {\n +++ description: None\n values.owner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract EtherPredicate (0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract RootChain (0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287) {\n +++ description: None\n values.owner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract MintableERC721Predicate (0x932532aA4c0174b8453839A6E44eE09Cc615F2b7) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract MintableERC20Predicate (0x9923263fA127b3d1484cFD649df8f1831c2A74e4) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract RootChainManager (0xA0c68C638235ee32657e8f720a23ceC1bFc77C77) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract ERC721Predicate (0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD) {\n +++ description: None\n issuedPermissions.0.target:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.$admin:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n values.proxyOwner:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n+ \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n }\n```\n\n```diff\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"target\":\"0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD\"}\n receivedPermissions.9:\n- {\"permission\":\"upgrade\",\"target\":\"0xDB2382413bCb9c2F1B6b62B52238558266361D68\"}\n receivedPermissions.8:\n- {\"permission\":\"upgrade\",\"target\":\"0xA0c68C638235ee32657e8f720a23ceC1bFc77C77\"}\n receivedPermissions.7:\n- {\"permission\":\"upgrade\",\"target\":\"0x9923263fA127b3d1484cFD649df8f1831c2A74e4\"}\n receivedPermissions.6:\n- {\"permission\":\"upgrade\",\"target\":\"0x932532aA4c0174b8453839A6E44eE09Cc615F2b7\"}\n receivedPermissions.5:\n- {\"permission\":\"upgrade\",\"target\":\"0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30\"}\n receivedPermissions.4:\n- {\"permission\":\"upgrade\",\"target\":\"0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b\"}\n receivedPermissions.3:\n- {\"permission\":\"upgrade\",\"target\":\"0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908\"}\n receivedPermissions.2:\n- {\"permission\":\"upgrade\",\"target\":\"0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf\"}\n receivedPermissions.1:\n- {\"permission\":\"upgrade\",\"target\":\"0x2d641867411650cd05dB93B59964536b1ED5b1B7\"}\n receivedPermissions.0.target:\n- \"0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f\"\n+ \"0xDB2382413bCb9c2F1B6b62B52238558266361D68\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Timelock (0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf)\n +++ description: None\n```"
}
]
},
{
"id": "9bf33ba7",
"date": "Wed, 28 Aug 2024 16:41:41 GMT",
"timestamp": 1724863301,
"description": "Predicates changed as ABI for exits got a new parameter. Insignificant change wrt to risks",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ERC1155Predicate (0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f) {\n +++ description: None\n values.$implementation:\n- \"0xb86357daD9c3567dD70862a5b49fFFaFb0F094Ac\"\n+ \"0xCFA65db73cB45D458d0a98006d3d558b5e1F021d\"\n values.implementation:\n- \"0xb86357daD9c3567dD70862a5b49fFFaFb0F094Ac\"\n+ \"0xCFA65db73cB45D458d0a98006d3d558b5e1F021d\"\n }\n```\n\n```diff\n contract MintableERC1155Predicate (0x2d641867411650cd05dB93B59964536b1ED5b1B7) {\n +++ description: None\n values.$implementation:\n- \"0x985Dbac75cf625dD6baB03Da784CF0D51B4bEcef\"\n+ \"0xFD47E7d657b07B071C3362bBCe908a70895EE747\"\n values.implementation:\n- \"0x985Dbac75cf625dD6baB03Da784CF0D51B4bEcef\"\n+ \"0xFD47E7d657b07B071C3362bBCe908a70895EE747\"\n }\n```\n\n```diff\n contract ERC20Predicate (0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf) {\n +++ description: None\n values.$implementation:\n- \"0xb774EBbeF817390483FEA5bEd0F0cB0EDEBE4065\"\n+ \"0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB\"\n values.implementation:\n- \"0xb774EBbeF817390483FEA5bEd0F0cB0EDEBE4065\"\n+ \"0xB1fd4ae726c64A793588001EB465c46BD1BdF1cB\"\n }\n```\n\n```diff\n contract EtherPredicate (0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30) {\n +++ description: None\n values.$implementation:\n- \"0x3129B90fB7bF58A0B36226f2e6547B89C0BbdE42\"\n+ \"0xeB185ED8f664D105903EF434E5becd214a8AC874\"\n values.implementation:\n- \"0x3129B90fB7bF58A0B36226f2e6547B89C0BbdE42\"\n+ \"0xeB185ED8f664D105903EF434E5becd214a8AC874\"\n }\n```\n\n```diff\n contract MintableERC721Predicate (0x932532aA4c0174b8453839A6E44eE09Cc615F2b7) {\n +++ description: None\n values.$implementation:\n- \"0x34AF15A166def1d89D38a70120Ea33CD8cc10C45\"\n+ \"0xba31389292f7EdfC7b60B937b97014b4C354689b\"\n values.implementation:\n- \"0x34AF15A166def1d89D38a70120Ea33CD8cc10C45\"\n+ \"0xba31389292f7EdfC7b60B937b97014b4C354689b\"\n }\n```\n\n```diff\n contract MintableERC20Predicate (0x9923263fA127b3d1484cFD649df8f1831c2A74e4) {\n +++ description: None\n values.$implementation:\n- \"0xab00328234bC22430c78847094A68a6836574fFB\"\n+ \"0x94D40724d6aA4AB313065006E4bA8CA448dcDfae\"\n values.implementation:\n- \"0xab00328234bC22430c78847094A68a6836574fFB\"\n+ \"0x94D40724d6aA4AB313065006E4bA8CA448dcDfae\"\n }\n```\n\n```diff\n contract RootChainManager (0xA0c68C638235ee32657e8f720a23ceC1bFc77C77) {\n +++ description: None\n values.$implementation:\n- \"0x1633012a2cB27eFBC2944f2E43b9197Bc3964359\"\n+ \"0x8F372f5404514cec63A3F88BAac772Cc620F2281\"\n values.implementation:\n- \"0x1633012a2cB27eFBC2944f2E43b9197Bc3964359\"\n+ \"0x8F372f5404514cec63A3F88BAac772Cc620F2281\"\n }\n```\n\n```diff\n contract ERC721Predicate (0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD) {\n +++ description: None\n values.$implementation:\n- \"0x9F5B43C0d6d57a76E5B24CE05E11b70C3C7eA8Ec\"\n+ \"0x02Bc987f54B54bf18Ca6E20a13e57508ec561072\"\n values.implementation:\n- \"0x9F5B43C0d6d57a76E5B24CE05E11b70C3C7eA8Ec\"\n+ \"0x02Bc987f54B54bf18Ca6E20a13e57508ec561072\"\n }\n```"
}
]
},
{
"id": "b31f777d",
"date": "Mon, 26 Aug 2024 11:36:43 GMT",
"timestamp": 1724672203,
"description": "- Timlock has been removed - now Polygon MultiSig is a direct owner\n- ERC20PredicateBurnOnly and ERC1155Predicate contracts have been replaced\n by new implementation. We don't track these as escrows (they are burn-only)\n so ignored\n- WithdrawManager is only used by the Plasma bridge, so its implementation\n upgrade is ignored here",
"isHighSeverity": true,
"changeCount": 53,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ERC1155Predicate (0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x62D7e87677ac7e3bd02c198e3FABeFFdBc5eB2A3\"\n+ \"0xb86357daD9c3567dD70862a5b49fFFaFb0F094Ac\"\n values.implementation:\n- \"0x62D7e87677ac7e3bd02c198e3FABeFFdBc5eB2A3\"\n+ \"0xb86357daD9c3567dD70862a5b49fFFaFb0F094Ac\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ERC20PredicateBurnOnly (0x158d5fa3Ef8e4dDA8a5367deCF76b94E7efFCe95)\n +++ description: None\n```\n\n```diff\n contract WithdrawManager (0x2A88696e0fFA76bAA1338F2C74497cC013495922) {\n +++ description: None\n values.$implementation:\n- \"0x4ef5123a30e4CFeC02B3E2F5Ce97F1328B29f7de\"\n+ \"0xA376680d32Cece9756D9f1087318400DA2fd83dF\"\n values.implementation:\n- \"0x4ef5123a30e4CFeC02B3E2F5Ce97F1328B29f7de\"\n+ \"0xA376680d32Cece9756D9f1087318400DA2fd83dF\"\n values.owner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract MintableERC1155Predicate (0x2d641867411650cd05dB93B59964536b1ED5b1B7) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0xDb161A896Be50a020B636D6B60DA7c59817412a5\"\n+ \"0x985Dbac75cf625dD6baB03Da784CF0D51B4bEcef\"\n values.implementation:\n- \"0xDb161A896Be50a020B636D6B60DA7c59817412a5\"\n+ \"0x985Dbac75cf625dD6baB03Da784CF0D51B4bEcef\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71) {\n +++ description: None\n values.erc20Predicate:\n- \"0x158d5fa3Ef8e4dDA8a5367deCF76b94E7efFCe95\"\n+ \"0x626fb210bf50e201ED62cA2705c16DE2a53DC966\"\n values.erc721Predicate:\n- \"0x54150f44c785D412Ec262fe895Cc3B689c72F49B\"\n+ \"0x36C2503d53C6948331144b85D1e74a3B96731d1b\"\n }\n```\n\n```diff\n contract ERC20Predicate (0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x608669d4914Eec1E20408Bc4c9eFFf27BB8cBdE5\"\n+ \"0xb774EBbeF817390483FEA5bEd0F0cB0EDEBE4065\"\n values.implementation:\n- \"0x608669d4914Eec1E20408Bc4c9eFFf27BB8cBdE5\"\n+ \"0xb774EBbeF817390483FEA5bEd0F0cB0EDEBE4065\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ERC721PredicateBurnOnly (0x54150f44c785D412Ec262fe895Cc3B689c72F49B)\n +++ description: None\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.owner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract EventsHub (0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.owner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract Governance (0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48) {\n +++ description: None\n values.owner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract EtherPredicate (0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x54006763154c764da4AF42a8c3cfc25Ea29765D5\"\n+ \"0x3129B90fB7bF58A0B36226f2e6547B89C0BbdE42\"\n values.implementation:\n- \"0x54006763154c764da4AF42a8c3cfc25Ea29765D5\"\n+ \"0x3129B90fB7bF58A0B36226f2e6547B89C0BbdE42\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract RootChain (0x86E4Dc95c7FBdBf52e33D563BbDB00823894C287) {\n +++ description: None\n values.owner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract MintableERC721Predicate (0x932532aA4c0174b8453839A6E44eE09Cc615F2b7) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x7FBd00c577cAA70318BCF1c6c11e23732823b387\"\n+ \"0x34AF15A166def1d89D38a70120Ea33CD8cc10C45\"\n values.implementation:\n- \"0x7FBd00c577cAA70318BCF1c6c11e23732823b387\"\n+ \"0x34AF15A166def1d89D38a70120Ea33CD8cc10C45\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.TRANSFER_WITH_METADATA_EVENT_SIG:\n+ \"0xf94915c6d1fd521cee85359239227480c7e8776d7caf1fc3bacad5c269b66a14\"\n values.WITHDRAW_BATCH_EVENT_SIG:\n+ \"0xf871896b17e9cb7a64941c62c188a4f5c621b86800e3d15452ece01ce56073df\"\n }\n```\n\n```diff\n contract MintableERC20Predicate (0x9923263fA127b3d1484cFD649df8f1831c2A74e4) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x0f92D459B20D21F6bf9E02056EA9165d3f78bA62\"\n+ \"0xab00328234bC22430c78847094A68a6836574fFB\"\n values.implementation:\n- \"0x0f92D459B20D21F6bf9E02056EA9165d3f78bA62\"\n+ \"0xab00328234bC22430c78847094A68a6836574fFB\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract RootChainManager (0xA0c68C638235ee32657e8f720a23ceC1bFc77C77) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0x37D26DC2890b35924b40574BAc10552794771997\"\n+ \"0x1633012a2cB27eFBC2944f2E43b9197Bc3964359\"\n values.implementation:\n- \"0x37D26DC2890b35924b40574BAc10552794771997\"\n+ \"0x1633012a2cB27eFBC2944f2E43b9197Bc3964359\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Timelock (0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf)\n +++ description: None\n```\n\n```diff\n contract ChainExitERC1155Predicate (0xDB2382413bCb9c2F1B6b62B52238558266361D68) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract ERC721Predicate (0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD) {\n +++ description: None\n values.$admin:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.$implementation:\n- \"0xd515C8fF03eC79e7d5B3410c036f738e7f396C90\"\n+ \"0x9F5B43C0d6d57a76E5B24CE05E11b70C3C7eA8Ec\"\n values.implementation:\n- \"0xd515C8fF03eC79e7d5B3410c036f738e7f396C90\"\n+ \"0x9F5B43C0d6d57a76E5B24CE05E11b70C3C7eA8Ec\"\n values.proxyOwner:\n- \"0xCaf0aa768A3AE1297DF20072419Db8Bb8b5C8cEf\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```\n\n```diff\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n assignedPermissions:\n+ {\"upgrade\":[\"0x0B9020d4E32990D67559b1317c7BF0C15D6EB88f\",\"0x2d641867411650cd05dB93B59964536b1ED5b1B7\",\"0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf\",\"0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908\",\"0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b\",\"0x8484Ef722627bf18ca5Ae6BcF031c23E6e922B30\",\"0x932532aA4c0174b8453839A6E44eE09Cc615F2b7\",\"0x9923263fA127b3d1484cFD649df8f1831c2A74e4\",\"0xA0c68C638235ee32657e8f720a23ceC1bFc77C77\",\"0xDB2382413bCb9c2F1B6b62B52238558266361D68\",\"0xE6F45376f64e1F568BD1404C155e5fFD2F80F7AD\"]}\n }\n```\n\n```diff\n+ Status: CREATED\n contract ERC721PredicateBurnOnly (0x36C2503d53C6948331144b85D1e74a3B96731d1b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20PredicateBurnOnly (0x626fb210bf50e201ED62cA2705c16DE2a53DC966)\n +++ description: None\n```"
}
]
},
{
"id": "101b4eb0",
"date": "Wed, 07 Aug 2024 12:22:45 GMT",
"timestamp": 1723033365,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 25,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakingNFT (0x47Cbe25BbDB40a774cC37E1dA92d10C2C7Ec897F) {\n +++ description: None\n values.totalSupply:\n- 126\n+ 127\n }\n```\n\n```diff\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908) {\n +++ description: None\n values.NFTCounter:\n- 174\n+ 175\n values.totalHeimdallFee:\n- \"10101939209428901681108\"\n+ \"10132939209428901681108\"\n }\n```\n\n```diff\n contract MintableERC20Predicate (0x9923263fA127b3d1484cFD649df8f1831c2A74e4) {\n +++ description: None\n values.accessControl.DEFAULT_ADMIN_ROLE.members.1:\n- \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n- \"0x63ec5767F54F6943750A70eB6117EA2D9Ca77313\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n values.accessControl.MANAGER_ROLE.members.1:\n- \"0xA0c68C638235ee32657e8f720a23ceC1bFc77C77\"\n values.accessControl.MANAGER_ROLE.members.0:\n- \"0x63ec5767F54F6943750A70eB6117EA2D9Ca77313\"\n+ \"0xA0c68C638235ee32657e8f720a23ceC1bFc77C77\"\n }\n```\n\n```diff\n contract StakingInfo (0xa59C847Bd5aC0172Ff4FE912C5d29E5A71A7512B) {\n +++ description: None\n values.owner:\n- \"0xA2D9846c352cA61dCb20D6AaD40Cec1d1b228a78\"\n+ \"0xFa7D2a996aC6350f4b56C043112Da0366a59b74c\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SlashingManager (0x01F645DcD6C796F6BC6C982159B32fAaaebdC96A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20PredicateBurnOnly (0x158d5fa3Ef8e4dDA8a5367deCF76b94E7efFCe95)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawManager (0x2A88696e0fFA76bAA1338F2C74497cC013495922)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Registry (0x33a02E6cC863D393d6Bf231B697b82F6e499cA71)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingNFT (0x47Cbe25BbDB40a774cC37E1dA92d10C2C7Ec897F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC721PredicateBurnOnly (0x54150f44c785D412Ec262fe895Cc3B689c72F49B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakeManager (0x5e3Ef299fDDf15eAa0432E6e66473ace8c13D908)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EventsHub (0x6dF5CB08d3f0193C768C8A01f42ac4424DC5086b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Governance (0x6e7a5820baD6cebA8Ef5ea69c0C92EbbDAc9CE48)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MaticToken (0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MaticWETH (0xa45b966996374E9e65ab991C6FE4Bfce3a56DDe8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingInfo (0xa59C847Bd5aC0172Ff4FE912C5d29E5A71A7512B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShareFactory (0xc4FA447A0e77Eff9717b09C057B40570813bb642)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract (0xD9c7C4ED4B66858301D0cb28Cc88bf655Fe34861)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ExitNFT (0xDF74156420Bd57ab387B195ed81EcA36F9fABAca)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakeManagerExtension (0xef49Ea6996073752b6840CDA34773FFA78F78166)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorShareImpl (0xf98864DA30a5bd657B13e70A57f5718aBf7BAB31)\n +++ description: None\n```"
}
]
},
{
"id": "79b51a88",
"date": "Wed, 26 Jun 2024 10:30:17 GMT",
"timestamp": 1719397817,
"description": "The implementation of the GnosisSafe is upgraded to version 1.3.0.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PolygonMultisig (0xFa7D2a996aC6350f4b56C043112Da0366a59b74c) {\n +++ description: None\n upgradeability.masterCopy:\n- \"0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F\"\n+ \"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n implementations.0:\n- \"0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F\"\n+ \"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n values.domainSeparator:\n- \"0x3bc292918071cc597c13d3994268d3c83097b8388d750481c8cbce67a284ed5c\"\n+ \"0x1fedebc30994a7dba640edeed88b9bdc774c9f02b3797c8a6d3a2f17399477f4\"\n values.getModules:\n- []\n values.NAME:\n- \"Gnosis Safe\"\n values.VERSION:\n- \"1.1.1\"\n+ \"1.3.0\"\n values.getChainId:\n+ 1\n }\n```"
}
]
}
]
+3 -3
+1 -1
{
"ethereum": {
"roles": [],
"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 AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches \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)]",
"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 AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address \n * sole address that can force batches \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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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": "Polygon zkEVM Multisig",
"name": "Polygon zkEVM Multisig",
"description": "A Multisig with 5/10 threshold. \n* Can upgrade **with no delay**\n * daiBridge \n * usdcBridge \n * wstETHBridge ",
"accounts": [
{
"address": "eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904",
"type": "Contract",
"isVerified": true,
"name": "0xf694…E904",
"url": "https://etherscan.io/address/0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x099198353446A9E3a20672eDC1Bd461E978842c3",
"type": "EOA",
"isVerified": true,
"name": "0x0991…42c3",
"url": "https://etherscan.io/address/0x099198353446A9E3a20672eDC1Bd461E978842c3"
},
{
"address": "eth:0xb771380f912E4b5F6beDdf81314C383c13F16ab5",
"type": "EOA",
"isVerified": true,
"name": "0xb771…6ab5",
"url": "https://etherscan.io/address/0xb771380f912E4b5F6beDdf81314C383c13F16ab5"
},
{
"address": "eth:0xD09971D8ed6C6a5e57581e90d593ee5B94e348D4",
"type": "EOA",
"isVerified": true,
"name": "0xD099…48D4",
"url": "https://etherscan.io/address/0xD09971D8ed6C6a5e57581e90d593ee5B94e348D4"
},
{
"address": "eth:0xc4591c41e01a7a654B5427f39Bbd1dEe5bD45D1D",
"type": "EOA",
"isVerified": true,
"name": "0xc459…5D1D",
"url": "https://etherscan.io/address/0xc4591c41e01a7a654B5427f39Bbd1dEe5bD45D1D"
},
{
"address": "eth:0xE6Ee0F8D81170160d50ed77b9C91E6219473d43a",
"type": "EOA",
"isVerified": true,
"name": "0xE6Ee…d43a",
"url": "https://etherscan.io/address/0xE6Ee0F8D81170160d50ed77b9C91E6219473d43a"
},
{
"address": "eth:0xd1B856ee12Bd00922cae8DD86ab068f8c0F95224",
"type": "EOA",
"isVerified": true,
"name": "0xd1B8…5224",
"url": "https://etherscan.io/address/0xd1B856ee12Bd00922cae8DD86ab068f8c0F95224"
},
{
"address": "eth:0xF53D1fB2EeD22Cf1E8f7E90Da7f1CAe88344065F",
"type": "EOA",
"isVerified": true,
"name": "0xF53D…065F",
"url": "https://etherscan.io/address/0xF53D1fB2EeD22Cf1E8f7E90Da7f1CAe88344065F"
},
{
"address": "eth:0xf56AE6520776934127AB68438d1b4652BCe07F8f",
"type": "EOA",
"isVerified": true,
"name": "0xf56A…7F8f",
"url": "https://etherscan.io/address/0xf56AE6520776934127AB68438d1b4652BCe07F8f"
},
{
"address": "eth:0x4DE44Aa0Ef9DB64DF3eB3465d35D73d0409d44ed",
"type": "EOA",
"isVerified": true,
"name": "0x4DE4…44ed",
"url": "https://etherscan.io/address/0x4DE44Aa0Ef9DB64DF3eB3465d35D73d0409d44ed"
},
{
"address": "eth:0x4E83124eD15b13265240B61EC9627797CCE1032E",
"type": "EOA",
"isVerified": true,
"name": "0x4E83…032E",
"url": "https://etherscan.io/address/0x4E83124eD15b13265240B61EC9627797CCE1032E"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xD6f0FEEaAB8EAc205b182D51AE05B588a132Be5A",
"type": "EOA",
"isVerified": true,
"name": "0xD6f0…Be5A",
"url": "https://etherscan.io/address/0xD6f0FEEaAB8EAc205b182D51AE05B588a132Be5A",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x519E42c24163192Dca44CD3fBDCEBF6be9130987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1706364971,
"transactionHash": "0x4e3fc80071c2d0852584cb59bfcd784519bfb3582aa3334098a4b32b5f6aaef4",
"implementations": [
"eth:0x79BCB82B35A335cD8A8Ec433b304a0c91f67CDE0"
]
},
{
"timestamp": 1710419135,
"transactionHash": "0xeba0bc3b2674c961c5a998f22f789ea610a7c3e57e622a4dd951cca2702b8be3",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1711323407,
"transactionHash": "0x67e892c44b9d14709693e74dd5e17fb40d98c8c2cc1c5330265e758e8958a01b",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1727792579,
"transactionHash": "0x069690e412d29d96bc94d6bf5c816e43bb401cbf948f3e3cad261e073e2d2afe",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1736943371,
"transactionHash": "0x9328cfd3d2833dca2d0ea16fbb34f8fc096c26ca8334476c5bf7107f32436029",
"implementations": [
"eth:0x7253F329302b1b5E774Ac641EA3743E9E3244f2E"
]
},
{
"timestamp": 1764753203,
"transactionHash": "0xd8eb9f7bf7594d047e0c8b254b3893eb05daf692b1688adaacd21af144efe2a5",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the polygon zkEVM 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**: AgglayerManager, PolygonAdminMultisig\n * **aggchainSigners**: EOA 1\n * **forceBatchAddress**: PolygonAdminMultisig",
"description": "System contract defining the polygon zkEVM 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**: AgglayerManager, PolygonAdminMultisig\n * **aggchainManager**: PolygonAdminMultisig\n * **aggchainSigners**: EOA 1\n * **forceBatchAddress**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x519E42c24163192Dca44CD3fBDCEBF6be9130987#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": "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": "daiBridge",
"isVerified": true,
"address": "eth:0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1695199499,
"transactionHash": "0x2c7c12aeaf738701352017fc49f5268db9632b84bdc6f76474e6776371f53b7e",
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
}
],
"description": "Custom Bridge escrow for DAI bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98#code"
},
{
"name": "usdcBridge",
"isVerified": true,
"address": "eth:0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700125979,
"transactionHash": "0x6402dc60bb9c4f704f126f4b11e40b33c287b4ac7f73ea60c50d7452d52ce735",
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
}
],
"description": "Custom Bridge escrow for USDC bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB#code"
},
{
"name": "wstETHBridge",
"isVerified": true,
"address": "eth:0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1703945135,
"transactionHash": "0x12c54f4243dc8e3b41be87984b78248eecbf98b92e30ff10b487be2599d7e3a1",
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
}
],
"description": "Custom Bridge escrow for wstETH bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01#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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#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": "etherPreminted",
"premintedAmount": "200000000000000000000000000"
},
"chainId": 1
},
{
"address": "0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"sinceTimestamp": 1700125979,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700125979,
"transactionHash": "0x6402dc60bb9c4f704f126f4b11e40b33c287b4ac7f73ea60c50d7452d52ce735",
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
}
],
"description": "Custom Bridge escrow for USDC bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"sinceTimestamp": 1703945135,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1703945135,
"transactionHash": "0x12c54f4243dc8e3b41be87984b78248eecbf98b92e30ff10b487be2599d7e3a1",
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
}
],
"description": "Custom Bridge escrow for wstETH bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"sinceTimestamp": 1695199499,
"tokens": [
"DAI",
"sDAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1695199499,
"transactionHash": "0x2c7c12aeaf738701352017fc49f5268db9632b84bdc6f76474e6776371f53b7e",
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
}
],
"description": "Custom Bridge escrow for DAI bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98#code"
},
"chain": "ethereum",
"includeInTotal": true,
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+3 -3
+3 -3
{
"clusteredEventCount": 10,
"contracts": [
{
"name": "PrivacyPoolsEntrypoint",
"address": "eth:0x6818809EefCe719E480a7526D76bD3e561526b46",
"isVerified": true,
"ossifyingSince": 1770833867,
"codeChangeCount": 1,
"stateChangeCount": 10
},
{
"name": "PrivacyPoolBOLD",
"address": "eth:0xb4b5Fd38Fd4788071d7287e3cB52948e0d10b23E",
"isVerified": true,
"ossifyingSince": 1770806867,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolFxUSD",
"address": "eth:0xD14F4B36E1D1D98c218db782c49149876042BC56",
"isVerified": true,
"ossifyingSince": 1765446455,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolWOETH",
"address": "eth:0x7d2959bCFb936a84531518e8391DdBa844e03ebE",
"isVerified": true,
"ossifyingSince": 1756377743,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolFrxUSD",
"address": "eth:0xC6C769fac7AABEadd31a03fAe5Ca0Ec5B4C50f84",
"isVerified": true,
"ossifyingSince": 1754583623,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolUSD1",
"address": "eth:0xc0A8Bc0F4F982b4d4f1fFae8F4FCCb58c9B29c98",
"isVerified": true,
"ossifyingSince": 1754583179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolUSDe",
"address": "eth:0xe6D36B33b00A7C0cB0C2a8d39D07e7dB0c526Abc",
"isVerified": true,
"ossifyingSince": 1754583083,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolWBTC",
"address": "eth:0xF973f4B180A568157Cd7A0E6006449139E6Bfc32",
"isVerified": true,
"ossifyingSince": 1753975703,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolWstETH",
"address": "eth:0x1A604E9DFa0EFDC7FFda378AF16Cb81243b61633",
"isVerified": true,
"ossifyingSince": 1753975583,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolUSDC",
"address": "eth:0xb419c2867aB3CBc78921660cB95150d95A94ce86",
"isVerified": true,
"ossifyingSince": 1753353035,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolUSDT",
"address": "eth:0xe859C0bD25f260BaEE534Fb52e307D3b64D24572",
"isVerified": true,
"ossifyingSince": 1753352915,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolDAI",
"address": "eth:0x1c31C03B8CB2EE674D0F11De77135536db828257",
"isVerified": true,
"ossifyingSince": 1752848471,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolSUSDS",
"address": "eth:0xBBdA2173CDFEA1c3bD7F2908798F1265301d750c",
"isVerified": true,
"ossifyingSince": 1752782999,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolUSDS",
"address": "eth:0x05e4DBD71B56861eeD2Aaa12d00A797F04B5D3c0",
"isVerified": true,
"ossifyingSince": 1752503003,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PrivacyPoolETH",
"address": "eth:0xF241d57C6DebAe225c0F2e6eA1529373C9A9C9fB",
"isVerified": true,
"ossifyingSince": 1743265259,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RagequitVerifier",
"address": "eth:0xa45ACa8604a73D80C551fAad6355A5c3A5565eC6",
"isVerified": true,
"ossifyingSince": 1743265211,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "WithdrawalVerifier",
"address": "eth:0x022891F938Ae7fDC8Ab9Ead0FBf50aBA8C897D6d",
"isVerified": true,
"ossifyingSince": 1743265199,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Privacy Pools Multisig",
"address": "eth:0xAd7f9A19E2598b6eFE0A25C84FB1c87F81eB7159",
"isVerified": true,
"ossifyingSince": 1742919851,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1743265271,
1747945823,
1752600335,
1752792059,
1753360031,
1753994843,
1754667935,
1756405043,
1765812563,
1770833867
],
"criticalChangesPerYear": 6.576967063422371,
"criticalChangesPerYear": 6.576966514760625,
"criticalUpdates": [],
"lastCriticalChange": 1770833867,
"maturity": 0.7506563452903556,
"maturity": 0.7506563507484038,
"perimeterResets": [
1742919851,
1743265199,
1747945823,
1752503003,
1752600335,
1752782999,
1753352915,
1753975583,
1754583083,
1756377743,
1765446455,
1765812563,
1770806867
],
"projectClockStart": 1770833867,
"score": 75,
"windowSeconds": 47949153
"windowSeconds": 47949157
}
+1 -1
+1 -1
{
"clusteredEventCount": 2,
"contracts": [
{
"name": "RailgunSmartWallet",
"address": "eth:0xFA7093CDD9EE6932B4eb2c9e1cde7CE00B1FA4b9",
"isVerified": true,
"ossifyingSince": 1786715435,
"codeChangeCount": 4,
"stateChangeCount": 2
},
{
"name": "Delegator",
"address": "eth:0xB6d513f6222Ee92Fff975E901bd792E2513fB53B",
"isVerified": true,
"ossifyingSince": 1753717703,
"codeChangeCount": 0,
"stateChangeCount": 5
},
{
"name": "VerificationKeySetter_64DA",
"address": "eth:0x64DA0892E8E24fECa6Eb5E3D8cbf2D9b6Fbe7598",
"isVerified": true,
"ossifyingSince": 1752516023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "VerificationKeySetter_9086",
"address": "eth:0x9086aFC6FC88667d4031Cabd556AfDD0E3903B46",
"isVerified": true,
"ossifyingSince": 1677376967,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Voting",
"address": "eth:0xc480F68A3dcC3EdD82134FAB45C14A0FcF1dA3CC",
"isVerified": true,
"ossifyingSince": 1662770918,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x4F8E20f55f879beE7Bc010Bd6bD2138B34aC65c8",
"isVerified": true,
"ossifyingSince": 1625961245,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Staking",
"address": "eth:0xEE6A649Aa3766bD117e12C161726b693A1B2Ee20",
"isVerified": true,
"ossifyingSince": 1625670240,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Rail Token",
"address": "eth:0xe76C6c83af64e4C60245D8C7dE953DF673a7A33D",
"isVerified": true,
"ossifyingSince": 1625318205,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1628326800,
1652034772,
1665068219,
1669738223,
1678360187,
1753717703,
1786715435
],
"criticalChangesPerYear": 0.6666666666666666,
"criticalUpdates": [],
"lastCriticalChange": 1786715435,
"maturity": 0.5390042529544999,
"maturity": 0.5390042862594158,
"perimeterResets": [
1625318205,
1625670240,
1625810239,
1625961245,
1628326800,
1652034772,
1662770918,
1665068219,
1669738223,
1677376967,
1678360187,
1752516023,
1753717703,
1786715435
],
"projectClockStart": 1786715435,
"score": 54,
"windowSeconds": 94608000
}
+3 -3
+3 -3
{
"clusteredEventCount": 7,
"contracts": [
{
"name": "AddressManager",
"address": "eth:0x6FFbcf498CcF81111f397fa6065dEA13A47E573C",
"isVerified": true,
"ossifyingSince": 1789973519,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L1StandardBridge",
"address": "eth:0x85Ce2Ccef125aa8d018c298d5eA0f2FB5E5063c1",
"isVerified": true,
"ossifyingSince": 1789973519,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "AnchorStateRegistry",
"address": "eth:0x0B95fF1d1B113bac3E29Ac0BBF2089126C9aE81A",
"isVerified": true,
"ossifyingSince": 1788777107,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "DisputeGameFactory",
"address": "eth:0x45dA2CD511DA5FEAa535eBF166E628314a65843a",
"isVerified": true,
"ossifyingSince": 1782901175,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "SuperchainConfig",
"address": "eth:0xEE552e802A50d855bD08E93dfcc69228FC7B9E2c",
"isVerified": true,
"ossifyingSince": 1780988555,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "RoninConduitOwner",
"address": "eth:0xE9Ad9723C24d946958f9FD3Bc861BbF983525607",
"isVerified": true,
"ossifyingSince": 1779285407,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L1ERC721Bridge",
"address": "eth:0x3a63087B36Ad5a2fD89C7C8517832dE067Fe4959",
"isVerified": true,
"ossifyingSince": 1771964639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0x652CD53eCf9466E5Fb00D0E11d6CBf6469a56D77",
"isVerified": true,
"ossifyingSince": 1771964639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x757077Ddf12B652430DCE8fF3e4c749F5Ca861fC",
"isVerified": true,
"ossifyingSince": 1771964639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0xc4f4F908C36C8119f1FBd52CebbDB30C6f2a23C1",
"isVerified": true,
"ossifyingSince": 1771964639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0xF9aD628d9F907ad5d46Ab80100dacDf09EAc9A8e",
"isVerified": true,
"ossifyingSince": 1771964639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x502e993a5aFC9fE59b00B07ee500729D71092E34",
"isVerified": true,
"ossifyingSince": 1771964591,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1779285407,
1779399734,
1780066583,
1780988555,
1782901175,
1788777107,
1789973519
],
"criticalChangesPerYear": 17.991133528127527,
"criticalChangesPerYear": 17.991127663070266,
"criticalUpdates": [
{
"id": "3f3ba4f2",
"type": "state"
},
{
"id": "8d0ae0ed",
"type": "state"
},
{
"id": "f6059a61",
"type": "state"
},
{
"id": "8c7d17d4",
"type": "state"
}
],
"lastCriticalChange": 1789973519,
"maturity": 0.3213996888569879,
"maturity": 0.32140113234115447,
"perimeterResets": [
1680797639,
1718237363,
1740762647,
1751494331,
1755283775,
1756842743,
1762212215,
1766424179,
1771964591,
1778240927,
1779285407,
1779399734,
1780027571,
1780988555,
1782901175,
1788777107,
1789973519
],
"projectClockStart": 1789973519,
"score": 32,
"windowSeconds": 12270044
"windowSeconds": 12270048
}
+3 -3
+3 -3
{
"clusteredEventCount": 26,
"contracts": [
{
"name": "MultipleVersionRollupVerifier",
"address": "eth:0x4CEA3E866e7c57fD75CB0CA3E9F5f1151D4Ead3F",
"isVerified": true,
"ossifyingSince": 1790041547,
"codeChangeCount": 0,
"stateChangeCount": 10
},
{
"name": "ZkEvmVerifierPostFeynman",
"address": "eth:0x7966FE0De13e3B81533470640Ac489223476B254",
"isVerified": true,
"ossifyingSince": 1789438643,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PlonkVerifierOpenVMv2",
"address": "eth:0x0d2A59fd7060460F07c30C2817b4E79576da01C6",
"isVerified": true,
"ossifyingSince": 1789438487,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Scroll Multisig 3",
"address": "scr:0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe",
"isVerified": true,
"ossifyingSince": 1779270521,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Scroll Multisig 3",
"address": "eth:0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe",
"isVerified": true,
"ossifyingSince": 1779270407,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "ScrollAdminMultisig",
"address": "scr:0xcca54B0916Cee2186b47E9709BEdcb7041A8F761",
"isVerified": true,
"ossifyingSince": 1774419711,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ScrollAdminMultisig",
"address": "eth:0xcca54B0916Cee2186b47E9709BEdcb7041A8F761",
"isVerified": true,
"ossifyingSince": 1774419707,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1GatewayRouter",
"address": "eth:0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6",
"isVerified": true,
"ossifyingSince": 1770602759,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "ZkEvmVerifierPostFeynman",
"address": "eth:0x4AF7f3aBd780Fbd319c4356a219100A45F85DDb5",
"isVerified": true,
"ossifyingSince": 1764678203,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PlonkVerifierGalileo",
"address": "eth:0x749fC77A1a131632a8b88e8703E489557660C75e",
"isVerified": true,
"ossifyingSince": 1764678143,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AgoraGovernor",
"address": "scr:0x2f3F2054776bd3C2fc30d750734A8F539Bb214f0",
"isVerified": true,
"ossifyingSince": 1764490172,
"codeChangeCount": 1,
"stateChangeCount": 3
},
{
"name": "L1MessageQueueV2",
"address": "eth:0x56971da63A3C0205184FEF096E9ddFc7A8C2D18a",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1ScrollMessenger",
"address": "eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "L1WETHGateway",
"address": "eth:0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1ETHGateway",
"address": "eth:0x7F2b8C31F88B6006c382775eea88297Ec1e3E905",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0x8432728A257646449245558B8b7Dbe51A16c7a4D",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 2
},
{
"name": "ScrollChain",
"address": "eth:0xa13BAF47339d63B743e7Da8741db5456DAc1E556",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 7,
"stateChangeCount": 1
},
{
"name": "L1CustomERC20Gateway",
"address": "eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1StandardERC20Gateway",
"address": "eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"isVerified": true,
"ossifyingSince": 1755485183,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "ZkEvmVerifierPostEuclid-2",
"address": "eth:0xc084a6De8b0F2742396572d6f110eC87ca9329bA",
"isVerified": true,
"ossifyingSince": 1754694995,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkEvmVerifierPostFeynman",
"address": "eth:0xa8d4702Aa5c09AF5dD1323E1842a43789021F485",
"isVerified": true,
"ossifyingSince": 1753339811,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PlonkVerifierPostEuclid-2",
"address": "eth:0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4",
"isVerified": true,
"ossifyingSince": 1753339799,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2PauseController",
"address": "scr:0xAf9a61Aa21aB4a2fdbc88e81363D2e3D359749dd",
"isVerified": true,
"ossifyingSince": 1753067278,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PauseController",
"address": "eth:0xb8f7eA9998530833Cbb7E0EF4f0D945957229D8b",
"isVerified": true,
"ossifyingSince": 1753067003,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EnforcedTxGateway",
"address": "eth:0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d",
"isVerified": true,
"ossifyingSince": 1745301695,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "TimelockEmergency",
"address": "scr:0xA77D19C1F2B06C9aeA9bE88C17B771a33892734f",
"isVerified": true,
"ossifyingSince": 1730295517,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockSCEmergencyScroll",
"address": "scr:0x1f807E2E8ab2e61230a0A9C271F90242831278b4",
"isVerified": true,
"ossifyingSince": 1730295071,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockSCEmergency",
"address": "eth:0x0CD4c0F24a0A9f3E2Fe80ed385D8AD5a2FfECA44",
"isVerified": true,
"ossifyingSince": 1730294447,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockEmergency",
"address": "eth:0x826714adD4dDA2b8750794A467C892c0Cd49216b",
"isVerified": true,
"ossifyingSince": 1730294447,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockSCSlow",
"address": "eth:0x3f9041350B661c74C6CbE440c8Bd6BC4C168a9fd",
"isVerified": true,
"ossifyingSince": 1729781135,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockSCSlow",
"address": "scr:0x79D83D1518e2eAA64cdc0631df01b06e2762CC14",
"isVerified": true,
"ossifyingSince": 1725377342,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81",
"isVerified": true,
"ossifyingSince": 1725377322,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProposalTypesConfigurator",
"address": "scr:0xfDa7cF1D9C51b3fab41E2e4093374DD8715D640E",
"isVerified": true,
"ossifyingSince": 1725377313,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SCRToken",
"address": "scr:0xd29687c813D741E2F938F4aC377128810E217b1b",
"isVerified": true,
"ossifyingSince": 1725336741,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e",
"isVerified": true,
"ossifyingSince": 1725336741,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1USDCGateway",
"address": "eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"isVerified": true,
"ossifyingSince": 1708590023,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2USDCGateway",
"address": "scr:0x33B60d5Dd260d453cAC3782b0bDC01ce84672142",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2CustomERC20Gateway",
"address": "scr:0x64CCBE37c9A82D85A1F2E74649b7A42923067988",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ETHGateway",
"address": "scr:0x6EA73e05AdC79974B931123675ea8F78FfdacDF0",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2WETHGateway",
"address": "scr:0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2ScrollMessenger",
"address": "scr:0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "L2GatewayRouter",
"address": "scr:0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A",
"isVerified": true,
"ossifyingSince": 1708589325,
"codeChangeCount": 1,
"stateChangeCount": 0
},
{
"name": "Scroll Multisig 2",
"address": "scr:0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc",
"isVerified": true,
"ossifyingSince": 1696921130,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DaiEscrow",
"address": "eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"isVerified": true,
"ossifyingSince": 1696920095,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MasterMinter",
"address": "scr:0xb5cE5F2277CFc547F48aA8263838FAEd424ae4BE",
"isVerified": true,
"ossifyingSince": 1696919091,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Scroll USDC",
"address": "scr:0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
"isVerified": true,
"ossifyingSince": 1696919085,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockFast",
"address": "scr:0x2b14d0E4b042d11C7e3Fc653132a2c82EFa7d376",
"isVerified": true,
"ossifyingSince": 1696918064,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ScrollOwner",
"address": "scr:0x13D24a7Ff6F5ec5ff0e9C40Fc3B8C9c01c65437B",
"isVerified": true,
"ossifyingSince": 1696918061,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ScrollStandardERC20Factory",
"address": "scr:0x66e5312EDeEAef6e80759A0F789e7914Fb401484",
"isVerified": true,
"ossifyingSince": 1696917920,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ScrollStandardERC20",
"address": "scr:0xC7d86908ccf644Db7C69437D5852CedBC1aD3f69",
"isVerified": true,
"ossifyingSince": 1696917920,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2GatewayRouter",
"address": "scr:0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79",
"isVerified": true,
"ossifyingSince": 1696917917,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026",
"isVerified": true,
"ossifyingSince": 1696917917,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2MessageQueue",
"address": "scr:0x5300000000000000000000000000000000000000",
"isVerified": true,
"ossifyingSince": 1696917614,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockFast",
"address": "eth:0x0e58939204eEDa84F796FBc86840A50af10eC4F4",
"isVerified": true,
"ossifyingSince": 1696782479,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ScrollOwner",
"address": "eth:0x798576400F7D662961BA15C6b3F3d813447a26a6",
"isVerified": true,
"ossifyingSince": 1696782479,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072",
"isVerified": true,
"ossifyingSince": 1696782311,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Scroll Multisig 2",
"address": "eth:0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc",
"isVerified": true,
"ossifyingSince": 1696661411,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1708589325,
1708689890,
1714341995,
1719915047,
1724196995,
1724412314,
1725376159,
1729119781,
1744728443,
1745301695,
1745564819,
1745836741,
1748243099,
1750248225,
1753093944,
1754391250,
1754761103,
1755485183,
1756488827,
1764490172,
1765784711,
1770602759,
1771825979,
1779270407,
1782371087,
1790041547
],
"criticalChangesPerYear": 8.727235199167435,
"criticalChangesPerYear": 8.727234827603649,
"criticalUpdates": [
{
"id": "54877ab0",
"type": "code"
},
{
"id": "ca551251",
"type": "code"
},
{
"id": "64f1e977",
"type": "state"
},
{
"id": "583fc831",
"type": "state"
},
{
"id": "3595ea64",
"type": "state"
},
{
"id": "2193d319",
"type": "state"
},
{
"id": "5133e1b1",
"type": "state"
},
{
"id": "19d658d4",
"type": "state"
},
{
"id": "b135acb2",
"type": "state"
},
{
"id": "9807e3db",
"type": "state"
},
{
"id": "6ed7fbd2",
"type": "state"
},
{
"id": "a0ae31ea",
"type": "state"
},
{
"id": "8d34a425",
"type": "state"
},
{
"id": "dd400141",
"type": "state"
},
{
"id": "316f6807",
"type": "state"
},
{
"id": "5986410f",
"type": "state"
},
{
"id": "3d076cfd",
"type": "state"
},
{
"id": "82e0b905",
"type": "state"
},
{
"id": "bc8d7ec1",
"type": "state"
},
{
"id": "555a0d79",
"type": "state"
}
],
"lastCriticalChange": 1790041547,
"maturity": 0.31350805041476076,
"maturity": 0.31350834804364075,
"perimeterResets": [
1696660175,
1696782311,
1696917614,
1697113349,
1708589325,
1708689890,
1714341995,
1719915047,
1722833675,
1724196995,
1724412314,
1725336741,
1729119781,
1729781135,
1730294447,
1732607939,
1742476115,
1744728443,
1745301695,
1745564819,
1745836741,
1748243099,
1750248225,
1752663515,
1753067003,
1753339799,
1754391250,
1754694995,
1755485183,
1756488827,
1764490172,
1764678143,
1765784711,
1770602759,
1771825979,
1774419707,
1779270407,
1780317383,
1782371087,
1782469580,
1789438487,
1790041547
],
"projectClockStart": 1790041547,
"score": 31,
"windowSeconds": 93951404
"windowSeconds": 93951408
}
+122 -384
+0 -4
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": []
}
+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": "Nodeinfra",
"type": "RaaS",
"name": "Nodeinfra",
"description": "This project was deployed via the rollup-as-a-service provider Nodeinfra",
"action": {
"type": "scalingFilter",
"id": "raas",
"value": "Nodeinfra"
}
}
],
"description": "Silicon is a Validium built on the Polygon CDK Stack, aiming to become the social network of the future.",
"description": "Silicon is a sovereign Agglayer chain built on the Polygon CDK, aiming to become the social network of the future.",
"links": {
"websites": [
"https://silicon.network/"
],
"bridges": [
"https://bridge.silicon.network/"
],
"documentation": [
"https://docs.silicon.network/"
],
"explorers": [
"https://scope.silicon.network"
],
"repositories": [
"https://github.com/0xSilicon"
],
"socialMedia": [
"https://x.com/0xSilicon",
"https://medium.com/@0xSilicon",
"https://t.me/teamsilicon"
]
}
}
+7 -0
[
{
"title": "Migration to Pessimistic Proofs",
"url": "https://etherscan.io/tx/0xa5a1c5e3c627e972e6c3656017e900007567f9e8b7ecbd9cebd15d317c3c173d#eventlog",
"date": "2026-09-23",
"description": "Silicon stops validating the full L2 state and moves to bridge accounting proofs.",
"type": "general"
},
{
"title": "Silicon Mainnet Launch",
"url": "https://x.com/0xSilicon/status/1828704079687917908",
"date": "2024-08-28",
"description": "Silicon is live on mainnet, integrated with Agglayer.",
"type": "general"
}
]
+16 -12
{
"capability": "universal",
"daLayer": [
"DAC"
"None"
],
"hostChain": {
"id": "ethereum",
"slug": "ethereum",
"name": "Ethereum"
},
"infrastructure": "Agglayer",
"layer": "layer2",
"proofSystem": {
"type": "Validity",
"zkCatalogIds": [
"zkprover"
]
},
"purposes": [
"Universal"
],
"raas": "Nodeinfra",
"reasonsForBeingOther": [
{
"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": "Stage 0",
"type": "Validium",
"vm": [
"EVM"
]
"stage": "Not applicable",
"type": "Other",
"vm": []
}
+1 -113
{
"missing": {
"nextStage": "Stage 1",
"requirements": [
"Users are able to exit without the help of the permissioned operators, provided DA is accessible.",
"In case of an unwanted upgrade by actors more centralized than a Security Council, users have at least 7d to exit.",
"The Security Council is not properly set up.",
"The DA verifier is non-upgradeable, or upgrades to it provide at least a 7d independent exit window.",
"The DA layer does not meet minimum decentralization requirements (DAC <5 external members, or no attestation verifier for an external DA chain).",
"The proof system meets the minimum trusted setup requirements defined in the L2BEAT [trusted setup assessment framework](https://forum.l2beat.com/t/the-trusted-setups-framework-for-zk-catalog/381).",
"Prover source code is published.",
"Onchain verifiers' smart contracts (including the DA verifier) can be independently regenerated from the verifier source code.",
"The sources of all programs used are public and program hashes can be independently regenerated."
],
"principle": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
},
"stage": "Stage 0",
"summary": [
{
"stage": "Stage 0",
"requirements": [
{
"satisfied": true,
"description": "The project self-identifies as a Validium or Optimium."
},
{
"satisfied": true,
"description": "State roots are posted to Ethereum L1."
},
{
"satisfied": true,
"description": "A complete and functional proof system (fraud or validity proofs) is deployed."
},
{
"satisfied": true,
"description": "DA is attested by a committee or external DA layer, not solely by the sequencer."
},
{
"satisfied": true,
"description": "A source-available node exists that can reconstruct the L2 state when DA is accessible. Please note that the L2BEAT team has not verified the validity of the node source code. [View code](https://github.com/0xPolygonHermez/cdk-erigon)"
}
]
},
{
"stage": "Stage 1",
"requirements": [
{
"satisfied": "UnderReview",
"description": "Users are able to exit without the help of the permissioned operators, provided DA is accessible."
},
{
"satisfied": "UnderReview",
"description": "In case of an unwanted upgrade by actors more centralized than a Security Council, users have at least 7d to exit."
},
{
"satisfied": false,
"description": "The Security Council is not properly set up."
},
{
"satisfied": true,
"description": "A secure DA verifier is integrated on L1 that checks DA attestations onchain, enabling challengers to retrieve data and construct proofs."
},
{
"satisfied": "UnderReview",
"description": "The DA verifier is non-upgradeable, or upgrades to it provide at least a 7d independent exit window."
},
{
"satisfied": false,
"description": "The DA layer does not meet minimum decentralization requirements (DAC <5 external members, or no attestation verifier for an external DA chain)."
},
{
"satisfied": "UnderReview",
"description": "The proof system meets the minimum trusted setup requirements defined in the L2BEAT [trusted setup assessment framework](https://forum.l2beat.com/t/the-trusted-setups-framework-for-zk-catalog/381)."
},
{
"satisfied": "UnderReview",
"description": "Prover source code is published."
},
{
"satisfied": "UnderReview",
"description": "Onchain verifiers' smart contracts (including the DA verifier) can be independently regenerated from the verifier source code."
},
{
"satisfied": "UnderReview",
"description": "The sources of all programs used are public and program hashes can be independently regenerated."
}
],
"principle": {
"satisfied": false,
"description": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
}
},
{
"stage": "Stage 2",
"requirements": [
{
"satisfied": false,
"description": "Upgrades unrelated to onchain provable bugs, including upgrades to the DA verifier, provide less than 30d to exit."
},
{
"satisfied": false,
"description": "The Security Council's actions are not confined to onchain provable bugs."
},
{
"satisfied": "UnderReview",
"description": "The DA verifier (and related contracts) is non-upgradeable, or upgrades to it provide at least a 30d independent exit window."
},
{
"satisfied": false,
"description": "The DA mechanism relies on reputational security alone; no staked assets are at risk for DA misbehavior or slashable < TVS."
}
]
}
]
"stage": "NotApplicable"
}
+9 -18
{
"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,
"permissioned": true,
"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 2/3 that is tasked with protecting and supplying the data.",
"sentiment": "bad",
"orderHint": 0.6666666666666666
"value": "External",
"description": "Proof construction and state derivation rely fully on data that is NOT published onchain.",
"sentiment": "bad"
},
"exitWindow": {
"value": "None",
"description": "There is no window for users to exit in case of an unwanted upgrade since the Security Council can remove the delay on upgrades.",
"description": "There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": -1,
"regular": {
"value": "3d",
"sentiment": "warning",
"description": "Even though there is a 3d Timelock for non-emergency upgrades, there are no forced transactions and thus no way to exit during operator censorship or downtime."
}
"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": "2/3 DAC Members",
"value": "None",
"sentiment": "bad",
"description": "There is a threshold of 2/3 members that must sign and attest that the data is correct and available.",
"orderHint": -0.00030000000000000003
"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": {
"content": "The 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.",
"image": "agglayer"
}
}
+1 -58
{
"dac": {
"requiredMembers": 2,
"membersCount": 3
},
"description": "Set of parties responsible for signing and attesting to the availability of data.",
"risks": {
"committeeSecurity": {
"value": "2/3",
"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.00030000000000000003
},
"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": "## 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.",
"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
+4 -4
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * Validium ",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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:0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7",
"type": "EOA",
"isVerified": true,
"name": "0xef5D…dBF7",
"url": "https://etherscan.io/address/0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]\n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments \n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x121EA966b6AA6A361CD4c0b01cb39C6dc65e1b71",
"type": "EOA",
"isVerified": true,
"name": "0x121E…1b71",
"url": "https://etherscan.io/address/0x121EA966b6AA6A361CD4c0b01cb39C6dc65e1b71",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * sole address that can force batches ",
"description": "* Can interact with AggchainECDSAMultisig\n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D",
"type": "EOA",
"isVerified": true,
"name": "0x47ed…d60D",
"url": "https://etherscan.io/address/0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+43 -69
{
"addresses": {
"ethereum": [
{
"name": "PolygonDataCommittee",
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1"
],
"implementations": [
"eth:0xa2F7e6Dfd6f43976ee1E2e8A122984ECa8e38608"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1724259359,
"transactionHash": "0xee62b099c28e601917f60c0abff8441d48a2e7aee41711ff89a9ae0cc2fc647c",
"implementations": [
"eth:0xa2F7e6Dfd6f43976ee1E2e8A122984ECa8e38608"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 3/2).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1724183531,
"transactionHash": "0xc47c5c6b0ea1740437487c101b78895a761501a35bfa97a77d79e803151ccf41",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1745932175,
"transactionHash": "0xdadc987a1a0f2da5a24bcf9c6958c3e4bbe015686cfd2f954ba4f3ee4884dc07",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1790152247,
"transactionHash": "0xa5a1c5e3c627e972e6c3656017e900007567f9e8b7ecbd9cebd15d317c3c173d",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "The main system contract defining the silicon-zk Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: AgglayerManager, EOA 1\n * **forceBatchAddress**: EOA 2\n * **trustedSequencer**: EOA 3",
"description": "System contract defining the silicon-zk 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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 3\n * **forceBatchAddress**: EOA 2",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB#code"
},
{
"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": "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": "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:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3F74698A4ADb075c0501DF739745ACA55Ae543a1#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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#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": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"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"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "e53e6063",
"date": "Thu, 01 Oct 2026 12:51:16 GMT",
"timestamp": 1790850865,
"description": "Silicon (rollupID 10) migrated from Validium to AggchainECDSAMultisig: https://disco.l2beat.com/diff/eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F/eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21. State transitions are no longer proven, only pessimistic (bridge accounting) proofs plus a 1/1 aggchainSigner (the former trusted sequencer). The DAC and its ProxyAdmin are dropped, no data is posted onchain.",
"isHighSeverity": true,
"changeCount": 66,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract PolygonDataCommittee (eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A) [polygon-cdk/PolygonDataCommittee]\n +++ description: Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 3/2).\n```\n\n```diff\n- Status: DELETED\n contract ProxyAdmin (eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n contract AggchainECDSAMultisig (eth:0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB) [polygon-cdk/AggchainECDSAMultisig] {\n +++ description: System contract defining the silicon-zk 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 name:\n- \"PolygonZkEVM\"\n+ \"AggchainECDSAMultisig\"\n template:\n- \"polygon-cdk/PolygonZkEVM\"\n+ \"polygon-cdk/AggchainECDSAMultisig\"\n sourceHashes.1:\n- \"0x5684ac32eb941b26475b5792fd1549caa9c2a7b9da3c5163c16ca5cd4eb4b4a5\"\n+ \"0xa58b59f574674919f2c3fb755a6e3e369c0d5f734d8fcca6fe2664629ad8b25e\"\n description:\n- \"The main system contract defining the silicon-zk Layer 2 logic. Entry point for sequencing batches.\"\n+ \"System contract defining the silicon-zk 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 values.$implementation:\n- \"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F\"\n+ \"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21\"\n values.$pastUpgrades.2:\n+ [\"2026-09-23T08:30:47.000Z\",\"0xa5a1c5e3c627e972e6c3656017e900007567f9e8b7ecbd9cebd15d317c3c173d\",[\"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.calculatePolPerForceBatch:\n- 0\n values.dataAvailabilityProtocol:\n- \"eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A\"\n values.GLOBAL_EXIT_ROOT_MANAGER_L2:\n- \"eth:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA\"\n values.INITIALIZE_TX_BRIDGE_LIST_LEN_LEN:\n- 249\n values.INITIALIZE_TX_BRIDGE_PARAMS:\n- \"0x80808401c9c38094\"\n values.INITIALIZE_TX_BRIDGE_PARAMS_AFTER_BRIDGE_ADDRESS:\n- \"0x80b9\"\n values.INITIALIZE_TX_BRIDGE_PARAMS_AFTER_BRIDGE_ADDRESS_EMPTY_METADATA:\n- \"0x80b8\"\n values.INITIALIZE_TX_CONSTANT_BYTES:\n- 32\n values.INITIALIZE_TX_CONSTANT_BYTES_EMPTY_METADATA:\n- 31\n values.INITIALIZE_TX_DATA_LEN_EMPTY_METADATA:\n- 228\n values.INITIALIZE_TX_EFFECTIVE_PERCENTAGE:\n- \"0xff\"\n values.isSequenceWithDataAvailabilityAllowed:\n- false\n values.SIGNATURE_INITIALIZE_TX_R:\n- \"0x00000000000000000000000000000000000000000000000000000005ca1ab1e0\"\n values.SIGNATURE_INITIALIZE_TX_S:\n- \"0x000000000000000000000000000000000000000000000000000000005ca1ab1e\"\n values.SIGNATURE_INITIALIZE_TX_V:\n- 27\n values.TIMESTAMP_RANGE:\n- 36\n values._legacypendingVKeyManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values._legacyvKeyManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.AGGCHAIN_ECDSA_MULTISIG_VERSION:\n+ \"v1.0.0\"\n+++ description: 0: ECDSA sig verification, 1: limited to vkeys in AggchainGateway with 1 as second byte\n+++ severity: HIGH\n values.AGGCHAIN_TYPE:\n+ \"0x0000\"\n values.aggchainManager:\n+ \"eth:0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7\"\n values.aggchainMetadataManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n+++ severity: HIGH\n values.aggchainMultisigHash:\n+ \"0xdeb4738af69bba13c53cafd89af8aa09f7068cbb6ad1a36f6105a7a6378a03d7\"\n values.aggchainSigners:\n+ [\"eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D\"]\n values.aggLayerGateway:\n+ \"eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3\"\n+++ description: Read by the pessimistic program. 0 - legacy single ECDSA signature, 1 - aggchain hash consisting of the multisig hash (aggchainSigners and threshold), plus an optional aggchain proof vkey and params. This contract sets the vkey and params to zero, so the pessimistic program only verifies the aggchainSigners' ECDSA signatures (multisig-only).\n+++ severity: HIGH\n values.CONSENSUS_TYPE:\n+ 1\n values.getAggchainMultisigHash:\n+ \"0xdeb4738af69bba13c53cafd89af8aa09f7068cbb6ad1a36f6105a7a6378a03d7\"\n values.getAggchainSignerInfos:\n+ [{\"addr\":\"eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D\",\"url\":\"https://rpc.silicon.network\"}]\n values.getAggchainSigners:\n+ [\"eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D\"]\n values.getAggchainSignersCount:\n+ 1\n values.getThreshold:\n+ 1\n values.MAX_AGGCHAIN_SIGNERS:\n+ 255\n values.pendingAggchainManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.threshold:\n+ 1\n+++ severity: HIGH\n values.useDefaultSigners:\n+ false\n+++ severity: HIGH\n values.useDefaultVkeys:\n+ false\n values.version:\n+ \"v1.0.0\"\n fieldMeta.CONSENSUS_TYPE:\n+ {\"severity\":\"HIGH\",\"description\":\"Read by the pessimistic program. 0 - legacy single ECDSA signature, 1 - aggchain hash consisting of the multisig hash (aggchainSigners and threshold), plus an optional aggchain proof vkey and params. This contract sets the vkey and params to zero, so the pessimistic program only verifies the aggchainSigners' ECDSA signatures (multisig-only).\"}\n fieldMeta.aggchainMultisigHash:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.useDefaultSigners:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.useDefaultVkeys:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.AGGCHAIN_TYPE:\n+ {\"severity\":\"HIGH\",\"description\":\"0: ECDSA sig verification, 1: limited to vkeys in AggchainGateway with 1 as second byte\"}\n implementationNames.eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F:\n- \"PolygonValidiumEtrog\"\n implementationNames.eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21:\n+ \"AggchainECDSAMultisig\"\n }\n```\n\n```diff\n EOA (eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D) {\n +++ description: None\n receivedPermissions.0.role:\n- \".trustedSequencer\"\n+ \".aggchainSigners\"\n receivedPermissions.0.description:\n- \"Allowed to commit transactions from the current layer to the host chain.\"\n+ \"sign state transitions (replaces state validation for this aggchain).\"\n }\n```\n\n```diff\n EOA (eth:0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"interact\",\"from\":\"eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A\",\"description\":\"manage the members of the data availability committee and the threshold for valid commitments.\",\"role\":\".owner\"}\n receivedPermissions.1.role:\n- \".admin\"\n+ \".aggchainManager\"\n receivedPermissions.1.description:\n- \"set core system parameters like the trusted sequencer and manage forced transactions/batches.\"\n+ \"replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role.\"\n receivedPermissions.2.description:\n+ \"set the trusted sequencer address.\"\n receivedPermissions.2.via:\n- [{\"address\":\"eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1\"}]\n receivedPermissions.2.role:\n- \"admin\"\n+ \".admin\"\n receivedPermissions.2.from:\n- \"eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A\"\n+ \"eth:0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB\"\n receivedPermissions.2.permission:\n- \"upgrade\"\n+ \"interact\"\n directlyReceivedPermissions:\n- [{\"permission\":\"act\",\"from\":\"eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1\",\"role\":\".owner\"}]\n eoaWithUpgradePermissions:\n- true\n }\n```\n\n```diff\n+ Status: CREATED\n external contract AgglayerGateway (eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3)\n +++ description: None\n```"
}
]
},
{
"id": "6896fed3",
"date": "Tue, 22 Jul 2025 13:54:56 GMT",
"timestamp": 1753192496,
"description": "Updated Fflonk verifier in the initial addresses to the correct one.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Verifier (0x9B9671dB83CfcB4508bF361942488C5cA2b1286D)\n +++ description: Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n```"
}
]
},
{
"id": "6eba077d",
"date": "Mon, 14 Jul 2025 12:46:17 GMT",
"timestamp": 1752497177,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Verifier (0x0775e11309d75aA6b0967917fB0213C5673eDf81)\n +++ description: Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n```\n\n```diff\n+ Status: CREATED\n contract PolygonDataCommittee (0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A)\n +++ description: Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 3/2).\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x3F74698A4ADb075c0501DF739745ACA55Ae543a1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Validium (0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB)\n +++ description: The main system contract defining the silicon-zk Layer 2 logic. Entry point for sequencing batches.\n```"
}
]
},
{
"id": "ca1d48c6",
"date": "Fri, 02 May 2025 17:24:40 GMT",
"timestamp": 1746206680,
"description": "Upgrade to known source: validium type 7 (latest validium). Updated sequencer url.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Validium (0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB) {\n +++ description: The main system contract defining the silicon-zk Layer 2 logic. Entry point for sequencing batches.\n sourceHashes.1:\n- \"0x7c56bc9e6cae8422520d318420d3b180551e366e0e265bc846875479cfabdef7\"\n+ \"0x78d1eb2b96633fb1f594ef672a3791fa85a077fe0cf415ef79d93bc9a2aebd9c\"\n values.$implementation:\n- \"0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C\"\n+ \"0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F\"\n values.$pastUpgrades.1:\n+ [\"2025-04-29T13:09:35.000Z\",\"0xdadc987a1a0f2da5a24bcf9c6958c3e4bbe015686cfd2f954ba4f3ee4884dc07\",[\"0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.trustedSequencerURL:\n- \"http://sequencer.silicon.network:8123\"\n+ \"https://rpc.silicon.network\"\n derivedName:\n- \"PolygonValidiumStorageMigration\"\n+ \"PolygonValidiumEtrog\"\n }\n```"
}
]
},
{
"id": "f38f4057",
"date": "Thu, 19 Sep 2024 09:33:54 GMT",
"timestamp": 1726738434,
"description": "Initial discovery of a standard type 4 PolygonCDK validium. LocalAdmin / Chain Owner is an EOA.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract Verifier (0x0775e11309d75aA6b0967917fB0213C5673eDf81)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SiliconDAC (0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DACProxyAdmin (0x3F74698A4ADb075c0501DF739745ACA55Ae543a1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SiliconValidium (0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB)\n +++ description: None\n```"
}
]
}
]
+12 -0
+12 -0
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
},
{
"projectId": "forknet",
"sinceTimestamp": 1781600877
},
{
"projectId": "katana",
"sinceTimestamp": 1781600877
},
{
"projectId": "lumia",
"sinceTimestamp": 1781600877
},
{
"projectId": "xlayer",
"sinceTimestamp": 1781600877
},
{
"projectId": "penchain",
"sinceTimestamp": 1781600877
},
{
"projectId": "haust",
"sinceTimestamp": 1781600877
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1781600877
},
{
"projectId": "silicon",
"sinceTimestamp": 1790152247
},
{
"projectId": "celo",
"sinceTimestamp": 1771445567
},
{
"projectId": "rise",
"sinceTimestamp": 1767605759
},
{
"projectId": "vector",
"sinceTimestamp": 1771445567
},
{
"projectId": "sophon",
"sinceTimestamp": 1771445567
},
{
"projectId": "lens",
"sinceTimestamp": 1771445567
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1771445567
},
{
"projectId": "blobstream",
"sinceTimestamp": 1771445567
},
{
"projectId": "molten",
"sinceTimestamp": 1771445567
},
{
"projectId": "winr",
"sinceTimestamp": 1771445567
},
{
"projectId": "phala",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1773378287
},
{
"projectId": "kroma",
"sinceTimestamp": 1771445567
},
{
"projectId": "taiko",
"sinceTimestamp": 1774964687
},
{
"projectId": "mantle",
"sinceTimestamp": 1778001356
},
{
"projectId": "morph",
"sinceTimestamp": 1779354407
},
{
"projectId": "base",
"sinceTimestamp": 1779825599
},
{
"projectId": "appchain",
"sinceTimestamp": 1780326419
},
{
"projectId": "apechain",
"sinceTimestamp": 1780346337
}
],
"proofSystemInfo": "## Description\n\nSP1 Hypercube is the latest Succint's RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 Hypercube provides 98 bits of proven security, as per [Ethereum Foundation’s soundcalc evaluation](https://github.com/ethereum/soundcalc/blob/main/reports/sp1.md).\n\n## Proof system\n\nSP1 Hypercube is an iteration of the previous zkVM version, SP1 Turbo, introducing architectural changes that improve prover performance and memory efficiency.\n\nHypercube proves execution of a 64-bit RISC-V VM using several ZK circuits, or chips, connected by lookup arguments ([LogUp based on GKR protocol](https://docs.succinct.xyz/docs/sp1/hypercube/logupgkr)). VM execution trace is split into several shards of size approximately 2^22, that could be proven in parallel with a STARK proving system. Additional arguments prove memory consistency across shards. \n\nThe parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n### Hypercube vs. Turbo\n\nProving time and memory optimizations of SP1 Hypercube are based on several design improvements compared to SP1 Turbo.\n\nHypercube implements a [multilinear polynomial](https://github.com/succinctlabs/sp1/tree/v6.0.0/slop/crates/multilinear) STARK compared to univariate polynomials in Turbo. Multilinear polynomial based proving systems are more efficient than univariate because manipulating them reduces usage of log-linear FFT algorithm.\n\nMultilinear polynomials also allow Hypercube to innovate on a polynomial commitment scheme, implementing [Jagged PCS](https://docs.succinct.xyz/docs/sp1/hypercube/jagged) (defined in [this preprint](https://eprint.iacr.org/2025/917)). Jagged PCS allows efficient packing of computation traces of zkVM chips with different lengths, optimizing the prover memory requirement. More efficient LogUp based on GKR is also made possible because of multilinear polynomials.\n\n### Recursion circuits\n\nSP1 Hypercube provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\nFirst, proofs for correctness of separate shards are generated. These shards may have different trace shape, so in the next step they are normalized. Finally, normalized shard proofs are recursively compressed in batches of 3-4 to a single zkVM proof. For further details see [this page](https://docs.succinct.xyz/docs/sp1/hypercube/recursion).\n\n### Final wrap\n\nSP1 Hypercube supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/sp1/generating-proofs/proof-types#compressed)). The implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup (todo: link to trusted setups section).",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV64",
"type": "ISA",
"name": "RISC-V 64bit",
"description": "Free and open-source universal 64-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
},
{
"id": "KoalaBear",
"type": "Field",
"name": "Koala Bear",
"description": "Prime field of order p = 2**31 - 2**24 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
{
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
},
{
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"id": "SP1HypercubeGroth16_v6_1_0",
"name": "SP1 Hypercube v6.1.0 Groth16 circuit-specific setup",
"participantCount": 18,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 18 participants from 8 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.1.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 18 participants affiliated with Etherealize, Polygon, OP Labs, Alpen Labs, Offchain Labs, Succinct, Coinbase, Across Protocol. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: .\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
},
{
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"id": "SP1HypercubeGroth16",
"name": "SP1 Hypercube Groth16 circuit-specific setup",
"participantCount": 12,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 12 participants from 7 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.0.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 12 participants affiliated with Across Protocol, OP Labs, Offchain Labs, Succinct Labs, Conduit, Ethrealize and 1 independent participant. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: (link is updated and points to a different ceremony now).\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
}
],
"verifierHashes": [
{
"hash": "0x4388a21c687fdd5f218d7e3d13190cac4c5355818d3605fd5fb811df468ee696",
"name": "SP1 Hypercube Groth16 v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0",
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"knownDeployments": [
{
"address": "eth:0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2"
},
{
"address": "eth:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
},
{
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.1.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-17 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x0e78f4db7a6771a3a6a7d9c3b0de6fe73d58781368967a7fe84d87aefffec896",
"name": "SP1 Hypercube Groth16 v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0",
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"knownDeployments": [
{
"address": "eth:0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.0.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-11 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac",
"name": "SP1 Hypercube Plonk v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624"
},
{
"address": "eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692"
},
{
"address": "eth:0x651cA600813fC0126225b727EDbA617949b1d1c9"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 100 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
},
{
"hash": "0xbb1a6f2930e94bfe8b35e794faf43133214534a17d2ad8e51358cad437b3c317",
"name": "SP1 Hypercube Plonk v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
},
{
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
}
]
}
+14 -0
+14 -0
[
{
"id": "64622989",
"date": "Thu, 01 Oct 2026 11:11:01 GMT",
"timestamp": 1790851350,
"description": "The owner of CreditMessagingMintableBurnable manually minted credits without crosschain messages for the USDC pool (gnosis, aurora) and the ETH pool (gnosis, lightlink), stated reason: consolidating balance and credit as part of the deprecation of these remote pools on 2026-09-24.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract CreditMessagingMintableBurnable (eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173) [stargate/CreditMessagingMintableBurnable] {\n +++ description: A LayerZero OApp owned by Stargate that is used for the virtual crosschain accounting of available tokens to the local pools. A local pool thus has a record of how many tokens are available when bridging to another remote pool. The permissioned Planner role can move these credits across chains, the owner can increase/decrease them arbitrarily.\n+++ description: Credits minted manually by the owner without crosschain messages.\n values.creditsMinted.2:\n+ {\"batches\":[[1,[[30145,5585911234],[30211,12487351781]]],[13,[[30145,46611],[30309,32980]]]],\"reason\":\"Minting 5585.911234 USDC for gnosis (eid 30145), 12487.351781 USDC for aurora (eid 30211), 0.046611 ETH for gnosis (eid 30145), 0.032980 ETH for lightlink (eid 30309), to consolidate balance and credit as part of pool deprecation 2026-09-24\"}\n }\n```"
}
]
},
{
"id": "955653d9",
"date": "Mon, 10 Aug 2026 09:10:06 GMT",
"timestamp": 1786352916,
"description": "Multisig member change.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LayerZero Multisig (eth:0xBe010A7e3686FdF65E93344ab664D065A0B02478) [layerzero/OneSigMultisig] {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n values.$members.5:\n+ \"eth:0xdFE4027209C795B84d39FfBfF86bf73572571BAd\"\n values.$members.6:\n+ \"eth:0x2be094F1C9AaF76aD3A789EA4f047BBE7D1DB552\"\n values.$threshold:\n- 3\n+ 5\n values.totalSigners:\n- 5\n+ 7\n }\n```"
}
]
},
{
"id": "4f7c614c",
"date": "Wed, 29 Jul 2026 11:45:00 GMT",
"timestamp": 1785325405,
"description": "One signer was rotated in Stargate Multisig 2. Its 5-of-7 threshold and sole executor are unchanged.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413) [layerzero/OneSigMultisig] {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n values.$members.4:\n- \"eth:0x18b3Bf351B161E3DE0d9d47Efa80d9f474bDd5D1\"\n+ \"eth:0x69784C33E460ab284b32eEA886C2Eb5bA8B5Aa01\"\n }\n```"
}
]
},
{
"id": "307616e4",
"date": "Tue, 21 Jul 2026 08:58:57 GMT",
"timestamp": 1784624234,
"description": "Add 2 multisig signers.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413) [layerzero/OneSigMultisig] {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n values.$members.5:\n+ \"eth:0xA37b4a8A5538d2f21c4eA8a27Db8eda8C6260D1D\"\n values.$members.6:\n+ \"eth:0xc6A38f3dA88Ff791e296C6e05cd669d22a979e03\"\n values.$threshold:\n- 3\n+ 5\n values.totalSigners:\n- 5\n+ 7\n }\n```"
}
]
},
{
"id": "283c8011",
"date": "Tue, 16 Jun 2026 10:18:52 GMT",
"timestamp": 1781604075,
"description": "Upgrade CreditMessaging to a new version that allows the owner to increase/decrease credits without LayerZero verification and crosschain messages.",
"isHighSeverity": false,
"changeCount": 20,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StargatePool (eth:0x268Ca24DAefF1FaC2ed883c598200CcbB79E931D) [stargate/StargatePool] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n contract StargatePoolNative (eth:0x77b2043768d28E9C9aB44E1aBfC95944bcE57931) [stargate/StargatePoolNative] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n contract StargatePoolEURC (eth:0x783129E4d7bA0Af0C896c239E57C06DF379aAE8c) [stargate/StargatePool] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n contract StargatePoolMigratable (eth:0x933597a323Eb81cAe705C5bC29985172fd5A3973) [stargate/StargatePoolMigratable] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n contract CreditMessagingMintableBurnable (eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173) [stargate/CreditMessagingMintableBurnable] {\n +++ description: A LayerZero OApp owned by Stargate that is used for the virtual crosschain accounting of available tokens to the local pools. A local pool thus has a record of how many tokens are available when bridging to another remote pool. The permissioned Planner role can move these credits across chains, the owner can increase/decrease them arbitrarily.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"immutable\"\n name:\n+ \"CreditMessagingMintableBurnable\"\n template:\n+ \"stargate/CreditMessagingMintableBurnable\"\n sourceHashes:\n+ [\"0x1c616d3634303eb13f60270383fe34284126053d38d118f279939768d4b6abc3\"]\n description:\n+ \"A LayerZero OApp owned by Stargate that is used for the virtual crosschain accounting of available tokens to the local pools. A local pool thus has a record of how many tokens are available when bridging to another remote pool. The permissioned Planner role can move these credits across chains, the owner can increase/decrease them arbitrarily.\"\n deployerAddress:\n+ \"eth:0x5e6e4f234c7Ad525700fcF5B7862589950589ed5\"\n sinceTimestamp:\n+ 1780425035\n sinceBlock:\n+ 25231499\n values:\n+ {\"$immutable\":true,\"creditsBurned\":[],\"creditsMinted\":[{\"batches\":[[2,[[30280,23220000000]]]],\"reason\":\"Recover USDT credits burned during past chain unwires, minting 23,220 credits on Ethereum for Sei path srcEid 30280\"},{\"batches\":[[2,[[30280,231000000]]]],\"reason\":\"Recover USDT credits burned during past chain unwires, minting 231 credits on Ethereum for Sei path srcEid 30280\"}],\"endpoint\":\"eth:0x1a44076050125825900e736c501f859c50fE728c\",\"maxAssetId\":23,\"oApp\":\"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\",\"oAppVersion\":{\"senderVersion\":1,\"receiverVersion\":2},\"owner\":\"eth:0xBE634B030FEAaB661300667EaF82510a3a025413\",\"planner\":\"eth:0xe37f7c80ceD04c4F243C0Fd04A5510D663CB88b5\",\"pools\":[\"eth:0xc026395860Db2d07ee33e05fE50ed7bD583189C7\",\"eth:0x933597a323Eb81cAe705C5bC29985172fd5A3973\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x77b2043768d28E9C9aB44E1aBfC95944bcE57931\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0xcDafB1b2dB43f366E48e6F614b8DCCBFeeFEEcD3\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x268Ca24DAefF1FaC2ed883c598200CcbB79E931D\",\"eth:0x783129E4d7bA0Af0C896c239E57C06DF379aAE8c\"],\"preCrime\":\"eth:0x0000000000000000000000000000000000000000\"}\n fieldMeta:\n+ {\"maxAssetId\":{\"description\":\"The highest currently registered assetID\"},\"creditsBurned\":{\"description\":\"Credits burned manually by the owner without crosschain messages.\"},\"creditsMinted\":{\"description\":\"Credits minted manually by the owner without crosschain messages.\"}}\n implementationNames:\n+ {\"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\":\"CreditMessagingMintableBurnable\"}\n }\n```\n\n```diff\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413) [layerzero/OneSigMultisig] {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\",\"description\":\"set OApp delegate, planner, mint and burn credits without validation and other critical configurations.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract StargatePoolUSDC (eth:0xc026395860Db2d07ee33e05fE50ed7bD583189C7) [stargate/StargatePoolUSDC] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n contract StargatePool (eth:0xcDafB1b2dB43f366E48e6F614b8DCCBFeeFEEcD3) [stargate/StargatePool] {\n +++ description: None\n values.getAddressConfig.creditMessaging:\n- \"eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d\"\n+ \"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\"\n }\n```\n\n```diff\n EOA (eth:0xe37f7c80ceD04c4F243C0Fd04A5510D663CB88b5) {\n +++ description: None\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9b4D17b45d60B8173a5904b85a7bAaeC291E9173\",\"description\":\"send credits (asset claims) from pools on this chain to other pools.\",\"role\":\".planner\"}\n }\n```"
}
]
},
{
"id": "0bc5b270",
"date": "Thu, 28 May 2026 10:29:48 GMT",
"timestamp": 1779964108,
"description": "two ms members change.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413) [layerzero/OneSigMultisig] {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n values.$members.2:\n- \"eth:0x18b3Bf351B161E3DE0d9d47Efa80d9f474bDd5D1\"\n+ \"eth:0xf02CC4dc84aC59Bd6089BAddcEB9d4Ef3AEFb0f0\"\n values.$members.4:\n- \"eth:0xf02CC4dc84aC59Bd6089BAddcEB9d4Ef3AEFb0f0\"\n+ \"eth:0x18b3Bf351B161E3DE0d9d47Efa80d9f474bDd5D1\"\n }\n```"
}
]
},
{
"id": "6c3739c8",
"date": "Thu, 21 May 2026 09:34:26 GMT",
"timestamp": 1779355983,
"description": "add required DNV for stargate.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ReceiveUln302 (eth:0xc02Ab410f0734EFa3F14628780e6e695156024C2) [layerzero/ReceiveUln302] {\n +++ description: LayerZero-deployed receive library, defining the validation of received messages.\n values.getUlnConfig.requiredDVNCount:\n- 2\n+ 3\n values.getUlnConfig.requiredDVNs.1:\n+ \"eth:0xa4fE5A5B9A846458a70Cd0748228aED3bF65c2cd\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DVN (eth:0xa4fE5A5B9A846458a70Cd0748228aED3bF65c2cd) [layerzero/DVN]\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```"
}
]
},
{
"id": "1e39cc66",
"date": "Mon, 11 May 2026 12:40:47 GMT",
"timestamp": 1778503168,
"description": "config: lz template changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EndpointV2 (eth:0x1a44076050125825900e736c501f859c50fE728c) [layerzero/EndpointV2] {\n +++ description: A contract that is part of the LayerZero messaging protocol. The Stargate OApp owner can configure verification (MessageLib) and execution settings here.\n values.getReceiveLibrary.isDefault:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "2ad4e87f",
"date": "Tue, 28 Apr 2026 10:12:49 GMT",
"timestamp": 1777371085,
"description": "rm unsupported chains\n\nnethermind reduced signer size.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Nethermind DVN (eth:0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5) {\n +++ description: One of the registered DVNs for the OApp acts through this smart contract. They are allowed to verify LayerZero messages for the Stargate bridge and enable their execution at the destination.\n values.signerSize:\n- 5\n+ 1\n }\n```"
}
]
},
{
"id": "d3d99ad1",
"date": "Mon, 02 Mar 2026 09:48:35 GMT",
"timestamp": 1772444834,
"description": "migrate to baseproject.",
"isHighSeverity": false,
"changeCount": 49,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TokenMessagingBase (base:0x5634c4a5FEd09819E3c46D86A965Dd9447d86e47) {\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n values.pools.22:\n- \"base:0x87Dd5A7481726a53C5Ac6b0D296F5846f95a72f2\"\n+ \"base:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract StargatePoolEURC (base:0x87Dd5A7481726a53C5Ac6b0D296F5846f95a72f2)\n +++ description: None\n```\n\n```diff\n EOA (base:0xe37f7c80ceD04c4F243C0Fd04A5510D663CB88b5) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"base:0x87Dd5A7481726a53C5Ac6b0D296F5846f95a72f2\",\"description\":\"pause the pool and set deficit offsets (affects crosschain liquidity and fees).\",\"role\":\".planner\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract Stargate DVN (eth:0x8FafAE7Dd957044088b3d0F67359C327c6200d18)\n +++ description: One of the registered DVNs for the OApp acts through this smart contract. They are allowed to verify LayerZero messages for the Stargate bridge and enable their execution at the destination.\n```\n\n```diff\n contract Nethermind DVN (eth:0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5) {\n +++ description: One of the registered DVNs for the OApp acts through this smart contract. They are allowed to verify LayerZero messages for the Stargate bridge and enable their execution at the destination.\n values.signerSize:\n- 4\n+ 5\n }\n```\n\n```diff\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413) {\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n values.$members.0:\n- \"eth:0x1D7C6783328C145393e84fb47a7f7C548f5Ee28d\"\n+ \"eth:0xfD3F88EcA6cC5301b6d7068a09dc924aE9dFA3c3\"\n values.$members.1:\n- \"eth:0x2E1078e128e8AA6A70eC8d1B17A79Fc4B457d437\"\n+ \"eth:0x00BD5C12508a346e4355c8Ee085aE2BCB742E814\"\n values.$members.2:\n- \"eth:0x565cFd7224bbc2a81a6e2a1464892ecB27efB070\"\n+ \"eth:0x18b3Bf351B161E3DE0d9d47Efa80d9f474bDd5D1\"\n values.$members.4:\n- \"eth:0x8A403992b0d9CA20f009063C7bE6F20814Cb8AEB\"\n values.totalSigners:\n- 6\n+ 5\n }\n```\n\n```diff\n contract ReceiveUln302 (eth:0xc02Ab410f0734EFa3F14628780e6e695156024C2) {\n +++ description: Receive Library used by LayerZero, defining the validation of received messages.\n values.getUlnConfig.requiredDVNs.0:\n- \"eth:0x8FafAE7Dd957044088b3d0F67359C327c6200d18\"\n+ \"eth:0x589dEDbD617e0CBcB916A9223F4d1300c294236b\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero DVN (eth:0x589dEDbD617e0CBcB916A9223F4d1300c294236b)\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract TokenMessagingArbitrum (arb1:0x19cFCE47eD54a88614648DC3f19A5980097007dD)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (arb1:0xA45B5130f36CDcA45667738e2a258AB09f4A5f7F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolMigratable (arb1:0xcE8CcA271Ebc0533920C83d39F417ED6A0abB7D0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolUSDC (arb1:0xe8CDF27AcD73a434D661C84887215F7598e7d0d3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolUSDC (base:0x27a16dc786820B16E5c9028b75B99F6f604b5d26)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenMessagingBase (base:0x5634c4a5FEd09819E3c46D86A965Dd9447d86e47)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolEURC (base:0x87Dd5A7481726a53C5Ac6b0D296F5846f95a72f2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (base:0xdc181Bd607330aeeBEF6ea62e03e5e1Fb4B6F7C7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Treasurer (eth:0x1041D127b2d4BC700F0F563883bC689502606918)\n +++ description: Permissions proxy allowing addresses to act through it.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero Executor (eth:0x173272739Bd7Aa6e4e214714048a9fE699453059)\n +++ description: Is tasked to execute verified messages at the destination for a fee paid at the origin. Jobs are assigned to this contract by the LayerZero Endpoint.\n```\n\n```diff\n+ Status: CREATED\n contract EndpointV2 (eth:0x1a44076050125825900e736c501f859c50fE728c)\n +++ description: A contract that is part of the LayerZero messaging protocol. The Stargate OApp owner can configure verification (MessageLib) and execution settings here.\n```\n\n```diff\n+ Status: CREATED\n contract BlockedMessageLib (eth:0x1ccBf0db9C192d969de57E25B3fF09A25bb1D862)\n +++ description: Simple LayerZero library that blocks all messages if configured.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePool (eth:0x268Ca24DAefF1FaC2ed883c598200CcbB79E931D)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Treasury (eth:0x5ebB3f2feaA15271101a927869B3A56837e73056)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CreditMessaging (eth:0x6b8aD17795d89B283e6D0362A87A403f3544bb9d)\n +++ description: A LayerZero OApp owned by Stargate that is used for the virtual crosschain accounting of available tokens to the local pools. A local pool thus has a record of how many tokens are available when bridging to another remote pool. The permissioned Planner role can move these credits.\n```\n\n```diff\n+ Status: CREATED\n contract TokenMessagingEthereum (eth:0x6d6620eFa72948C5f68A3C8646d58C00d3f4A980)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract ReadLib1002 (eth:0x74F55Bc2a79A27A0bF1D1A35dB5d0Fc36b9FDB9D)\n +++ description: LayerZero library used to read state from remote blockchains.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (eth:0x77b2043768d28E9C9aB44E1aBfC95944bcE57931)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolEURC (eth:0x783129E4d7bA0Af0C896c239E57C06DF379aAE8c)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Stargate DVN (eth:0x8FafAE7Dd957044088b3d0F67359C327c6200d18)\n +++ description: One of the registered DVNs for the OApp acts through this smart contract. They are allowed to verify LayerZero messages for the Stargate bridge and enable their execution at the destination.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolMigratable (eth:0x933597a323Eb81cAe705C5bC29985172fd5A3973)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xa36797bA947b378AefE5f726Cd87766CD3c25Ee3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Nethermind DVN (eth:0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5)\n +++ description: One of the registered DVNs for the OApp acts through this smart contract. They are allowed to verify LayerZero messages for the Stargate bridge and enable their execution at the destination.\n```\n\n```diff\n+ Status: CREATED\n contract SendUln302 (eth:0xbB2Ea70C9E858123480642Cf96acbcCE1372dCe1)\n +++ description: Send Library used by LayerZero, defining the protocol/execution of sent messages.\n```\n\n```diff\n+ Status: CREATED\n contract Stargate Multisig 2 (eth:0xBE634B030FEAaB661300667EaF82510a3a025413)\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolUSDC (eth:0xc026395860Db2d07ee33e05fE50ed7bD583189C7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ReceiveUln302 (eth:0xc02Ab410f0734EFa3F14628780e6e695156024C2)\n +++ description: Receive Library used by LayerZero, defining the validation of received messages.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePool (eth:0xcDafB1b2dB43f366E48e6F614b8DCCBFeeFEEcD3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenMessagingLinea (linea:0x5f688F563Dc16590e570f97b542FA87931AF2feD)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (linea:0x81F6138153d473E8c5EcebD3DC8Cd4903506B075)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolMigratable (oeth:0x19cFCE47eD54a88614648DC3f19A5980097007dD)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolUSDC (oeth:0xcE8CcA271Ebc0533920C83d39F417ED6A0abB7D0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (oeth:0xe8CDF27AcD73a434D661C84887215F7598e7d0d3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenMessagingOptimism (oeth:0xF1fCb4CBd57B67d683972A59B6a7b1e2E8Bf27E6)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolUSDC (scr:0x3Fc69CC4A842838bCDC9499178740226062b14E4)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenMessagingScroll (scr:0x4e422B0aCb2Bd7e3aC70B5c0E5eb806e86a94038)\n +++ description: A LayerZero OApp owned by Stargate that manages bridging messages from all pools on Ethereum. It can batch messages with a 'bus' mode or dispatch them immediately (taxi) for higher fees.\n```\n\n```diff\n+ Status: CREATED\n contract StargatePoolNative (scr:0xC2b638Cb5042c1B3c5d5C969361fB50569840583)\n +++ description: None\n```"
}
]
},
{
"id": "52d51948",
"date": "Mon, 14 Jul 2025 12:46:28 GMT",
"timestamp": 1752497188,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 29,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Factory (0x06D538690AF257Da524f25D0CD52fD85b1c2173E)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DAI Pool (0x0Faf1d2d3CED330824de3B8200fc8dc6E397850d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SG-ETH Pool (0x101816545F6bd2b1076434B54383a1E633390A2E)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WOO Pool (0x1CE66c52C36757Daf6551eDc04800A0Ec9983A09)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0x296F55F8Fb28E498B858d0BcDA06D955B2Cb3f97)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TreasuryV2 (0x3773E1E9Deb273fCdf9f80bc88bB387B1e6Ce34d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract USDT Pool (0x38EA452219524Bb87e18dE1C24D3bB59510BD783)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract USDT Pool2 (0x430Ebff5E3E80A6C58E7e6ADA1d90F5c28AA116d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract UltraLightNodeV2 (0x4D73AdB72bC3DD368966edD0f0b2148401A178E2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract sUSD Pool (0x590d4f8A68583639f215f675F3a259Ed84790580)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TSS Oracle (0x5a54fe5234E811466D5366846283323c954310B2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract NonceContract (0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StarGate Multisig (0x65bb797c2B9830d891D87288F029ed8dACc19705)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Endpoint (0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract USDD Pool (0x692953e758c3669290cb1677180c64183cEe374e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Router (0x8731d54E9D02c286767d56ac03e8037C07e01e98)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StarGateFeeLibrary7 (0x8C3085D9a554884124C998CDB7f6d7219E9C1e6F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero Relayer (0x902F09715B6303d4173037652FA7377e5b98089E)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x967bAf657ec4d4b1cb00b06f7Cc6E8BA604e3AC8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MAI Pool (0x9cef9a0b1bE0D289ac9f4a98ff317c33EAA84eb8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract mETH Pool (0xA572d137666DCbAdFA47C3fC41F15e90134C618c)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xA658742d33ebd2ce2F0bdFf73515Aa797Fd161D9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero Multisig (0xBe010A7e3686FdF65E93344ab664D065A0B02478)\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n```\n\n```diff\n+ Status: CREATED\n contract Google Cloud Oracle (0xD56e4eAb23cb81f43168F9F45211Eb027b9aC7cc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract METIS Pool (0xd8772edBF88bBa2667ed011542343b0eDDaCDa47)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract VerifierFeeLib (0xdeA04ef31C4B4FDf31CB58923F37869739280d49)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract USDC Pool (0xdf0770dF86a8034b3EFEf0A1Bb3c889B8332FF56)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LUSD Pool (0xE8F55368C82D38bbbbDb5533e7F56AfC2E978CC2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Frax Pool (0xfA0F307783AC21C39E939ACFF795e27b650F6e68)\n +++ description: None\n```"
}
]
},
{
"id": "68c5a9fa",
"date": "Wed, 09 Jul 2025 15:13:57 GMT",
"timestamp": 1752074037,
"description": "Update LZ Multisig to a custom multisig contract that allows offchain signing with multichain onchain execution.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TreasuryV2 (0x3773E1E9Deb273fCdf9f80bc88bB387B1e6Ce34d) {\n +++ description: None\n values.owner:\n- \"0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92\"\n+ \"0xBe010A7e3686FdF65E93344ab664D065A0B02478\"\n }\n```\n\n```diff\n contract UltraLightNodeV2 (0x4D73AdB72bC3DD368966edD0f0b2148401A178E2) {\n +++ description: None\n values.owner:\n- \"0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92\"\n+ \"0xBe010A7e3686FdF65E93344ab664D065A0B02478\"\n }\n```\n\n```diff\n contract Endpoint (0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675) {\n +++ description: None\n values.owner:\n- \"0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92\"\n+ \"0xBe010A7e3686FdF65E93344ab664D065A0B02478\"\n }\n```\n\n```diff\n- Status: DELETED\n contract LayerZero Multisig (0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero Multisig (0xBe010A7e3686FdF65E93344ab664D065A0B02478)\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\n```"
}
]
},
{
"id": "2e81cf41",
"date": "Tue, 28 Jan 2025 15:04:50 GMT",
"timestamp": 1738076690,
"description": "LayerZero MS update: members swapped and new member added (now 3/5).",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LayerZero Multisig (0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92) {\n +++ description: None\n values.$members.4:\n+ \"0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e\"\n values.$members.3:\n- \"0x67FC8c432448f9a8d541C17579EF7a142378d5aD\"\n+ \"0x9F403140Bc0574D7d36eA472b82DAa1Bbd4eF327\"\n values.$members.2:\n- \"0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e\"\n+ \"0x771dcAcB96024d1e55Fd21Fe8a8187AA7EC9e77e\"\n values.$members.1:\n- \"0xBb6633cc267951E938F9B6421E4F54aa5b2c1936\"\n+ \"0x112c737AeEbD2E52DEb9ff5c9c19497F1A1777b0\"\n values.$members.0:\n- \"0x9F403140Bc0574D7d36eA472b82DAa1Bbd4eF327\"\n+ \"0xB981a2664f5f547291Df5F8dCD4505f7015912CF\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "bf719ff7",
"date": "Mon, 25 Nov 2024 10:52:49 GMT",
"timestamp": 1732531969,
"description": "MS signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarGate Multisig (0x65bb797c2B9830d891D87288F029ed8dACc19705) {\n +++ description: None\n values.$members.4:\n- \"0xF05F4211ad15A8e49b49C0436067CFFfEa783aA4\"\n+ \"0x7C8D1Db01130acEEc5fF892c99a18c4b4BAdC326\"\n }\n```"
}
]
},
{
"id": "281b5bc7",
"date": "Wed, 23 Oct 2024 10:07:17 GMT",
"timestamp": 1729678037,
"description": "LayerZero Multisig: One signer removed.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LayerZero Multisig (0xCDa8e3ADD00c95E5035617F970096118Ca2F4C92) {\n +++ description: None\n values.$members.4:\n- \"0x67FC8c432448f9a8d541C17579EF7a142378d5aD\"\n values.$members.3:\n- \"0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e\"\n+ \"0x67FC8c432448f9a8d541C17579EF7a142378d5aD\"\n values.$members.2:\n- \"0xBb6633cc267951E938F9B6421E4F54aa5b2c1936\"\n+ \"0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e\"\n values.$members.1:\n- \"0xe095F2590eF1Ab39601445025847Ed8E4B40D687\"\n+ \"0xBb6633cc267951E938F9B6421E4F54aa5b2c1936\"\n values.multisigThreshold:\n- \"2 of 5 (40%)\"\n+ \"2 of 4 (50%)\"\n }\n```"
}
]
},
{
"id": "98fd4566",
"date": "Thu, 14 Mar 2024 14:12:08 GMT",
"timestamp": 1710425528,
"description": "New PriceFeed Oracle implementation has been deployed. Chain paths and liquidity data has been updated.",
"isHighSeverity": true,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract (0xC03f31fD86a9077785b7bCf6598Ce3598Fa91113) {\n +++ description: None\n upgradeability.implementation:\n- \"0xF641db6860FD5f6643D05bD75405a2586a63a141\"\n+ \"0x13dff8847EA170eBb8439ce732c0A14Bb49fDd92\"\n implementations.0:\n- \"0xF641db6860FD5f6643D05bD75405a2586a63a141\"\n+ \"0x13dff8847EA170eBb8439ce732c0A14Bb49fDd92\"\n }\n```"
}
]
},
{
"id": "6665d9cf",
"date": "Wed, 14 Feb 2024 10:08:14 GMT",
"timestamp": 1707905294,
"description": "A new pool for mETH is added. The Default basis point multiplier of the Google Oracle is updated (related to fees). The latest version of the LayerZero Endpoint contract is updated:\n\n- Version 4: 0xd231084bfb234c107d3ee2b22f97f3346fdaf705 (SendUln301)\n- Version 5: 0x245b6e8ffe9ea5fc301e32d16f66bd4c2123eefc (ReceiveUln301)",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Factory (0x06D538690AF257Da524f25D0CD52fD85b1c2173E) {\n values.allPools[12]:\n+ \"0xA572d137666DCbAdFA47C3fC41F15e90134C618c\"\n values.allPoolsLength:\n- 12\n+ 13\n }\n```\n\n```diff\n contract Endpoint (0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675) {\n values.latestVersion:\n- 3\n+ 5\n }\n```\n\n```diff\n contract Google Cloud Oracle (0xD56e4eAb23cb81f43168F9F45211Eb027b9aC7cc) {\n values.defaultMultiplierBps:\n- 12000\n+ 12100\n }\n```\n\n```diff\n+ Status: CREATED\n contract mETH Pool (0xA572d137666DCbAdFA47C3fC41F15e90134C618c) {\n }\n```"
}
]
},
{
"id": "079a47d9",
"date": "Tue, 19 Dec 2023 13:36:06 GMT",
"timestamp": 1702992966,
"description": "Added new config values.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract UltraLightNodeV2 (0x4D73AdB72bC3DD368966edD0f0b2148401A178E2) {\n values.stargateOracles[1]:\n+ \"0x000000000000000000000000d56e4eab23cb81f43168f9f45211eb027b9ac7cc\"\n values.stargateOracles[0]:\n+ \"0x0000000000000000000000005a54fe5234e811466d5366846283323c954310b2\"\n values.stargateRelayers[0]:\n+ \"0x000000000000000000000000902f09715b6303d4173037652fa7377e5b98089e\"\n }\n```"
}
]
},
{
"id": "bc8f9ae0",
"date": "Thu, 23 Nov 2023 13:31:10 GMT",
"timestamp": 1700746270,
"description": "StarGateFeeLibrary7 owner was replaced: 0x1D7C6783328C145393e84fb47a7f7C548f5Ee28d -> 0x65bb797c2B9830d891D87288F029ed8dACc19705",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarGateFeeLibrary7 (0x8C3085D9a554884124C998CDB7f6d7219E9C1e6F) {\n values.owner:\n- \"0x1D7C6783328C145393e84fb47a7f7C548f5Ee28d\"\n+ \"0x65bb797c2B9830d891D87288F029ed8dACc19705\"\n }\n```"
}
]
},
{
"id": "ad5a1603",
"date": "Fri, 17 Nov 2023 12:24:03 GMT",
"timestamp": 1700223843,
"description": "One EOA owner was replaced in StarGate Multisig:\n\n- removed: 0x285b7EEa81a5B66B62e7276a24c1e0F83F7409c1\n- added: 0x2E1078e128e8AA6A70eC8d1B17A79Fc4B457d437\n\nThe same change was performed on a multisig in the Aptos project.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StarGate Multisig (0x65bb797c2B9830d891D87288F029ed8dACc19705) {\n values.getOwners.2:\n- \"0x285b7EEa81a5B66B62e7276a24c1e0F83F7409c1\"\n+ \"0x1D7C6783328C145393e84fb47a7f7C548f5Ee28d\"\n values.getOwners.1:\n- \"0x1D7C6783328C145393e84fb47a7f7C548f5Ee28d\"\n+ \"0x565cFd7224bbc2a81a6e2a1464892ecB27efB070\"\n values.getOwners.0:\n- \"0x565cFd7224bbc2a81a6e2a1464892ecB27efB070\"\n+ \"0x2E1078e128e8AA6A70eC8d1B17A79Fc4B457d437\"\n }\n```"
}
]
}
]
+1 -1
+1 -1
{
"clusteredEventCount": 35,
"contracts": [
{
"name": "SHARPVerifierCallProxy",
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"isVerified": true,
"ossifyingSince": 1788425939,
"codeChangeCount": 13,
"stateChangeCount": 10
},
{
"name": "Starknet",
"address": "eth:0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4",
"isVerified": true,
"ossifyingSince": 1783559567,
"codeChangeCount": 10,
"stateChangeCount": 12
},
{
"name": "SHARPVerifier",
"address": "eth:0x4956bda1d23F75B988644329c5B06BD1494a72b6",
"isVerified": true,
"ossifyingSince": 1782997607,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CairoBootloaderProgram",
"address": "eth:0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47",
"isVerified": true,
"ossifyingSince": 1768486895,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0x7ca0201319f98b5494d90d0f8dA9427C64AF135e",
"isVerified": true,
"ossifyingSince": 1759907651,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierRecursiveLargeOutput_2026_13",
"address": "eth:0xbe0F8F150Fd10798524B4de80eD75751658CAEF3",
"isVerified": true,
"ossifyingSince": 1759907651,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonPartialRoundKey1Column",
"address": "eth:0xECc282Dc2571E43696d3259490faFa3b98790e20",
"isVerified": true,
"ossifyingSince": 1759907651,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey0Column",
"address": "eth:0x21578B24F86AdF6f59C406f641F693745C31Ea8F",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0x2c9726B081305F314A74D570F0FED8dd9fab01A1",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey2Column",
"address": "eth:0x4576bA889ddCb27738c4D3b8dF2FF2616650BA0b",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonPartialRoundKey0Column",
"address": "eth:0x5318edCfEcAF84EB5A3A4D364C2dCFF06083953E",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey2Column",
"address": "eth:0x69833933e59269aB062eAfDe074C059ce5DC7755",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierDexWithBitwise_2026_13",
"address": "eth:0x6a67796ee97700B5B5f5aFBCFFDCbc5F80803F11",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierStarknet_2026_13",
"address": "eth:0x71574057D12541ccDa98643aC56441838353A26D",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0x9Ddb8A6E3B23B33CE685e6d9f89f0ca25510AE6F",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0xa40115c39Dc257E5aAE39e2F311AF6a0247bb766",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonPartialRoundKey0Column",
"address": "eth:0xb45b87Ba49C64F79df0EF81043a57999af5Ea7A0",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonPartialRoundKey1Column",
"address": "eth:0xc1Cd710bB0d8A07A46Cc884a552091d1ED433Ccc",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0xC716C4E3f68ad6785524f65Df129fC090339dBD8",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0xd67C6798df68b98f1ef10BEeF0f35De788014fAA",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey0Column",
"address": "eth:0xdf10757de64811df030cf88bB700B8CC63bAB090",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey1Column",
"address": "eth:0xe58327a05F21ab12AB33A4408003A87e571f810D",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PoseidonPoseidonFullRoundKey1Column",
"address": "eth:0xE5AC9312f30623EB20D435533A4205790aF68Fd0",
"isVerified": true,
"ossifyingSince": 1759907627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierAllSolidity_2026_13",
"address": "eth:0x015381651F240Ed6C44122dCba6Cf807c9442CD6",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierDex_2026_13",
"address": "eth:0x0cD0cDf0132c566db61B691BCEEBA2c4D8cA5CdC",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0x1BdE14B50e7dAeD71eE14F7e8defaa3d8A7D4420",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierRecursive_2026_13",
"address": "eth:0x2867A4509B0969531641A42a3D4A9B0A07109B6B",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0x35e9F63Efc97E008f3f9097eA3293b540483e7Cb",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0x3E727f44Fd2c92bd960AAb86DaAcD1A831B16eba",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0x8f3af16cF4eB89f256cDebeaDd46e1b982dC4775",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0x99480b7c32C4F8965fF1929a368Dd586C6DC3595",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0xE4937AC1Da4211c6E48cf41A7B298b74edA9B103",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierPerpetual_2026_13",
"address": "eth:0xFFC7974cd74b95f631f454cd787AAc28F0476b44",
"isVerified": true,
"ossifyingSince": 1759907615,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0xaE325CE505AA13EDC30d48187B05c24A3BaC2707",
"isVerified": true,
"ossifyingSince": 1759907603,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuVerifierSmall_2026_13",
"address": "eth:0x30F3AB988Cb00fe3Fb5ab891F50c13684770419b",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0x9A62fa46D88697bBbEFAf5F9Ef1234E6502d31a9",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EcdsaPointsXColumn",
"address": "eth:0xa3da166aef05dBa08d67EA5b442dD9574274b9Ce",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuOods",
"address": "eth:0xa4D0Bb20c708262155378C9D14A5A6A863E15Dd4",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PedersenHashPointsYColumn",
"address": "eth:0xA55C0F91945958C40f7fa41EB650340245F4B6c2",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EcdsaPointsYColumn",
"address": "eth:0xCaea5002758D5B977680Fe65164B7fE6a062C771",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "CpuConstraintPoly",
"address": "eth:0xd8e47340bdC4fB06D37056b1725c653836Cc81E5",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PedersenHashPointsXColumn",
"address": "eth:0xDc596B881bD9e33d3A56AE86031417645d1d9E70",
"isVerified": true,
"ossifyingSince": 1759907591,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ETHBridge",
"address": "eth:0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"isVerified": true,
"ossifyingSince": 1746967799,
"codeChangeCount": 7,
"stateChangeCount": 1
},
{
"name": "STRKBridge",
"address": "eth:0xcE5485Cfb26914C5dcE00B9BAF0580364daFC7a4",
"isVerified": true,
"ossifyingSince": 1746967799,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "DelayedExecutor",
"address": "eth:0xCA112018fEB729458b628AadC8f996f9deCbCa0c",
"isVerified": true,
"ossifyingSince": 1739989031,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Starkware Multisig 4",
"address": "eth:0x77Dd0cf03e1cCbDC750c9E5FDc34b8A3671f88c5",
"isVerified": true,
"ossifyingSince": 1739799179,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "Starkware Security Council",
"address": "eth:0x15e8c684FD095d4796A0c0CF678554F4c1C7C361",
"isVerified": true,
"ossifyingSince": 1738762427,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Starkware SCMinority Multisig",
"address": "eth:0xF6b0B3e8f57396CecFD788D60499DB49Ee6AbC6B",
"isVerified": true,
"ossifyingSince": 1738599755,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "FriStatementContract",
"address": "eth:0x30EfaAA99f8eFe310D9FdC83072e2a04c093d400",
"isVerified": true,
"ossifyingSince": 1721828687,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MerkleStatementContract",
"address": "eth:0x32a91Ff604AB2aDCd832e91D68b2f3f25358FdAd",
"isVerified": true,
"ossifyingSince": 1721828687,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MemoryPageFactRegistry",
"address": "eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460",
"isVerified": true,
"ossifyingSince": 1721828687,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Starkware Multisig 1",
"address": "eth:0x83C0A700114101D1283D1405E2c8f21D3F03e988",
"isVerified": true,
"ossifyingSince": 1672699319,
"codeChangeCount": 0,
"stateChangeCount": 1
}
],
"criticalChanges": [
1643193921,
1647853574,
1649596101,
1651510161,
1655284858,
1659869409,
1662879548,
1668953231,
1672699319,
1678106063,
1680016103,
1684906283,
1702910664,
1703000047,
1705239263,
1707387203,
1707738959,
1708939523,
1709727321,
1710252923,
1710411335,
1710753100,
1713709115,
1722161267,
1722600046,
1724855579,
1728835151,
1732790039,
1738588637,
1738755599,
1739105903,
1739799179,
1742836319,
1743157821,
1746967799,
1747066175,
1756750079,
1760862467,
1765192091,
1765378643,
1769954759,
1776686015,
1777465247,
1782033359,
1783559567,
1783857227,
1788425939
],
"criticalChangesPerYear": 11.666666666666666,
"criticalUpdates": [
{
"id": "e399b73a",
"type": "state"
},
{
"id": "0fcca41a",
"type": "state"
},
{
"id": "b1da51ab",
"type": "state"
},
{
"id": "a1687a92",
"type": "state"
},
{
"id": "136742c7",
"type": "state"
},
{
"id": "403be4bd",
"type": "state"
},
{
"id": "bcac9b64",
"type": "state"
},
{
"id": "769dfe3d",
"type": "state"
},
{
"id": "5c0c724a",
"type": "state"
},
{
"id": "fb997882",
"type": "state"
},
{
"id": "71a58712",
"type": "state"
},
{
"id": "79f54597",
"type": "state"
},
{
"id": "c8776771",
"type": "state"
},
{
"id": "b57bb0df",
"type": "state"
},
{
"id": "2d6b1be9",
"type": "state"
},
{
"id": "df508c6c",
"type": "state"
},
{
"id": "10e44fc3",
"type": "state"
},
{
"id": "dfb011c3",
"type": "state"
},
{
"id": "f7adf9c0",
"type": "state"
},
{
"id": "83d55362",
"type": "state"
},
{
"id": "cee2be16",
"type": "state"
},
{
"id": "9d5a75e1",
"type": "state"
},
{
"id": "1ec6e472",
"type": "state"
},
{
"id": "770edbe2",
"type": "state"
}
],
"lastCriticalChange": 1788425939,
"maturity": 0.44987863716787846,
"maturity": 0.4498788849735591,
"perimeterResets": [
1635080785,
1636979180,
1643193921,
1647853574,
1649596101,
1651510161,
1655284858,
1659869409,
1662879548,
1668953231,
1672587635,
1672699319,
1678106063,
1680016103,
1684906283,
1702910664,
1703000047,
1704907283,
1705239263,
1707387203,
1707738959,
1708939523,
1709727321,
1710252923,
1710411335,
1710753100,
1713709115,
1721828687,
1722161267,
1722600046,
1724855579,
1727171111,
1727697611,
1728835151,
1732790039,
1738588637,
1738755371,
1739105903,
1739799179,
1739989031,
1742836319,
1743157821,
1746449747,
1746967799,
1747066175,
1756750079,
1759907591,
1760862467,
1765192091,
1765378643,
1768486895,
1769954759,
1776686015,
1777465247,
1782033359,
1782997607,
1783559567,
1783857227,
1788425939
],
"projectClockStart": 1788425939,
"score": 45,
"windowSeconds": 94608000
}
+10 -10
+1 -1
{
"baseTimestamp": 1790776285,
"baseTimestamp": 1790850875,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+6 -6
[
{
"id": "b58d30a9",
"date": "Wed, 30 Sep 2026 13:53:29 GMT",
"timestamp": 1790776285,
"description": "New proposal, reviewed here: https://gist.github.com/sekuba/fd963174c4054a34ffb8c49f2c8bbf29 added reproduced program hashes.",
"id": "8abd4ccf",
"date": "Thu, 01 Oct 2026 11:11:03 GMT",
"timestamp": 1790850875,
"description": "- Two new standard DAO proposals (25 and 26), both still open in their veto period:\n - veto ends 2026-10-04: upgrades MainnetBridge, MainnetERC20Vault, MainnetERC721Vault, MainnetERC1155Vault, registers addresses in DefaultResolver and sends an L1->L2 message.\n - veto ends 2026-10-10: upgrades MainnetInbox, changes trusted RISC Zero image IDs and SP1 programs, changes MrEnclave values in both AutomataDcapV3Attestation contracts and deletes SGX instances in both SecureSgxVerifiers. Reviewed here: https://gist.github.com/sekuba/fd963174c4054a34ffb8c49f2c8bbf29.",
"isHighSeverity": false,
"changeCount": 4,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 40\n+ 41\n values.proposalIds.40:\n+ \"609192021977025249345447570106396801273767657512\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n values.proposalCount:\n- 25\n+ 27\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.1:\n+ \"eth:0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06\"\n }\n```"
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 40\n+ 42\n values.proposalIds.40:\n+ \"609192021977025249345447570106396801273767657512\"\n values.proposalIds.41:\n+ \"609381197194961808191081799941267350559458852905\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n values.proposalCount:\n- 25\n+ 27\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.1:\n+ \"eth:0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06\"\n }\n```"
}
]
},
{
"id": "1c35c2f8",
"date": "Tue, 22 Sep 2026 13:48:20 GMT",
"timestamp": 1790078329,
"description": "Two proposals executed: \n\n1. Security Council reduced from 9 to 5 members, thresholds now 3/5 standard and 4/5 emergency (This removes the 'correctly set-up' qualification for a Security Council - too few participants and threshold too low). \n2. Raiko2 proving set updated v0.6.0 -> v0.8.0-rc1 (RISC0 image IDs, SP1 vkeys, SGX mrEnclaves, old SGX instances deleted).",
"isHighSeverity": true,
"changeCount": 41,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b) [taiko/Risc0Verifier] {\n +++ description: Gating router contract to verify batches using RISC Zero.\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.0:\n- \"0x5a818b4c7dc80e9ba85d55492c20c263c67238724e3982f76d15a158e501210b\"\n+ \"0xd6ab71c22201c23ef512b706f2e2d720f6da1b559fb76834aa9d4e35276f6e10\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.1:\n- \"0x9cfcc1b34a98853c3c5873a4d456726e528246f7f03a4ea35f27c2543aa6e7f0\"\n+ \"0xdd9b8abff96c409ae2418edfb51d893ea2bd10f4873a0226f17a6998c1afc1b7\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0x0F40268Ec0Dc8D88CF2f22E227A29a0b478b6351) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n contract SignerList (Security Council) (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) [taiko/SignerList] {\n +++ description: A signer list for storing multisig members and their agents, stores the addresses of the Multisigs that use this signer list. Each signer delegates their permissions to their agent address that they can configure here.\n values.$members.0:\n- \"eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439\"\n values.$members.1:\n- \"eth:0x93533a3511E9b0d5c17b1CBD0e1737781DEf61a6\"\n values.$members.2:\n- \"eth:0x884c3e8235788ae52C2106E847e30BD84F2FBCb8\"\n values.$members.3:\n- \"eth:0x22aD66bcEaeff83e1461772Fa85CbeB01f0915f4\"\n values.$members.4:\n- \"eth:0x4236f57E9dBc238878EFac4AeF0A16D4dD06DC1A\"\n+ \"eth:0x736d9e59cDd406aEee09253fF18BA6cb7be67CBD\"\n values.$members.6:\n- \"eth:0x18B4f2afe456Dc89bddE9710476dCfC62D01d656\"\n+ \"eth:0x884c3e8235788ae52C2106E847e30BD84F2FBCb8\"\n values.$members.7:\n- \"eth:0x1d955983044548E03DAA583B36A37cA4bdE6F556\"\n+ \"eth:0xF74F2bBaEd41e3e4AbAcbA24563a5Ce5aB071C8A\"\n values.$members.8:\n- \"eth:0xc4414B079bC4A013916B3dc241555F6f505c1619\"\n+ \"eth:0xe63E61BbB3aa1b82d44471AbcAb490102C17c986\"\n values.addresslistLength:\n- 9\n+ 5\n values.multisigSigners.0:\n- \"eth:0x436a1075099A145417EBFc74BBaC9605e3e4f1A7\"\n values.multisigSigners.3:\n- \"eth:0x0F40268Ec0Dc8D88CF2f22E227A29a0b478b6351\"\n values.multisigSigners.4:\n- \"eth:0x5353c607e6eca6C63FEC5c6C0F5CC3a5348d5c95\"\n values.multisigSigners.5:\n- \"eth:0x25d3E89bAcE2040Ed3aF7c4c7B505cfBB72fD6f1\"\n values.multisigSigners.6:\n- \"eth:0xa384E224A3F3D664F43eBE33395eF0DCcE67e894\"\n values.multisigSigners.3:\n+ \"eth:0xe63E61BbB3aa1b82d44471AbcAb490102C17c986\"\n values.multisigSigners.8:\n- \"eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E\"\n+ \"eth:0xF74F2bBaEd41e3e4AbAcbA24563a5Ce5aB071C8A\"\n values.settings.minSignerListLength:\n- 8\n+ 4\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0x2d2216efbe9d8e80ba24b86606ccd5ce9faf11033d31ad9e5d3c5c89965c8a57\"\n+ \"0x5f7da556f3b75dcc71465030e1b7274e82df9e9120c0b3eaf5bb76246a514005\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0x25d3E89bAcE2040Ed3aF7c4c7B505cfBB72fD6f1) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) [taiko/EmergencyMultisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n values.lastMultisigSettingsChange:\n- 24269141\n+ 25997731\n+++ severity: HIGH\n values.minApprovals:\n- 7\n+ 4\n values.multisigSettings.minApprovals:\n- 7\n+ 4\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0x436a1075099A145417EBFc74BBaC9605e3e4f1A7) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0x5353c607e6eca6C63FEC5c6C0F5CC3a5348d5c95) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n contract TaikoSP1Verifier (eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F) [taiko/SP1Verifier] {\n +++ description: Gating router contract to verify batches using SP1.\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.0:\n- \"0x00ad090221a8fa0f09e1be7a53feb67be010f01310d4b2314a69d10152ee1ce0\"\n+ \"0x0025425c22e827507428a3d9c7b0f89635be5462f34bb6780563e3d6086be7c7\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.1:\n- \"0x568481106a3e83c23c37cf4a3feb67be008780984352c8c514d3a20252ee1ce0\"\n+ \"0x12a12e113a09d41d05147b387b0f89632df2a3174d2ed9e00ac7c7ac086be7c7\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.2:\n- \"0x000b11691352e55fcf64f62620cefaa700161600093f2751032fe71ea912264d\"\n+ \"0x0051ac1d9e8cfd4196e37f9cfefd08e9b0f7ce653bad4634cd1ee84b71ca3be6\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.3:\n- \"0x0588b48954b957f36c9ec4c40cefaa7000b0b00024fc9d44065fce3d2912264d\"\n+ \"0x28d60ecf233f50655c6ff39f6fd08e9b07be73296eb518d31a3dd09671ca3be6\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0x90c79e65d6d0f83d658ff96cd0ef1204438f20b406c93cf1d4fafa0cff29842e\"\n+ \"0x3564b6a30089fcb3e2f69c19b22d23f84ce148387cd7a15f5c1df165b2ae5847\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.1:\n- \"0x041cadb0541bf8249c368482172d218608f3693975b65f74beb2ed6f0044f951\"\n+ \"0xae2c7b92b2a71238226cb624ecd1171b66bf943cc372314affca0e6748ccecdf\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 39\n+ 40\n values.proposalIds.39:\n+ \"609097156697645562436844254022738698161067393063\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0xa384E224A3F3D664F43eBE33395eF0DCcE67e894) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.lastMultisigSettingsChange:\n- 24588180\n+ 25997731\n+++ severity: HIGH\n values.minApprovals:\n- 5\n+ 3\n values.multisigSettings.minApprovals:\n- 5\n+ 3\n+++ description: total standard proposal count.\n values.proposalCount:\n- 24\n+ 25\n }\n```"
}
]
},
{
"id": "95f4937a",
"date": "Fri, 18 Sep 2026 10:21:44 GMT",
"timestamp": 1789471567,
"description": "critical contracts and severities for the ossification perimeter",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Bridge (taiko:0x1670000000000000000000000000000000000001) [taiko/L2Bridge]\n +++ description: Bridge escrow holding preminted ETH on Taiko.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Vault (taiko:0x1670000000000000000000000000000000000002) [taiko/L2ERC20Vault]\n +++ description: Escrow for L2-native tokens sent to L1 via the canonical bridge.\n```\n\n```diff\n+ Status: CREATED\n contract SignalService (taiko:0x1670000000000000000000000000000000000005) [taiko/SignalService]\n +++ description: Facilitates secure cross-chain message passing by storing signals and state-root checkpoints. Bridge escrows and other applications use it to prove that a specific L1<->L2 signal or checkpointed state transition occurred via Merkle proofs. Pausing disables signal proof verification.\n```\n\n```diff\n+ Status: CREATED\n contract L2AddressManager (taiko:0x1670000000000000000000000000000000000006) [taiko/L2AddressManager]\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract Anchor (taiko:0x1670000000000000000000000000000000010001) [taiko/Anchor]\n +++ description: Stores L1 block details on L2 as a cross-layer oracle and manages EIP-1559 gas pricing for L2 operations.\n```\n\n```diff\n+ Status: CREATED\n contract DelegateController (taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C) [taiko/DelegateController]\n +++ description: Middleware contract that can maintain ownership of DAO-controlled assets and contracts. It can only be invoked by the TaikoDAOController on L1 through the L2 bridge.\n```"
}
]
},
{
"id": "c351d4cb",
"date": "Tue, 15 Sep 2026 11:27:38 GMT",
"timestamp": 1789471567,
"description": "Operator changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.1:\n- \"eth:0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06\"\n }\n```"
}
]
},
{
"id": "a51f9d57",
"date": "Tue, 01 Sep 2026 12:14:34 GMT",
"timestamp": 1788264785,
"description": "SC proposal moving to veto phase.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (Security Council) (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) [taiko/SignerList] {\n +++ description: A signer list for storing multisig members and their agents, stores the addresses of the Multisigs that use this signer list. Each signer delegates their permissions to their agent address that they can configure here.\n values.$members.0:\n- \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n+ \"eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 38\n+ 39\n values.proposalIds.38:\n+ \"608479335948875503511285097395089134668700712998\"\n }\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n+ \"eth:0xFa92ff698D57f7B875570D9F59501812B843CD44\"\n }\n```"
}
]
},
{
"id": "ec5264fb",
"date": "Thu, 27 Aug 2026 12:07:50 GMT",
"timestamp": 1787832377,
"description": "Add proposal that reduces the Security Council to a 4/5 multisig. The resulting Council is not a valid Security Council after the L2BEAT criteria: https://medium.com/l2beat/stages-update-security-council-requirements-4c79cea8ef52, https://forum.l2beat.com/t/stage-1-requirements-update-security-council-walkaway-test/412 .\n\nfull review of the proposal: https://gist.github.com/sekuba/b19aa30b123d7247280e96f5a49e5c15 .",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 37\n+ 38\n values.proposalIds.37:\n+ \"608325339122031231284005618251537221674155900965\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n+++ severity: HIGH\n values.proposalCount:\n- 23\n+ 24\n }\n```"
}
]
},
{
"id": "9777f08d",
"date": "Tue, 25 Aug 2026 08:45:40 GMT",
"timestamp": 1787647451,
"description": "Proposal 22: https://gist.github.com/sekuba/e325f390dbe8a73ebc53c1ad95e6c48d bringing proving efficiency.\n\nProghashes are reproduced.",
"isHighSeverity": true,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n+++ severity: HIGH\n values.proposalCount:\n- 22\n+ 23\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.1:\n- \"eth:0x2267C7246523191b8bf7615B86b3bdEE612b7D9E\"\n+ \"eth:0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06\"\n }\n```"
}
]
},
{
"id": "14d2f176",
"date": "Mon, 17 Aug 2026 08:31:35 GMT",
"timestamp": 1786955407,
"description": "Multisig changes.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Taiko Foundation Treasury Multisig (eth:0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xA1D62c7df45847089cfB052396Abe4cDa7879d25\"\n values.$members.1:\n+ \"eth:0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a\"\n values.$members.0:\n- \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n+ \"eth:0x7A5299927F93ffCf33cf381CB0C03C2486b9299A\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"3 of 5 (60%)\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.2:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```"
}
]
},
{
"id": "ebe21a45",
"date": "Tue, 04 Aug 2026 10:17:48 GMT",
"timestamp": 1785837430,
"description": "This is the onchain deployment of the [Unzen upgrade](https://dao.taiko.xyz/plugins/community-proposals/#/proposals/36), which will be activated on Aug 6.\n\nMainnetInbox diff: https://disco.l2beat.com/diff/eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01/eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9\n- adds back forced txs\n- no self-proposal though\n\nZK verifier diff: https://disco.l2beat.com/diff/eth:0x71808449A6217898d602c1a392D95b931Ac5d878/eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec\n- ZK proof always required: Taiko is a Stage 0 validity rollup\n\nadd TEE and ZK program hashes for the new Unzen programs (ZK is reproduced [here](https://gist.github.com/sekuba/754362718c457edaba93d71dc073b91e))\n\nL2BEAT SC member safe moves to 1/1 (single signer: sekuba).",
"isHighSeverity": true,
"changeCount": 33,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b) [taiko/Risc0Verifier] {\n +++ description: Gating router contract to verify batches using RISC Zero.\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.0:\n- \"0xa38d1fac63aa6a553fdb6fea01fdc96534564c31de916aaafe5f5a1dd3bb908b\"\n+ \"0x5a818b4c7dc80e9ba85d55492c20c263c67238724e3982f76d15a158e501210b\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.1:\n- \"0x868b5154ae01a9a045051da2d7ba2e21d4132c7ec096da343fa24149407fefef\"\n+ \"0x9cfcc1b34a98853c3c5873a4d456726e528246f7f03a4ea35f27c2543aa6e7f0\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0xbefb2c7ec44cefe57f4ff0ca815a8b8f15e05631bf3abe36cbc12d28f778fa36\"\n+ \"0x2d2216efbe9d8e80ba24b86606ccd5ce9faf11033d31ad9e5d3c5c89965c8a57\"\n }\n```\n\n```diff\n EOA (eth:0x3D4997AAC0834BEb5ede861c424807Aa3F29b5bB) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2\",\"description\":\"configure an agent address that represents this entity in the Security Council\",\"role\":\".multisigSigners\",\"via\":[{\"address\":\"eth:0xf1cF63589A1e012F9124182c9eAa36B5333e5f06\"}]}]\n }\n```\n\n```diff\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f) [taiko/MainnetInbox] {\n +++ description: The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. Users can enqueue forced inclusions by publishing an L1 blob. Once an inclusion is due, subsequent proposals must process it, but proposing remains restricted by the configured proposer checker. If the configured prover whitelist is non-empty, proofs from non-whitelisted provers revert.\n template:\n- \"taiko/MainnetInboxRestricted\"\n+ \"taiko/MainnetInbox\"\n sourceHashes.1:\n- \"0xd6d3af78f692a4c928f8e1b046eca6884ed0d15d120df586c3509c802795d433\"\n+ \"0xa0a8e3ebc196ae2703fc2c0dc5bc16012644bbcd103c34bf6241389ccadc0fd0\"\n description:\n- \"The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. Forced inclusion submission and processing are disabled in this implementation. Proposals must come from the configured proposer checker, and if the configured prover whitelist is non-empty, proofs from non-whitelisted provers revert; the configured permissionless proving delay is not used to open proving.\"\n+ \"The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. Users can enqueue forced inclusions by publishing an L1 blob. Once an inclusion is due, subsequent proposals must process it, but proposing remains restricted by the configured proposer checker. If the configured prover whitelist is non-empty, proofs from non-whitelisted provers revert.\"\n values.$implementation:\n- \"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01\"\n+ \"eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9\"\n values.$pastUpgrades.3:\n+ [\"2026-08-03T12:46:23.000Z\",\"0x64875b5b84b41b520551854696c0ce408fb3e0aa2ede604cc95a5919b6140ea7\",[\"eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getConfig.proofVerifier:\n- \"eth:0x71808449A6217898d602c1a392D95b931Ac5d878\"\n+ \"eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec\"\n+++ severity: HIGH\n values.getCurrentForcedInclusionFee:\n- 1020000\n+ 1000000\n values.impl:\n- \"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01\"\n+ \"eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9\"\n values.noForce:\n- [true]\n fieldMeta.noForce:\n- {\"severity\":\"HIGH\",\"description\":\"Forced inclusions are disabled in this implementation: saveForcedInclusion() always reverts and propose() only accepts zero forced inclusions.\"}\n implementationNames.eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01:\n- \"MainnetInbox\"\n implementationNames.eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetVerifier (eth:0x71808449A6217898d602c1a392D95b931Ac5d878) [taiko/MainnetVerifier]\n +++ description: Immutable verifier policy contract for Taiko mainnet. Each accepted proof must contain exactly two ordered sub-proofs: either SGX-GETH plus SGX-RETH/RISC0-RETH/SP1-RETH, or SGX-RETH plus SGX-GETH/RISC0-RETH/SP1-RETH. It routes each sub-proof to the corresponding downstream verifier.\n```\n\n```diff\n contract TaikoSP1Verifier (eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F) [taiko/SP1Verifier] {\n +++ description: Gating router contract to verify batches using SP1.\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.0:\n- \"0x007594632ec31fae9d44799b97316fcbcaa3ff6b5db268c7a5d8025b3bbb487e\"\n+ \"0x00ad090221a8fa0f09e1be7a53feb67be010f01310d4b2314a69d10152ee1ce0\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.1:\n- \"0x3aca319730c7eba7288f33727316fcbc551ffb5a76c9a31e4bb004b63bbb487e\"\n+ \"0x568481106a3e83c23c37cf4a3feb67be008780984352c8c514d3a20252ee1ce0\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.2:\n- \"0x00e91cb391c22d6fd015e4c6041dbbe6efb2d8be6d4046eec28f12acba5a17bc\"\n+ \"0x000b11691352e55fcf64f62620cefaa700161600093f2751032fe71ea912264d\"\n+++ description: Taiko-specific SP1 program verification keys trusted by this verifier gateway. Only proofs for these programs can be successfully verified.\n+++ severity: HIGH\n values.trustedPrograms.3:\n- \"0x748e59c8708b5bf402bc98c041dbbe6e7d96c5f335011bbb051e25593a5a17bc\"\n+ \"0x0588b48954b957f36c9ec4c40cefaa7000b0b00024fc9d44065fce3d2912264d\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0xdccd8f30ea4a137ddfa63d743e3aa7c7a8e80585912d19c4b66f7d8d6098bec4\"\n+ \"0x90c79e65d6d0f83d658ff96cd0ef1204438f20b406c93cf1d4fafa0cff29842e\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.1:\n- \"0x92dd96a170d1ffb998afa210b3ef8af8c408ab76c4717e0eb8076d4a5da4e740\"\n+ \"0x041cadb0541bf8249c368482172d218608f3693975b65f74beb2ed6f0044f951\"\n }\n```\n\n```diff\n contract Gustavo Gonzalez Taiko (eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n+ \"eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439\"\n }\n```\n\n```diff\n contract L2BEAT (eth:0xf1cF63589A1e012F9124182c9eAa36B5333e5f06) [GnosisSafe] {\n +++ description: None\n values.$members.1:\n- \"eth:0x6dcB04fCC1c597DAFad86e2886bE463d53CaFAdf\"\n values.$threshold:\n- 2\n+ 1\n values.multisigThreshold:\n- \"2 of 2 (100%)\"\n+ \"1 of 1 (100%)\"\n receivedPermissions:\n- [{\"permission\":\"interact\",\"from\":\"eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2\",\"description\":\"configure an agent address that represents this entity in the Security Council\",\"role\":\".multisigSigners\"}]\n directlyReceivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2\",\"description\":\"configure an agent address that represents this entity in the Security Council\",\"role\":\".multisigSigners\"}]\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.0:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.operatorMapping.2:\n- \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ZkRequiredVerifier (eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec) [taiko/ZkRequiredVerifier]\n +++ description: Immutable verifier policy contract for Taiko mainnet. Every accepted proof contains exactly two ordered sub-proofs and at least one must be a ZK proof. Accepted pairs are SGX-GETH or SGX-RETH with RISC0-RETH or SP1-RETH, and RISC0-RETH with SP1-RETH. The SGX-GETH plus SGX-RETH pair is not accepted.\n```"
}
]
},
{
"id": "458d55ad",
"date": "Wed, 29 Jul 2026 11:40:03 GMT",
"timestamp": 1785325120,
"description": "Operator rotation.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.1:\n- \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.operatorMapping.2:\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n }\n```"
}
]
},
{
"id": "0c537e31",
"date": "Thu, 23 Jul 2026 13:54:23 GMT",
"timestamp": 1784814782,
"description": "A third preconfirmation operator was added to the whitelist.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.2:\n+ \"eth:0x2267C7246523191b8bf7615B86b3bdEE612b7D9E\"\n }\n```"
}
]
},
{
"id": "c0090ce5",
"date": "Fri, 17 Jul 2026 07:47:14 GMT",
"timestamp": 1784274333,
"description": "One Security Council agent is changed. The [Unzen upgrade proposal](https://dao.taiko.xyz/plugins/community-proposals/#/proposals/36) moves into the optimistic public phase.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (Security Council) (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) [taiko/SignerList] {\n +++ description: A signer list for storing multisig members and their agents, stores the addresses of the Multisigs that use this signer list. Each signer delegates their permissions to their agent address that they can configure here.\n values.$members.4:\n- \"eth:0xbC40317A69CB1D1aF2CBcfE32C8B7a6840Dc287a\"\n+ \"eth:0x4236f57E9dBc238878EFac4AeF0A16D4dD06DC1A\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 36\n+ 37\n values.proposalIds.36:\n+ \"607065748551507217783827454409519139164457533476\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n+++ severity: HIGH\n values.proposalCount:\n- 21\n+ 22\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.2:\n- \"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\"\n }\n```"
}
]
},
{
"id": "83beb47d",
"date": "Wed, 08 Jul 2026 11:24:06 GMT",
"timestamp": 1783509666,
"description": "Quota changes 150K -> 250K per day for stables (USDT and USDC).",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract QuotaManager (eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC) [taiko/QuotaManager] {\n +++ description: Defines withdrawal quotas for ETH and ERC20 releases from the shared bridge. A token quota of zero means unlimited withdrawals for that token.\n values.tokenQuotas.3.quota:\n- \"150,000\"\n+ \"250,000\"\n values.tokenQuotas.4.quota:\n- \"150,000\"\n+ \"250,000\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.2:\n+ \"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\"\n }\n```"
}
]
},
{
"id": "e0cf6e6c",
"date": "Thu, 02 Jul 2026 08:00:24 GMT",
"timestamp": 1782979130,
"description": "Bridges unpaused. Taiko is live again, without forced transactions or proposer fallback.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (Security Council) (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) [taiko/SignerList] {\n +++ description: A signer list for storing multisig members and their agents, stores the addresses of the Multisigs that use this signer list. Each signer delegates their permissions to their agent address that they can configure here.\n values.$members.4:\n- \"eth:0x4236f57E9dBc238878EFac4AeF0A16D4dD06DC1A\"\n+ \"eth:0xbC40317A69CB1D1aF2CBcfE32C8B7a6840Dc287a\"\n }\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) [taiko/EmergencyMultisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: total count of encrypted emergency proposals created.\n+++ severity: HIGH\n values.proposalCount:\n- 34\n+ 35\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 35\n+ 36\n values.proposalIds.35:\n+ \"606707631305171219093581685850458871248271179811\"\n }\n```\n\n```diff\n contract MainnetERC20Vault (eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) [taiko/SharedERC20Vault] {\n +++ description: Shared vault for Taiko chains for bridged ERC20 tokens. Pausing stops token sends, message-triggered releases, and recalls. Released or minted tokens are subject to the configured quota manager.\n+++ severity: HIGH\n values.paused:\n- true\n+ false\n }\n```\n\n```diff\n contract MainnetBridge (eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) [taiko/TaikoBridge] {\n +++ description: Shared bridge escrow for Taiko chains for bridged ETH and arbitrary bridge messages. Pausing stops sending, processing, recalling, retrying, and failing messages. ETH released from the bridge is subject to the configured quota manager.\n+++ severity: HIGH\n values.paused:\n- true\n+ false\n }\n```"
}
]
},
{
"id": "423dca4a",
"date": "Tue, 30 Jun 2026 14:13:09 GMT",
"timestamp": 1782824701,
"description": "MainnetInbox is upgraded to the restricted implementation with forced inclusions disabled; proposals are gated by PreconfWhitelist with no fallback proposer path, proving routes through MainnetVerifier, and bridge/vault releases are governed by QuotaManager.\n\ndiffs:\n- over all contracts: unrelated formatting changes and hardcoding of addresses instead of using the resolver\n- signalService: https://disco.l2beat.com/diff/eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752/eth:0x1A06832992785766a105838C95c1E13a0045AC85 adds immutable pauser/unpause and `VERSION` invalidates all old cache + checkpoints\n- MainnetBridge: https://disco.l2beat.com/diff/eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F/eth:0x1c94D798CFA08F396E5BA9F81697289c53273381 quota changes and init3 sets three message hashes (0x9972, 0xf299, 0xea26) to DONE (currently RETRYABLE)\n- MainnetERC20Vault: https://disco.l2beat.com/diff/eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63/eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c quota changes\n- MainnetInbox: https://disco.l2beat.com/diff/eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098/eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01 (init2/rollback to `_lastFinalizedProposalId = 18051`, `lastFinalizedBlockHash = 0x64c2ada556b6862d2c8796e0f709c454fede9d03908711a9f04d9f9f9dcce470`, disable forced inclusion)\n- MainnetVerifier: https://disco.l2beat.com/diff/eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d/eth:0x71808449A6217898d602c1a392D95b931Ac5d878 pointers changes only\n- sgxgeth: https://disco.l2beat.com/diff/eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1/eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee add registrar `0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F` (whitelisted `registerInstance` caller), add `SGX_FORBIDDEN_ATTRIBUTE_MASK` to blacklist debug mode\n- sgxreth: https://disco.l2beat.com/diff/eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1/eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee same as above\n- sp1RethVerifier: https://disco.l2beat.com/diff/eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6/eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F no source diff, but removes all trusted vkeys and adds four new ones\n- risc0RethVerifier: all image ids removed, added two new ones (`0xa38d1fac63aa6a553fdb6fea01fdc96534564c31de916aaafe5f5a1dd3bb908b`,`0x868b5154ae01a9a045051da2d7ba2e21d4132c7ec096da343fa24149407fefef`)\n- dcap 0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261(geth): `mrSigners = ['0x48fa5bbad91d274735d238715913c8712a7505bb6d0dd832764bedb46d587013']`, `mrEnclaves = ['0xbefb2c7ec44cefe57f4ff0ca815a8b8f15e05631bf3abe36cbc12d28f778fa36']\n- dcap 0x8d7C954960a36a7596d7eA4945dDf891967ca8A3(reth): `mrSigners = ['0x48fa5bbad91d274735d238715913c8712a7505bb6d0dd832764bedb46d587013']`, `mrEnclaves = ['0xdccd8f30ea4a137ddfa63d743e3aa7c7a8e80585912d19c4b66f7d8d6098bec4', '0x92dd96a170d1ffb998afa210b3ef8af8c408ab76c4717e0eb8076d4a5da4e740']\n- all other enclaves and the old signer are removed\n\nProgram hashes source used: taikoxyz/raiko2 v0.5.1, commit b08f4c57cd69a0f8dc1316a21f4ce4b08eddbebe. Regenerated values match exactly:\n```\n risc0 aggregation image_id 0x868b5154ae01a9a045051da2d7ba2e21d4132c7ec096da343fa24149407fefef\n risc0 proposal image_id 0xa38d1fac63aa6a553fdb6fea01fdc96534564c31de916aaafe5f5a1dd3bb908b\n sp1 aggregation vk_bn254 0x00e91cb391c22d6fd015e4c6041dbbe6efb2d8be6d4046eec28f12acba5a17bc\n sp1 aggregation vk_hash_bytes 0x748e59c8708b5bf402bc98c041dbbe6e7d96c5f335011bbb051e25593a5a17bc\n sp1 proposal vk_bn254 0x007594632ec31fae9d44799b97316fcbcaa3ff6b5db268c7a5d8025b3bbb487e\n sp1 proposal vk_hash_bytes 0x3aca319730c7eba7288f33727316fcbc551ffb5a76c9a31e4bb004b63bbb487e\n```",
"isHighSeverity": true,
"changeCount": 125,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b) [taiko/Risc0Verifier] {\n +++ description: Gating router contract to verify batches using RISC Zero.\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.0:\n- \"0x779c032b91d0730ef13b26eafa47b32df7ebdaa4ed766d587fe905530afa2544\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.1:\n- \"0x26abb0237d10e891443e2a76bd3c1f6704c1ad03c07cb2165f4afcfc64b3cee7\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.2:\n- \"0x46efe5e0c74976548ee6856789fbfb4929b8f2f9118a119c57ced6e1062e727b\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.3:\n- \"0xdfbce2039ad8b78b236b5a9dceba5d8cee0d9e4638fc8f1fe11a0b2d8bfa039e\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.4:\n- \"0xbee1be4cbe2bdf9b0034a1ab6572061a76019e73189ff96322e58ab229b75f92\"\n+ \"0xa38d1fac63aa6a553fdb6fea01fdc96534564c31de916aaafe5f5a1dd3bb908b\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.5:\n- \"0xcecc85819e15d173c2991577727525b136e820728f7aaaede612f1281cac2249\"\n+ \"0x868b5154ae01a9a045051da2d7ba2e21d4132c7ec096da343fa24149407fefef\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SgxVerifier (eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1) [taiko/SgxVerifier]\n +++ description: Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n```\n\n```diff\n contract SignerList (Security Council) (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) [taiko/SignerList] {\n +++ description: A signer list for storing multisig members and their agents, stores the addresses of the Multisigs that use this signer list. Each signer delegates their permissions to their agent address that they can configure here.\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F\",\"description\":\"manage trusted SP1 program verification keys.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.7:\n- {\"permission\":\"interact\",\"from\":\"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"description\":\"update token withdrawal quotas and the quota refill period.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.8.description:\n- \"manage trusted SP1 program verification keys.\"\n+ \"update the contract address registered for any chainId-name pair.\"\n receivedPermissions.8.from:\n- \"eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6\"\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.13:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.17:\n- {\"permission\":\"interact\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.24.from:\n- \"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.30:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0xfda8bb1fc9938700c25353c0a5fabc96a238e69ce8e35f08e558831a20db33a6\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.1:\n- \"0x692c8624d30a327340b0dfbb67203e941175ac700d1a058c717e5269103d37e6\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.2:\n- \"0x3e6113a23bbdf9231520153253047d02db8f1dd38a9b52914ab7943278f52db0\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.3:\n- \"0xd1f43acede51c4eb2f66b86cce52682edad80b810b9d87fba3a9b67254c91b77\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.4:\n- \"0x398be8424f27802b38e6e8d3413bf6a0b187349e68522a218f5bfc00279006ac\"\n+ \"0xbefb2c7ec44cefe57f4ff0ca815a8b8f15e05631bf3abe36cbc12d28f778fa36\"\n+++ description: Trusted SGX signer measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrSigners.0:\n- \"0xca0583a715534a8c981b914589a7f0dc5d60959d9ae79fb5353299a4231673d5\"\n+ \"0x48fa5bbad91d274735d238715913c8712a7505bb6d0dd832764bedb46d587013\"\n }\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) [taiko/EmergencyMultisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: total count of encrypted emergency proposals created.\n+++ severity: HIGH\n values.proposalCount:\n- 33\n+ 34\n }\n```\n\n```diff\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f) [taiko/MainnetInboxRestricted] {\n +++ description: The core Layer 1 entrypoint for the Taiko rollup where L2 block batches are proposed and their corresponding state transitions are proven. Forced inclusion submission and processing are disabled in this implementation. Proposals must come from the configured proposer checker, and if the configured prover whitelist is non-empty, proofs from non-whitelisted provers revert; the configured permissionless proving delay is not used to open proving.\n sourceHashes.1:\n- \"0xc8fb004590f1c60e5c9735be36da74676fdc93286aa44749d3156ad33bc416e7\"\n+ \"0xd6d3af78f692a4c928f8e1b046eca6884ed0d15d120df586c3509c802795d433\"\n values.$implementation:\n- \"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098\"\n+ \"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01\"\n values.$pastUpgrades.2:\n+ [\"2026-06-29T13:18:35.000Z\",\"0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7\",[\"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getConfig.proofVerifier:\n- \"eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d\"\n+ \"eth:0x71808449A6217898d602c1a392D95b931Ac5d878\"\n values.impl:\n- \"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098\"\n+ \"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01\"\n implementationNames.eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098:\n- \"MainnetInbox\"\n implementationNames.eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n contract TaikoDAOController (eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) [taiko/TaikoDAOController] {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\"}\n directlyReceivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\"}\n directlyReceivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F\",\"description\":\"manage trusted SP1 program verification keys.\",\"role\":\".owner\"}\n directlyReceivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"description\":\"update token withdrawal quotas and the quota refill period.\",\"role\":\".owner\"}\n directlyReceivedPermissions.6.description:\n- \"manage trusted SP1 program verification keys.\"\n+ \"update the contract address registered for any chainId-name pair.\"\n directlyReceivedPermissions.6.from:\n- \"eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6\"\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n directlyReceivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\"}\n directlyReceivedPermissions.9:\n- {\"permission\":\"interact\",\"from\":\"eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6\",\"description\":\"add SGX instances without DCAP attestation and delete registered instances.\",\"role\":\".owner\"}\n directlyReceivedPermissions.12:\n- {\"permission\":\"interact\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n directlyReceivedPermissions.18.from:\n- \"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n directlyReceivedPermissions.23:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) [taiko/AutomataDcapV3Attestation] {\n +++ description: Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.0:\n- \"0xdfcb4fca3073e3f3a90b05d328688c32619d56f26789c0a9797aa10e765a7807\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.1:\n- \"0xbdec26abd36fde2cfbb8db7a0793a9346b11bd558b39890407d458500711c88c\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.2:\n- \"0xa5f741bfed254a1e21738d429e7bd074e25918af7f71fbe1e0135c3974b06e00\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.3:\n- \"0x3551faac39edee5abfaa19ab065c217db1485aebae255a9edddf6dfff6b29b52\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.4:\n- \"0x13ea9869632ac20b176ae0fdc39998b2a644a695db024ef7fe0e4b3c59084160\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.5:\n- \"0xa096348d480eb0474f5eab182671933c029545521960d87d4e49283005809be9\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.6:\n- \"0xa4eedfc6484494d4c08bfb9b9dd887c6e0540ba9d8ee207fe0e16814852e3356\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.7:\n- \"0xc90e5d2e39d1d3f8397a6048c32ba50139d1577c28985e1f7638785935f41734\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.8:\n- \"0x9546301721e2ea111ab0f79b6e529d6bb6c486ac98bcf7739429ad06c09db63d\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.9:\n- \"0x3f71cf178a032816c2731a43aef746c464a5326e891dc881773ec2b599b2cf0a\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.10:\n- \"0xdcd483d3406d9b1871bb92420f5a080c4372e0d6b8522a4a2cb91a0f736669c6\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.11:\n- \"0x3b589538b775ddbfc5fb028167ff846116159e6687aef9f849ca5a70a7871ea5\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.12:\n- \"0xb09f9005e4612526e378466b5c16ab6028478e81c085812d6ed37166c4cda10e\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.13:\n- \"0x6e43c1d575b5b785d0f6259dfac44998c6f0c164864f9f98270fb740c14eb943\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.14:\n- \"0x631778b0d420d2d0bba4c730b0fd74857afeefb3429371ae97ab450e40ca127e\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.15:\n- \"0x482b06132c4306ea55bc34ff90d46532ff4151f473dbfe4d2cb2442af2ff288b\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.16:\n- \"0xca349ba0dfeced0bd837a56c97417c11e51d490eec4ff08321dd130776a413bd\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.17:\n- \"0xe2375b778ee5700a73c7fcf449abb4a62e00127d324b6694898073ba5aff4f5c\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.18:\n- \"0x67742ab222790e20ba3656b3b294645a3384a5df5a770b86f8c06529523d990e\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.19:\n- \"0xddda8ba9c9153e3d2f680f2f53adbc774a9753cc55d40dde4cb02aef38c42109\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.20:\n- \"0xe5774b71990b0d5f3eca8d4d22546764dd9549c743a1a6d4d4863d97f6b8c67a\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.21:\n- \"0x605ad10c1a56ed7289f198d64a39a952cd3b8a0bed3fcb19c8301c1847dc3a2f\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.22:\n- \"0x59bf7d48610cc8a56ba8a390b68c31a1443297869b174aeacac67dc152820f0e\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.23:\n- \"0xf285b7cbd78d2b96cdc54cfea3e47d8f510a4b4f91b719c97f8bbb90974f805b\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.24:\n- \"0x8f73135b83a84126c7fff37ea02f9363e134aea0f6446b13e198b20d94e75099\"\n+ \"0xdccd8f30ea4a137ddfa63d743e3aa7c7a8e80585912d19c4b66f7d8d6098bec4\"\n+++ description: Trusted SGX enclave measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrEnclaves.25:\n- \"0x72258d3cae0e9901d0efc1f630064f1c44f11950bd25fee0b62ec8df84532da2\"\n+ \"0x92dd96a170d1ffb998afa210b3ef8af8c408ab76c4717e0eb8076d4a5da4e740\"\n+++ description: Trusted SGX signer measurements accepted by attestation verification.\n+++ severity: HIGH\n values.mrSigners.0:\n- \"0xca0583a715534a8c981b914589a7f0dc5d60959d9ae79fb5353299a4231673d5\"\n+ \"0x48fa5bbad91d274735d238715913c8712a7505bb6d0dd832764bedb46d587013\"\n }\n```\n\n```diff\n- Status: DELETED\n contract QuotaManager (eth:0x91f67118DD47d502B1f0C354D0611997B022f29E) [taiko/QuotaManager]\n +++ description: Defines withdrawal quotas for ETH and ERC20 releases from the shared bridge. A token quota of zero means unlimited withdrawals for that token.\n```\n\n```diff\n- Status: DELETED\n contract TaikoSP1Verifier (eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6) [taiko/SP1Verifier]\n +++ description: Gating router contract to verify batches using SP1.\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 34\n+ 35\n values.proposalIds.34:\n+ \"606634685654739111357042014770979344991156961314\"\n }\n```\n\n```diff\n contract MainnetERC20Vault (eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) [taiko/SharedERC20Vault] {\n +++ description: Shared vault for Taiko chains for bridged ERC20 tokens. Pausing stops token sends, message-triggered releases, and recalls. Released or minted tokens are subject to the configured quota manager.\n sourceHashes.1:\n- \"0x4e0dd5fa918b3b1229feb85baaac3bf6d7fffd21febcdeb7a4f3bf62e22c9031\"\n+ \"0x9b624be34d3f91047fd5ee6a056fd5d81ed43c3ba757e53661aeb4e4dabfe4aa\"\n values.$implementation:\n- \"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63\"\n+ \"eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c\"\n values.$pastUpgrades.8:\n+ [\"2026-06-29T13:18:35.000Z\",\"0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7\",[\"eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c\"]]\n values.$upgradeCount:\n- 8\n+ 9\n values.addressManager:\n- \"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n values.impl:\n- \"eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63\"\n+ \"eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c\"\n values.lastUnpausedAt:\n- 0\n+++ description: Quota manager that rate-limits ERC20 tokens released or minted by this vault.\n values.quotaManager:\n+ \"eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC\"\n values.resolver:\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n implementationNames.eth:0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63:\n- \"MainnetERC20Vault\"\n implementationNames.eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c:\n+ \"MainnetERC20Vault\"\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC\",\"description\":\"consume ERC20 withdrawal quota when tokens leave the vault.\",\"role\":\".erc20Vault\"}]\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetVerifier (eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d) [taiko/MainnetVerifier]\n +++ description: Immutable verifier policy contract for Taiko mainnet. Each accepted proof must contain exactly two ordered sub-proofs: either SGX-GETH plus SGX-RETH/RISC0-RETH/SP1-RETH, or SGX-RETH plus SGX-GETH/RISC0-RETH/SP1-RETH. It routes each sub-proof to the corresponding downstream verifier.\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) [GnosisSafe] {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee\",\"description\":\"register SGX instances after DCAP attestation verification.\",\"role\":\".registrar\"}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8\",\"description\":\"register SGX instances after DCAP attestation verification.\",\"role\":\".registrar\"}\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"description\":\"pause and unpause signal proof verification.\",\"role\":\".pauser\"}\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC\",\"description\":\"update token withdrawal quotas and the quota refill period.\",\"role\":\".owner\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\",\"description\":\"pause and unpause bridge message flows and fund the bridge through direct ETH transfers.\",\"role\":\".pauser\"}\n }\n```\n\n```diff\n contract SignalService (eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) [taiko/SignalService] {\n +++ description: Facilitates secure cross-chain message passing by storing signals and state-root checkpoints. Bridge escrows and other applications use it to prove that a specific L1<->L2 signal or checkpointed state transition occurred via Merkle proofs. Pausing disables signal proof verification.\n sourceHashes.1:\n- \"0x20f8b06e752acd9eaddb6745d7eba47d69302f638a83d0db11476c03ece409d5\"\n+ \"0xfd960cdf5013fd75aa9b95c2a792457825615084b91ef437440d93599aba9de8\"\n values.$implementation:\n- \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n+ \"eth:0x1A06832992785766a105838C95c1E13a0045AC85\"\n values.$pastUpgrades.10:\n+ [\"2026-06-29T13:18:35.000Z\",\"0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7\",[\"eth:0x1A06832992785766a105838C95c1E13a0045AC85\"]]\n values.$upgradeCount:\n- 10\n+ 11\n values.impl:\n- \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n+ \"eth:0x1A06832992785766a105838C95c1E13a0045AC85\"\n values.pauser:\n+ \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n values.VERSION:\n+ 1\n implementationNames.eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752:\n- \"SignalService\"\n implementationNames.eth:0x1A06832992785766a105838C95c1E13a0045AC85:\n+ \"SignalService\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SgxVerifier (eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6) [taiko/SgxVerifier]\n +++ description: Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n```\n\n```diff\n contract MainnetBridge (eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) [taiko/TaikoBridge] {\n +++ description: Shared bridge escrow for Taiko chains for bridged ETH and arbitrary bridge messages. Pausing stops sending, processing, recalling, retrying, and failing messages. ETH released from the bridge is subject to the configured quota manager.\n sourceHashes.1:\n- \"0xa98023db33dc6ad6957a1c18e9e67712facad7f801f9437a6b05cf48aca80135\"\n+ \"0x61b87867a3f041292eb5da7940c9fc5d33aee32c063a7cf1696beb6eafac4a2b\"\n values.$implementation:\n- \"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F\"\n+ \"eth:0x1c94D798CFA08F396E5BA9F81697289c53273381\"\n values.$pastUpgrades.12:\n+ [\"2026-06-29T13:18:35.000Z\",\"0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7\",[\"eth:0x1c94D798CFA08F396E5BA9F81697289c53273381\"]]\n values.$upgradeCount:\n- 12\n+ 13\n values.addressManager:\n- \"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n values.impl:\n- \"eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F\"\n+ \"eth:0x1c94D798CFA08F396E5BA9F81697289c53273381\"\n values.lastUnpausedAt:\n- 1716809423\n values.pauser:\n+ \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+++ description: Quota manager that rate-limits ETH released by processed or recalled bridge messages.\n values.quotaManager:\n+ \"eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC\"\n values.resolver:\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n+++ description: Signal service used to prove cross-chain message delivery and failure signals.\n values.signalService:\n+ \"eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n implementationNames.eth:0x2705B12a971dA766A3f9321a743d61ceAD67dA2F:\n- \"MainnetBridge\"\n implementationNames.eth:0x1c94D798CFA08F396E5BA9F81697289c53273381:\n+ \"MainnetBridge\"\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC\",\"description\":\"consume ETH withdrawal quota when ETH leaves the bridge.\",\"role\":\".bridge\"}]\n }\n```\n\n```diff\n- Status: DELETED\n contract L1SharedAddressManager (eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa) [taiko/L1SharedAddressManager]\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ description: Contains the whitelist of addresses eligible to propose batches on L1 and issue preconfirmations. It dynamically selects a single active operator for each epoch using a delayed Ethereum beacon block root as randomness. There is no fallback proposer path in this contract: non-selected operators cannot propose for the current epoch.\n values.operatorMapping.0:\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SecureSgxVerifier (eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee) [taiko/SgxVerifier]\n +++ description: Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n```\n\n```diff\n+ Status: CREATED\n contract MainnetVerifier (eth:0x71808449A6217898d602c1a392D95b931Ac5d878) [taiko/MainnetVerifier]\n +++ description: Immutable verifier policy contract for Taiko mainnet. Each accepted proof must contain exactly two ordered sub-proofs: either SGX-GETH plus SGX-RETH/RISC0-RETH/SP1-RETH, or SGX-RETH plus SGX-GETH/RISC0-RETH/SP1-RETH. It routes each sub-proof to the corresponding downstream verifier.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoSP1Verifier (eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F) [taiko/SP1Verifier]\n +++ description: Gating router contract to verify batches using SP1.\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e) [taiko/DefaultResolver]\n +++ description: Maps chainId-name pairs to contract addresses. Bridge and vault contracts resolve their counterparties through this registry, so changes in this mapping effectively act as contract upgrades. The pause function is intentionally disabled in this implementation.\n```\n\n```diff\n+ Status: CREATED\n contract SecureSgxVerifier (eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8) [taiko/SgxVerifier]\n +++ description: Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n```\n\n```diff\n+ Status: CREATED\n contract QuotaManager (eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC) [taiko/QuotaManager]\n +++ description: Defines withdrawal quotas for ETH and ERC20 releases from the shared bridge. A token quota of zero means unlimited withdrawals for that token.\n```"
}
]
},
{
"id": "38f86423",
"date": "Tue, 23 Jun 2026 08:55:37 GMT",
"timestamp": 1782204489,
"description": "Emergency proposals pause the bridges and deactivate forced transactions and permissionless proposal fallback after a hacker steals USD ~1.7M from the bridges by exploiting bugs in whitelisted SGX programs. \n\nExploiter transaction: https://app.blocksec.com/phalcon/explorer/tx/eth/0x2f44dc1b883522a88f9b0cbbdfabf9ec33884b69dd4326600c3fab7fb2277260. \n\nvulnerable mrEnclaves used:\n- fda8bb1fc9938700c25353c0a5fabc96a238e69ce8e35f08e558831a20db33a6 (geth, old)\n- 8f73135b83a84126c7fff37ea02f9363e134aea0f6446b13e198b20d94e75099 (reth, recent)",
"isHighSeverity": true,
"changeCount": 20,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) [taiko/EmergencyMultisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: total count of encrypted emergency proposals created.\n+++ severity: HIGH\n values.proposalCount:\n- 29\n+ 33\n }\n```\n\n```diff\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f) [taiko/MainnetInboxRestricted] {\n +++ description: [FORCED TRANSACTIONS AND PERMISSIONLESS PROVING ARE DISABLED] 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 template:\n- \"taiko/MainnetInbox\"\n+ \"taiko/MainnetInboxRestricted\"\n sourceHashes.1:\n- \"0xa362200444c4acb7197c44886acc6eb7d90bb3933f19c339e94239e413f132d1\"\n+ \"0xc8fb004590f1c60e5c9735be36da74676fdc93286aa44749d3156ad33bc416e7\"\n description:\n- \"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+ \"[FORCED TRANSACTIONS AND PERMISSIONLESS PROVING ARE DISABLED] 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 values.$implementation:\n- \"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42\"\n+ \"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098\"\n values.$pastUpgrades.1:\n+ [\"2026-06-22T09:24:35.000Z\",\"0x2fb71b83b8971dd7bbc174f72ea5d37f57bf20277c406b0d679062b20c348e1d\",[\"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ severity: HIGH\n values.getCurrentForcedInclusionFee:\n- 1000000\n+ 1020000\n values.impl:\n- \"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42\"\n+ \"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098\"\n values.noForce:\n+ [true]\n implementationNames.eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42:\n- \"MainnetInbox\"\n implementationNames.eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 31\n+ 34\n values.proposalIds.31:\n+ \"606258323829018279630170080852096129484418187295\"\n values.proposalIds.32:\n+ \"606419523753005534282828605203137025379655483424\"\n values.proposalIds.33:\n+ \"606424105314793757798300924445813695132257484833\"\n }\n```\n\n```diff\n contract MainnetERC20Vault (eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) [taiko/SharedERC20Vault] {\n +++ description: Shared vault for Taiko chains for bridged ERC20 tokens.\n values.paused:\n- false\n+ true\n }\n```\n\n```diff\n contract MainnetBridge (eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) [taiko/TaikoBridge] {\n +++ description: Shared bridge escrow for Taiko chains for bridged ETH.\n values.paused:\n- false\n+ true\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ 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 values.operatorMapping.0:\n- \"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\"\n values.operatorMapping.2:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```"
}
]
},
{
"id": "51371e71",
"date": "Tue, 16 Jun 2026 09:50:07 GMT",
"timestamp": 1781603320,
"description": "Propose 'Enable SP1 v6 on mainnet': new programhashes.",
"isHighSeverity": true,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n+++ severity: HIGH\n values.proposalCount:\n- 20\n+ 21\n }\n```"
}
]
},
{
"id": "e91cf682",
"date": "Wed, 10 Jun 2026 14:38:24 GMT",
"timestamp": 1781102204,
"description": "Add raiko2 images, proposal https://dao.taiko.xyz/plugins/community-proposals/#/proposals/30 , all regenerated.",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b) [taiko/Risc0Verifier] {\n +++ description: Gating router contract to verify batches using RISC Zero.\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.4:\n+ \"0xbee1be4cbe2bdf9b0034a1ab6572061a76019e73189ff96322e58ab229b75f92\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.5:\n+ \"0xcecc85819e15d173c2991577727525b136e820728f7aaaede612f1281cac2249\"\n }\n```\n\n```diff\n contract TaikoSP1Verifier (eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6) [taiko/SP1Verifier] {\n +++ description: Gating router contract to verify batches using SP1.\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.8:\n+ \"0x0033e2cccc3296e7def7b381a4fb96fafec64f45420b6d24686779ef6236dff1\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.9:\n+ \"0x19f166660ca5b9f75ef670344fb96faf76327a2a082db49150cef3de6236dff1\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.10:\n+ \"0x009d26a03d10b4e70eef6a339187c258a7701d6a0150524684cb46b56cf9e540\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.11:\n+ \"0x4e93501e442d39c35ded4672187c258a3b80eb500541491a09968d6a6cf9e540\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0x1efDd13f831ceeEa14940806705A53D3211CD698) [risc0/RiscZeroVerifierEmergencyStop]\n +++ description: A verifier wrapper for the eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9 that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0x20ff7C2Cf391a5F096A2Cc181cb41916680f8E97) [taiko/RiscZeroGroth16Verifier]\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 2.0.0-rc.3).\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0x44c220f0598345195cE99AD6A57aDfFcb9Ea33e7) [risc0/RiscZeroVerifierEmergencyStop]\n +++ description: A verifier wrapper for the eth:0xf70aBAb028Eb6F4100A24B203E113D94E87DE93C that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroSetVerifier (eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85) [risc0/RiscZeroSetVerifier]\n +++ description: Set verifier contract for RISC Zero proofs (version 0.9.0). It allows verifying a whole set of proofs identified with a Merkle root at once, afterwards each individual proof could be efficiently verified just by checking Merkle inclusion against the verified root.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0x54aCE3ED46529B4d4F3770C8Bad5dDC48717B9bF) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0x68dC2cB4e61774873971c499D9b239ec5Ac540E3) [risc0/RiscZeroVerifierEmergencyStop]\n +++ description: A verifier wrapper for the eth:0x20ff7C2Cf391a5F096A2Cc181cb41916680f8E97 that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0x844D5f01161E3559d36f23d0Aa9E9620949aF782) [risc0/RiscZeroVerifierEmergencyStop]\n +++ description: A verifier wrapper for the eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85 that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9) [taiko/RiscZeroGroth16Verifier]\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 2.2.0).\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0xDa8f3de6fBBdb261Ac771B813a578A7aBdA6B2b1) [risc0/RiscZeroVerifierEmergencyStop]\n +++ description: A verifier wrapper for the eth:0x54aCE3ED46529B4d4F3770C8Bad5dDC48717B9bF that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0xf70aBAb028Eb6F4100A24B203E113D94E87DE93C) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "a7291119",
"date": "Tue, 02 Jun 2026 13:04:57 GMT",
"timestamp": 1780405412,
"description": "Operator rotation.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ 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 values.operatorMapping.1:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n values.operatorMapping.2:\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```"
}
]
},
{
"id": "ef7a775e",
"date": "Thu, 28 May 2026 10:14:59 GMT",
"timestamp": 1779963216,
"description": "EOA removed from the Risc0 timelock accessControl (Multisig remains). One SC signer changed their local ms signer.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TimelockController (eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711) [global/TimelockController] {\n +++ description: A timelock with access control. The current minimum delay is 3d.\n values.accessControl.PROPOSER_ROLE.members.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n values.accessControl.CANCELLER_ROLE.members.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n values.accessControl.EXECUTOR_ROLE.members.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n values.Canceller.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n values.Executor.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n values.Proposer.0:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n }\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10\"\n }\n```\n\n```diff\n contract Gustavo Gonzalez Taiko (eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0x30bc4C0Baf55A37Ccf2d626Bc592bd7715b75De2\"\n+ \"eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10\"\n }\n```\n\n```diff\n contract ProverWhitelist (eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae) [taiko/ProverWhitelist] {\n +++ 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 values.proverCount:\n- 1\n+ 2\n }\n```"
}
]
},
{
"id": "3995a8db",
"date": "Thu, 21 May 2026 09:21:30 GMT",
"timestamp": 1779355207,
"description": "Risc0 emergency stop moved from EOA to multisig.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609) [GnosisSafe] {\n +++ description: None\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696\",\"description\":\"pause the verifier.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract RiscZeroVerifierEmergencyStop (eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696) [risc0/RiscZeroVerifierEmergencyStop] {\n +++ description: A verifier wrapper for the eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D that allows pausing (emergency stop) the verifier by its owner.\n values.owner:\n- \"eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412\"\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n }\n```\n\n```diff\n EOA (eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412) {\n +++ description: None\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696\",\"description\":\"pause the verifier.\",\"role\":\".owner\"}\n }\n```"
}
]
},
{
"id": "fda1bd4d",
"date": "Tue, 19 May 2026 12:03:01 GMT",
"timestamp": 1779173531,
"description": "config related: add taiko gov details.\n\nnew proposal queued: [raiko2](https://dao.taiko.xyz/plugins/community-proposals/#/proposals/30), updates program hashes",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) [taiko/OptimisticTokenVotingPlugin] {\n +++ description: An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n values.proposalCount:\n- 30\n+ 31\n values.proposalIds.30:\n+ \"605401718776602992082262606618382736114237571102\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) [taiko/Multisig] {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n+++ description: total standard proposal count.\n+++ severity: HIGH\n values.proposalCount:\n- 19\n+ 20\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ERC20Vault (taiko:0x1670000000000000000000000000000000000002) [taiko/L2ERC20Vault]\n +++ description: Escrow for L2-native tokens sent to L1 via the canonical bridge.\n```"
}
]
},
{
"id": "2cbb1af9",
"date": "Wed, 13 May 2026 12:35:27 GMT",
"timestamp": 1778675086,
"description": "RiscZeroVerifierRouter: add new multisig as ac admin (was EOA-only before).\n\nL2BEAT removes one safe member from the SC safe.\n\nconfig related: ignore anchor details",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TimelockController (eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711) [global/TimelockController] {\n +++ description: A timelock with access control. The current minimum delay is 3d.\n values.accessControl.PROPOSER_ROLE.members.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n values.accessControl.CANCELLER_ROLE.members.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n values.Canceller.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n values.Executor.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n values.Proposer.1:\n+ \"eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609\"\n }\n```\n\n```diff\n contract L2BEAT (eth:0xf1cF63589A1e012F9124182c9eAa36B5333e5f06) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x166868E5AE72592a06056775236d2E4D64CDcCa9\"\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"2 of 2 (100%)\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) [taiko/PreconfWhitelist] {\n +++ 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 values.operatorMapping.1:\n- \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.operatorMapping.2:\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "0b48d893",
"date": "Tue, 05 May 2026 06:53:44 GMT",
"timestamp": 1777963387,
"description": "two proposals are executed: \n- emergency, clean up before cleanup: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/29 \n- prop 28, clean up after shasta: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/28\n\nno significant changes.",
"isHighSeverity": true,
"changeCount": 70,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 28\n+ 29\n }\n```\n\n```diff\n contract Taiko Foundation Treasury Multisig (eth:0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da) {\n +++ description: None\n values.$members.1:\n- \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10\"\n }\n```\n\n```diff\n contract TaikoDAOController (eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"description\":\"pause and unpause proofs and verification.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 29\n+ 30\n values.proposalIds.29:\n+ \"604873005729564317786488715670244117998223753245\"\n }\n```\n\n```diff\n contract DAO (eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261) {\n +++ 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 receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"description\":\"pause and unpause proofs and verification.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n }\n```\n\n```diff\n contract SignalService (eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ 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 name:\n- \"SignalServiceForkRouter\"\n+ \"SignalService\"\n template:\n- \"taiko/SignalServiceForkRouter\"\n+ \"taiko/SignalService\"\n sourceHashes.1:\n- \"0x48d2edc5c332edbe5587795ecd9c72063d865a58d79f71e4fc30e28e91e88c50\"\n+ \"0x9da4ee2d38b5914e0408dd1d413eef87e7f2ae62c6ca8240e657f4cc8cfaa84c\"\n description:\n- \"Routes to the Shasta SignalService post shasta fork.\"\n+ \"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 values.$implementation:\n- \"eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6\"\n+ \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n values.$pastUpgrades.9:\n+ [\"2026-04-30T15:14:11.000Z\",\"0xfcd6ca82025b847a3508db2d3c82327a19e3c4afda867acae8c09da147667036\",[\"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"]]\n values.$upgradeCount:\n- 9\n+ 10\n values.newFork:\n- \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n values.oldFork:\n- \"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n values.shastaForkTimestamp:\n- 1775135700\n values.impl:\n+ \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n values.inNonReentrant:\n+ false\n values.paused:\n+ false\n values.resolver:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n implementationNames.eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6:\n- \"SignalServiceForkRouter\"\n implementationNames.eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752:\n+ \"SignalService\"\n category:\n- {\"name\":\"Spam\",\"priority\":-1}\n }\n```\n\n```diff\n- Status: DELETED\n contract SignalService (eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752)\n +++ 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```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ 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 values.operatorMapping.1:\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.operatorMapping.2:\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```\n\n```diff\n EOA (taiko:0x0000000000000000000000000000000000000000) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"interact\",\"from\":\"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\",\"description\":\"pause and unpause proofs and verification.\",\"role\":\".owner\"}]\n }\n```\n\n```diff\n contract SignalService (taiko:0x1670000000000000000000000000000000000005) {\n +++ 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 name:\n- \"SignalServiceForkRouter\"\n+ \"SignalService\"\n template:\n- \"taiko/SignalServiceForkRouter\"\n+ \"taiko/SignalService\"\n sourceHashes.1:\n- \"0x48d2edc5c332edbe5587795ecd9c72063d865a58d79f71e4fc30e28e91e88c50\"\n+ \"0x9da4ee2d38b5914e0408dd1d413eef87e7f2ae62c6ca8240e657f4cc8cfaa84c\"\n description:\n- \"Routes to the Shasta SignalService post shasta fork.\"\n+ \"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 values.$implementation:\n- \"taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb\"\n+ \"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\"\n values.$pastUpgrades.2:\n+ [\"2026-04-30T15:37:12.000Z\",\"0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de\",[\"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.newFork:\n- \"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\"\n values.oldFork:\n- \"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762\"\n values.shastaForkTimestamp:\n- 1775135700\n values.impl:\n+ \"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\"\n values.inNonReentrant:\n+ false\n values.paused:\n+ false\n values.resolver:\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n implementationNames.taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb:\n- \"SignalServiceForkRouter\"\n implementationNames.taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28:\n+ \"SignalService\"\n category:\n- {\"name\":\"Spam\",\"priority\":-1}\n }\n```\n\n```diff\n contract Anchor (taiko:0x1670000000000000000000000000000000010001) {\n +++ 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 name:\n- \"AnchorForkRouter\"\n+ \"Anchor\"\n template:\n- \"taiko/AnchorForkRouter\"\n+ \"taiko/Anchor\"\n sourceHashes.1:\n- \"0x457bd8a81361da7cd33cf0749e16158c846ae643a1a69451a84aaac7f62cc16b\"\n+ \"0xd28d4f02b54957df5dd4894f6b101e59efaea4c568ce8ea8f87870f81cd977f1\"\n description:\n- \"Routes to the Shasta Anchor contract post shasta fork.\"\n+ \"Immutable L2 contract that anchors L1 block details to L2 for cross-layer communication and manages EIP-1559 gas pricing for L2 operations.\"\n values.$implementation:\n- \"taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585\"\n+ \"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA\"\n values.$pastUpgrades.6:\n+ [\"2026-04-30T15:37:12.000Z\",\"0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de\",[\"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.newFork:\n- \"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA\"\n values.oldFork:\n- \"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0\"\n values.ANCHOR_GAS_LIMIT:\n+ 1000000\n values.checkpointStore:\n+ \"taiko:0x1670000000000000000000000000000000000005\"\n values.getBlockState:\n+ {\"anchorBlockNumber\":25027058,\"ancestorsHash\":\"0x49a7e51364da6ffb3d3bfd3469fa64d0adce9ee57c8bdb658ca014229605b199\"}\n values.GOLDEN_TOUCH_ADDRESS:\n+ \"taiko:0x0000777735367b36bC9B61C50022d9D0700dB4Ec\"\n values.impl:\n+ \"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA\"\n values.inNonReentrant:\n+ false\n values.l1ChainId:\n+ 1\n values.paused:\n+ false\n values.resolver:\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n implementationNames.taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585:\n- \"AnchorForkRouter\"\n implementationNames.taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA:\n+ \"Anchor\"\n category.name:\n- \"Spam\"\n+ \"Local Infrastructure\"\n category.priority:\n- -1\n+ 5\n }\n```\n\n```diff\n- Status: DELETED\n contract SignalService (taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28)\n +++ 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```\n\n```diff\n- Status: DELETED\n contract Anchor (taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA)\n +++ 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```\n\n```diff\n contract DelegateController (taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C) {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000005\",\"description\":\"pause and unpause proofs and verification.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10)\n +++ description: None\n```"
}
]
},
{
"id": "2011675c",
"date": "Wed, 22 Apr 2026 13:12:09 GMT",
"timestamp": 1776863372,
"description": "last admin upgrade perms are txfered to the DAO upgrade module.\nall vanilla upgrades are now in hands of dao with delay or SC with no delay.\nno risk change since proof system is closed.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f) {\n +++ 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 values.$admin:\n- \"eth:0xF14Dc4EdDb43e9a6A440e6beC97ea2ea64f39Ef7\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0xF14Dc4EdDb43e9a6A440e6beC97ea2ea64f39Ef7\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.pendingOwner:\n- \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract TaikoDAOController (eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f\",\"description\":\"pause and unpause the rollup system.\",\"role\":\".owner\"}\n directlyReceivedPermissions.12:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract DAO (eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261) {\n +++ 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 receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f\",\"description\":\"pause and unpause the rollup system.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0xF14Dc4EdDb43e9a6A440e6beC97ea2ea64f39Ef7)\n +++ description: None\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ 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 values.operatorMapping.0:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```"
}
]
},
{
"id": "3787d87a",
"date": "Mon, 20 Apr 2026 11:13:29 GMT",
"timestamp": 1776683523,
"description": "Taiko added SP1 6.1 verifier.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ 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+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.2:\n+ {\"selector\":\"0x5a093a2f\",\"verifier\":\"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A\"}\n+++ description: All verifiers that were ever routed to by this gateway.\n values.allVerifiers.11:\n+ {\"selector\":\"0x5a093a2f\",\"verifier\":\"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A)\n +++ description: None\n```"
}
]
},
{
"id": "613479a6",
"date": "Thu, 09 Apr 2026 15:19:53 GMT",
"timestamp": 1775747881,
"description": "add new mainnet inbox and ignore old one. i overlooked the new inbox pre-shasta because there were no refs and the old inbox also got an upgrade.",
"isHighSeverity": true,
"changeCount": 83,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b) {\n +++ description: Gating router contract to verify batches using RISC Zero.\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.2:\n+ \"0x46efe5e0c74976548ee6856789fbfb4929b8f2f9118a119c57ced6e1062e727b\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of Risc0 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.3:\n+ \"0xdfbce2039ad8b78b236b5a9dceba5d8cee0d9e4638fc8f1fe11a0b2d8bfa039e\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.4:\n+ \"0x398be8424f27802b38e6e8d3413bf6a0b187349e68522a218f5bfc00279006ac\"\n }\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 27\n+ 28\n }\n```\n\n```diff\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f) {\n +++ 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 values.pendingOwner:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.24:\n+ \"0x8f73135b83a84126c7fff37ea02f9363e134aea0f6446b13e198b20d94e75099\"\n values.mrEnclaves.25:\n+ \"0x72258d3cae0e9901d0efc1f630064f1c44f11950bd25fee0b62ec8df84532da2\"\n }\n```\n\n```diff\n contract TaikoSP1Verifier (eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6) {\n +++ description: Gating router contract to verify batches using SP1.\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.4:\n+ \"0x0079682c7b5af614273de79761aaad20d1c8e1a65091388b81be836632d382f8\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.5:\n+ \"0x3cb4163d56bd850967bcf2ec1aaad20d0e470d324244e22e037d06cc32d382f8\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.6:\n+ \"0x0002ac747570512099ca19c17f5a3b9f39697e5617a19ff2f2b2464229a50c7c\"\n+++ description: Taiko specific Image IDs (i.e. program digest) of SP1 programs (block proving and aggregation program separately) trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedPrograms.7:\n+ \"0x01563a3a5c1448263943382f75a3b9f34b4bf2b05e867fcb65648c8429a50c7c\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 27\n+ 29\n values.proposalIds.27:\n+ \"604072306347775205060623596830012262580693762075\"\n values.proposalIds.28:\n+ \"604252334775688929080375373293834029676709806108\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 18\n+ 19\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ 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 values.latestActivationEpoch:\n- 0\n+ 1775558231\n values.operatorMapping.0:\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```\n\n```diff\n EOA (taiko:0x0000000000000000000000000000000000000000) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\",\"description\":\"pause and unpause proofs and verification.\",\"role\":\".owner\"}]\n }\n```\n\n```diff\n contract SignalServiceForkRouter (taiko:0x1670000000000000000000000000000000000005) {\n +++ description: Routes to the Shasta SignalService post shasta fork.\n name:\n- \"SignalService\"\n+ \"SignalServiceForkRouter\"\n template:\n- \"taiko/L2SignalService\"\n+ \"taiko/SignalServiceForkRouter\"\n sourceHashes.1:\n- \"0xe8788984d5d121a0c1b2a1f177ae2bf142631d845ff8cabda588ae96c9b63038\"\n+ \"0x48d2edc5c332edbe5587795ecd9c72063d865a58d79f71e4fc30e28e91e88c50\"\n values.$implementation:\n- \"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762\"\n+ \"taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb\"\n values.$pastUpgrades.1:\n+ [\"2026-04-02T14:02:23.000Z\",\"0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1\",[\"taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.authorizedRelayers:\n- []\n values.impl:\n- \"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762\"\n values.inNonReentrant:\n- false\n values.paused:\n- false\n values.resolver:\n- \"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\"\n values.newFork:\n+ \"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28\"\n values.oldFork:\n+ \"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762\"\n values.shastaForkTimestamp:\n+ 1775135700\n implementationNames.taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762:\n- \"SignalService\"\n implementationNames.taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb:\n+ \"SignalServiceForkRouter\"\n description:\n+ \"Routes to the Shasta SignalService post shasta fork.\"\n category:\n+ {\"name\":\"Spam\",\"priority\":-1}\n }\n```\n\n```diff\n contract AnchorForkRouter (taiko:0x1670000000000000000000000000000000010001) {\n +++ description: Routes to the Shasta Anchor contract post shasta fork.\n name:\n- \"TaikoAnchor\"\n+ \"AnchorForkRouter\"\n template:\n- \"taiko/TaikoAnchor\"\n+ \"taiko/AnchorForkRouter\"\n sourceHashes.1:\n- \"0x3b17f3b24c2a1ab8b2cc942628d831d030a6c4a03ae0c5fb548b7142843c4e6d\"\n+ \"0x457bd8a81361da7cd33cf0749e16158c846ae643a1a69451a84aaac7f62cc16b\"\n description:\n- \"Handles cross-layer message verification and manages EIP-1559 gas pricing for L2 operations. Anchors L1 block details to L2 for cross-layer communication.\"\n+ \"Routes to the Shasta Anchor contract post shasta fork.\"\n values.$implementation:\n- \"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n+ \"taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585\"\n values.$pastUpgrades.5:\n+ [\"2026-04-02T14:02:23.000Z\",\"0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1\",[\"taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.BASEFEE_MIN_VALUE:\n- 10000000\n values.GOLDEN_TOUCH_ADDRESS:\n- \"taiko:0x0000777735367b36bC9B61C50022d9D0700dB4Ec\"\n values.impl:\n- \"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n values.inNonReentrant:\n- false\n values.isOnL1:\n- false\n values.l1ChainId:\n- 1\n values.pacayaForkHeight:\n- 1166000\n values.parentGasExcess:\n- 1344899430\n values.parentGasTarget:\n- 40000000\n values.paused:\n- false\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n values.resolver:\n- \"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\"\n values.signalService:\n- \"taiko:0x1670000000000000000000000000000000000005\"\n values.skipFeeCheck:\n- false\n values.newFork:\n+ \"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA\"\n values.oldFork:\n+ \"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0\"\n implementationNames.taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9:\n- \"TaikoAnchor\"\n implementationNames.taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585:\n+ \"AnchorForkRouter\"\n category:\n+ {\"name\":\"Spam\",\"priority\":-1}\n }\n```\n\n```diff\n- Status: DELETED\n contract DefaultResolver (taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n contract DelegateController (taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C) {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.2:\n- {\"permission\":\"interact\",\"from\":\"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n directlyReceivedPermissions.7:\n- {\"permission\":\"upgrade\",\"from\":\"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\",\"role\":\"admin\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract SignalService (taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract Anchor (taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA)\n +++ 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```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract TaikoRisc0Verifier (eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b)\n +++ description: Gating router contract to verify batches using RISC Zero.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (eth:0x08568Df252ecf37D6C3eFD24f6ca3688118697F1)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711)\n +++ description: A timelock with access control. The current minimum delay is 3d.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D)\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGateway (eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract MainnetInbox (eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C)\n +++ description: Verifier contract for SP1 proofs (v6.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierRouter (eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319)\n +++ description: A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711).\n```\n\n```diff\n+ Status: CREATED\n contract TaikoSP1Verifier (eth:0x96337327648dcFA22b014009cf10A2D5E2F305f6)\n +++ description: Gating router contract to verify batches using SP1.\n```\n\n```diff\n+ Status: CREATED\n contract MainnetVerifier (eth:0x9cAa4948381590900FCdd8a4F06EB24138eD665d)\n +++ description: Enforces the Taiko Multiprover policy and routes to the downstream router contracts.\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroVerifierEmergencyStop (eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696)\n +++ description: A verifier wrapper for the eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D that allows pausing (emergency stop) the verifier by its owner.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (eth:0xa1018Ba2e22139076f91dA2A856B2CAB22d968F6)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGatewayMultisig (eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProverWhitelist (eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xF14Dc4EdDb43e9a6A440e6beC97ea2ea64f39Ef7)\n +++ description: None\n```"
}
]
},
{
"id": "3bedf566",
"date": "Thu, 02 Apr 2026 13:24:32 GMT",
"timestamp": 1775136182,
"description": "SC review: https://gist.github.com/sekuba/63e456c08ef9b36bce08546957324662\nblog post: https://paragraph.com/@taiko-labs/achieving-stage-1-shasta-is-almost-here\n\n- [MainnetInbox](https://disco.l2beat.com/diff/eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5/eth:0x38dd73fed93f8051e7a0ddd6fb3b9e7c25668187)\n- [MainnetSignalService](https://disco.l2beat.com/diff/eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c/eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752)\n- [PreconfWhitelist](https://disco.l2beat.com/diff/eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc/eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149)\n\nShasta is mainly refactoring the core protocol to be simpler and more efficient, the proof system remains closed and SGX.",
"isHighSeverity": true,
"changeCount": 63,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1 (eth:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ 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 L1 liveness bonds, validates batch parameters, and acts as the state machine for the L2.\n sourceHashes.1:\n- \"0x2fc623a8d2d43eaa7b59707ea9d1f766608b3626be55f68a9617b218e44b3cd5\"\n+ \"0x0ac653f7058ad40c6ffac7239e47de4da0e6cb079cc88095eb2be8e359c25ef2\"\n values.$implementation:\n- \"eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\"\n+ \"eth:0x38Dd73fed93F8051E7A0dDd6FB3b9E7C25668187\"\n values.$pastUpgrades.30:\n+ [\"2026-03-31T13:44:47.000Z\",\"0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36\",[\"eth:0x38Dd73fed93F8051E7A0dDd6FB3b9E7C25668187\"]]\n values.$upgradeCount:\n- 30\n+ 31\n values.impl:\n- \"eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\"\n+ \"eth:0x38Dd73fed93F8051E7A0dDd6FB3b9E7C25668187\"\n values.shastaForkTimestamp:\n+ 1775135700\n implementationNames.eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5:\n- \"MainnetInbox\"\n implementationNames.eth:0x38Dd73fed93F8051E7A0dDd6FB3b9E7C25668187:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.3:\n+ \"0xd1f43acede51c4eb2f66b86cce52682edad80b810b9d87fba3a9b67254c91b77\"\n }\n```\n\n```diff\n contract TaikoDAOController (eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n directlyReceivedPermissions.6:\n- {\"permission\":\"interact\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n directlyReceivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"description\":\"pause/unpause, manage operator and ejector roles.\",\"role\":\".owner\"}\n directlyReceivedPermissions.19:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.22:\n+ \"0x59bf7d48610cc8a56ba8a390b68c31a1443297869b174aeacac67dc152820f0e\"\n values.mrEnclaves.23:\n+ \"0xf285b7cbd78d2b96cdc54cfea3e47d8f510a4b4f91b719c97f8bbb90974f805b\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DefaultResolver (eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"description\":\"manage the ejecter role\",\"role\":\"._ejectorManager\"}]\n }\n```\n\n```diff\n contract DAO (eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261) {\n +++ 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 receivedPermissions.6:\n- {\"permission\":\"interact\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"description\":\"pause/unpause, manage operator and ejector roles.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n receivedPermissions.20:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"}]}\n }\n```\n\n```diff\n contract SignalServiceForkRouter (eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: Routes to the Shasta SignalService post shasta fork.\n name:\n- \"MainnetSignalService\"\n+ \"SignalServiceForkRouter\"\n template:\n- \"taiko/_preShastaTemplates/SignalService\"\n+ \"taiko/SignalServiceForkRouter\"\n sourceHashes.1:\n- \"0xc978dbfc097ca447823c4a1eb83078cd63532727420b19287acc0f87e884285f\"\n+ \"0x48d2edc5c332edbe5587795ecd9c72063d865a58d79f71e4fc30e28e91e88c50\"\n description:\n- \"The SignalService contract serves as cross-chain message passing system. It defines methods for sending and verifying signals with merkle proofs.\"\n+ \"Routes to the Shasta SignalService post shasta fork.\"\n values.$implementation:\n- \"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n+ \"eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6\"\n values.$pastUpgrades.8:\n+ [\"2026-03-31T13:44:47.000Z\",\"0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36\",[\"eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6\"]]\n values.$upgradeCount:\n- 8\n+ 9\n values.impl:\n- \"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n values.inNonReentrant:\n- false\n values.paused:\n- false\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n values.resolver:\n- \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n values.newFork:\n+ \"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752\"\n values.oldFork:\n+ \"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n values.shastaForkTimestamp:\n+ 1775135700\n implementationNames.eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c:\n- \"MainnetSignalService\"\n implementationNames.eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6:\n+ \"SignalServiceForkRouter\"\n }\n```\n\n```diff\n contract Gustavo Gonzalez Taiko (eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a) {\n +++ description: None\n values.$members.3:\n- \"eth:0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n values.multisigThreshold:\n- \"4 of 6 (67%)\"\n+ \"4 of 5 (80%)\"\n }\n```\n\n```diff\n EOA (eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d) {\n +++ description: None\n receivedPermissions.0.role:\n- \".getOperatorCandidatesForCurrentEpoch\"\n+ \".operatorMapping\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ 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 template:\n- \"taiko/_preShastaTemplates/PreconfWhitelist\"\n+ \"taiko/PreconfWhitelist\"\n sourceHashes.1:\n- \"0x93a254bb5914a81cd902577cdafd323639e44227fdae5e14aa14fd47e1440063\"\n+ \"0x974afbdcc80d21c6158c6eb226d4a8b02a6041f7b8e9affd849a300ce70e21ef\"\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n+ \"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 values.$implementation:\n- \"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc\"\n+ \"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149\"\n values.$pastUpgrades.3:\n+ [\"2026-03-31T13:44:47.000Z\",\"0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36\",[\"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getOperatorCandidatesForCurrentEpoch:\n- [\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"]\n values.getOperatorCandidatesForNextEpoch:\n- [\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"]\n values.havingPerfectOperators:\n- false\n values.impl:\n- \"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc\"\n+ \"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149\"\n values.operatorChangeDelay:\n- 2\n values.randomnessDelay:\n- 2\n values.registeredOperators:\n- [{\"proposer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\",\"sequencer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"},{\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}]\n values.registeredOperatorsCount:\n- 2\n values._ejectorManager:\n+ \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n values.latestActivationEpoch:\n+ 0\n values.OPERATOR_CHANGE_DELAY:\n+ 2\n values.operatorMapping:\n+ [\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\"]\n values.RANDOMNESS_DELAY:\n+ 2\n fieldMeta.havingPerfectOperators:\n- {\"description\":\"tells the contract whether it can safely pick a random operator using a simple mathematical operation, or if it needs to perform a more expensive \\\"loop-and-check\\\" operation\"}\n fieldMeta.paused:\n+ {\"severity\":\"HIGH\"}\n implementationNames.eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc:\n- \"PreconfWhitelist\"\n implementationNames.eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149:\n+ \"PreconfWhitelist\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SignalService (eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752)\n +++ 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```"
}
]
},
{
"id": "61693d6a",
"date": "Tue, 24 Mar 2026 11:59:30 GMT",
"timestamp": 1774353478,
"description": "operator changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n }\n```"
}
]
},
{
"id": "e0469acf",
"date": "Mon, 16 Mar 2026 13:00:22 GMT",
"timestamp": 1773665926,
"description": "shasta proposal proceeds to public veto phase\n\nproposal: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/26\n\nreview: https://gist.github.com/sekuba/63e456c08ef9b36bce08546957324662",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 26\n+ 27\n values.proposalIds.26:\n+ \"603470345479562597234986338918793351448504565786\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 17\n+ 18\n }\n```"
}
]
},
{
"id": "af40d70c",
"date": "Fri, 06 Mar 2026 09:41:48 GMT",
"timestamp": 1772790015,
"description": "veto period 21d -> 10d.\n\nhttps://dao.taiko.xyz/plugins/community-proposals/#/proposals/25",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.lastMultisigSettingsChange:\n- 22574240\n+ 24588180\n values.multisigSettings.destinationProposalDuration:\n- 1814400\n+ 864000\n }\n```"
}
]
},
{
"id": "8761c59f",
"date": "Wed, 04 Mar 2026 09:00:02 GMT",
"timestamp": 1772614552,
"description": "operator change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n values.operatorCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "afada561",
"date": "Mon, 02 Mar 2026 14:06:19 GMT",
"timestamp": 1772460290,
"description": "DelegateController (proxy) on taiko verified.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n values.operatorCount:\n- 3\n+ 4\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n contract DelegateController (taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C) {\n +++ description: None\n unverified:\n- true\n sourceHashes.0:\n- null\n+ \"0xc44a84c18fe7660acbe7750e0a14401b3a0a0ad97d8c81305bd879dca88d873b\"\n implementationNames.taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C:\n- \"\"\n+ \"ERC1967Proxy\"\n }\n```"
}
]
},
{
"id": "4a35c9e2",
"date": "Thu, 26 Feb 2026 06:51:07 GMT",
"timestamp": 1772088580,
"description": "rotate operators.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"sequence\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"role\":\".getOperatorCandidatesForCurrentEpoch\"}]\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n values.operatorCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "5b97feba",
"date": "Thu, 19 Feb 2026 09:46:59 GMT",
"timestamp": 1771493932,
"description": "operator rotation.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"sequence\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"role\":\".getOperatorCandidatesForCurrentEpoch\"}]\n }\n```"
}
]
},
{
"id": "33092454",
"date": "Wed, 11 Feb 2026 13:18:12 GMT",
"timestamp": 1770815650,
"description": "fee proposal executed: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/24\n\nvoting period proposal moves to optimistic phase: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/25\n\nTaikoAnchor fee changes: https://disco.l2beat.com/diff/taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0/taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9",
"isHighSeverity": true,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 25\n+ 26\n values.proposalIds.25:\n+ \"602381146540321106777275740158610369409831665689\"\n }\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.5:\n- \"eth:0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n values.$threshold:\n- 5\n+ 4\n values.multisigThreshold:\n- \"5 of 7 (71%)\"\n+ \"4 of 6 (67%)\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 16\n+ 17\n }\n```\n\n```diff\n contract TaikoAnchor (taiko:0x1670000000000000000000000000000000010001) {\n +++ description: Handles cross-layer message verification and manages EIP-1559 gas pricing for L2 operations. Anchors L1 block details to L2 for cross-layer communication.\n sourceHashes.1:\n- \"0x94dfc8c1aa6a1ce9447da9bf865b6e827ffe8c9cb0b08e4d7c7589b8c4193134\"\n+ \"0x3b17f3b24c2a1ab8b2cc942628d831d030a6c4a03ae0c5fb548b7142843c4e6d\"\n values.$implementation:\n- \"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0\"\n+ \"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n values.$pastUpgrades.4:\n+ [\"2026-02-11T02:45:07.000Z\",\"0xd044da28e6a74c63e79bcf8ac14fec397dae61afc9166ca7754af5e0b6e5c7fb\",[\"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.BASEFEE_MIN_VALUE:\n- 25000000\n+ 10000000\n values.impl:\n- \"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0\"\n+ \"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n implementationNames.taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0:\n- \"TaikoAnchor\"\n implementationNames.taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9:\n+ \"TaikoAnchor\"\n }\n```"
}
]
},
{
"id": "ab50026d",
"date": "Mon, 02 Feb 2026 14:13:29 GMT",
"timestamp": 1770041480,
"description": "operator rotation.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.3:\n- \"eth:0x1eE487CEdCe52c370DB11e62987F3ABe873E145A\"\n+ \"eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n values.operatorCount:\n- 3\n+ 4\n }\n```"
}
]
},
{
"id": "72e21d16",
"date": "Mon, 26 Jan 2026 13:03:00 GMT",
"timestamp": 1769432500,
"description": "Operator removed, our event-based count shows 1 operator less.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n values.operatorCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "6defe874",
"date": "Wed, 21 Jan 2026 12:55:23 GMT",
"timestamp": 1768999626,
"description": "gattaca added to SC: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/23 .",
"isHighSeverity": false,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) {\n +++ description: A signer list for registering agents, similar to a Multisig.\n values.addresslistLength:\n- 8\n+ 9\n values.getEncryptionAgents.0:\n+ \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n values.getEncryptionAgents.7:\n- \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n+ \"eth:0xc4414B079bC4A013916B3dc241555F6f505c1619\"\n }\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n values.lastMultisigSettingsChange:\n- 22574240\n+ 24269141\n values.multisigSettings.minApprovals:\n- 6\n+ 7\n }\n```\n\n```diff\n contract EncryptionRegistry (eth:0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1) {\n +++ 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 values.accountList.0:\n- \"eth:0x85f21919ed6046d7CE1F36a613eBA8f5EaC3d070\"\n+ \"eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n values.accountList.8:\n- \"eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n values.accountList.9:\n- \"eth:0xD5cF6A34Ba5fb9289510dC93c03F1f9084798487\"\n+ \"eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E\"\n values.getRegisteredAccounts.0:\n- \"eth:0x85f21919ed6046d7CE1F36a613eBA8f5EaC3d070\"\n+ \"eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n values.getRegisteredAccounts.8:\n- \"eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n values.getRegisteredAccounts.9:\n- \"eth:0xD5cF6A34Ba5fb9289510dC93c03F1f9084798487\"\n+ \"eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0xD5cF6A34Ba5fb9289510dC93c03F1f9084798487)\n +++ description: None\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Gattaca (eth:0x6268d189E011Aa53A2f09A1FE159445BeB3d878E)\n +++ description: None\n```"
}
]
},
{
"id": "c1390593",
"date": "Wed, 14 Jan 2026 06:28:29 GMT",
"timestamp": 1768372024,
"description": "New standard proposal: lower hardcoded basefee by 2.5x: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/24 .",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 24\n+ 25\n values.proposalIds.24:\n+ \"601724541768498866969402779460601617583941091352\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 15\n+ 16\n }\n```"
}
]
},
{
"id": "ec630b1a",
"date": "Wed, 07 Jan 2026 14:29:19 GMT",
"timestamp": 1767795947,
"description": "agent of one SC member updated. new proposal up targeting the gas config.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2) {\n +++ description: A signer list for registering agents, similar to a Multisig.\n values.getEncryptionAgents.7:\n- \"eth:0xf0A0d6Bd4aA94F53F3FB2c88488202a9E9eD2c55\"\n+ \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n }\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 14\n+ 15\n }\n```"
}
]
},
{
"id": "9864b5eb",
"date": "Mon, 22 Dec 2025 13:12:17 GMT",
"timestamp": 1766409056,
"description": "operator rotation.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 23\n+ 24\n values.proposalIds.23:\n+ \"601076267109018851735115853749277719853690519575\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.2:\n+ {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n }\n```"
}
]
},
{
"id": "8b2adce4",
"date": "Mon, 15 Dec 2025 07:35:28 GMT",
"timestamp": 1765784042,
"description": "new proposal: add gattaca to sc and increase emergency threshold from 6 to 7/9.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 26\n+ 27\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (eth:0x9B17fdA35eD7EB7bB11a73AB69D0462045364514)\n +++ description: An operator proxy used by the Taiko team for operating (proposing, proving) the based rollup from permissioned addresses.\n```\n\n```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 13\n+ 14\n }\n```\n\n```diff\n- Status: DELETED\n contract GnosisSafe (eth:0xEdB91449947ca7d74243Af9b39DCbb4D86F636c0)\n +++ description: None\n```"
}
]
},
{
"id": "c05b5238",
"date": "Thu, 11 Dec 2025 14:53:07 GMT",
"timestamp": 1765464471,
"description": "Operator changes.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 1 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n values.operatorCount:\n- 2\n+ 4\n values.registeredOperators.1:\n+ {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.2:\n+ {\"proposer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\",\"sequencer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"}\n values.registeredOperatorsCount:\n- 1\n+ 3\n }\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (eth:0x9B17fdA35eD7EB7bB11a73AB69D0462045364514)\n +++ description: An operator proxy used by the Taiko team for operating (proposing, proving) the based rollup from permissioned addresses.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0xEdB91449947ca7d74243Af9b39DCbb4D86F636c0)\n +++ description: None\n```"
}
]
},
{
"id": "c074de1f",
"date": "Thu, 04 Dec 2025 10:07:59 GMT",
"timestamp": 1764841913,
"description": "execution of a standard upgrade via governance. targeting the proof system: https://gist.github.com/sekuba/46d7bcab5127c0ed6e0d66ce285b0559\n\nTEE config and zk program hashes updated.\n\nusual operator changes.",
"isHighSeverity": true,
"changeCount": 30,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AutomataDcapV3Attestation (eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.2:\n+ \"0x3e6113a23bbdf9231520153253047d02db8f1dd38a9b52914ab7943278f52db0\"\n }\n```\n\n```diff\n- Status: DELETED\n contract RiscZeroGroth16Verifier (eth:0x34Eda8BfFb539AeC33078819847B36D221c6641c)\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 2.2.0).\n```\n\n```diff\n contract Risc0VerifierGateway (eth:0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE) {\n +++ description: Entry contract to verify batches using RISC Zero.\n values.$implementation:\n- \"eth:0x3dEF88e306E449c6Abf9AaD8038C95d11Bb0b614\"\n+ \"eth:0xDF6327caafC5FeB8910777Ac811e0B1d27dCdf36\"\n values.$pastUpgrades.3:\n+ [\"2025-12-04T02:13:59.000Z\",\"0xbdd083f6c9905230ec66b00863175112f2dbad532a6bd34d5982752587d1c5dd\",[\"eth:0xDF6327caafC5FeB8910777Ac811e0B1d27dCdf36\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.impl:\n- \"eth:0x3dEF88e306E449c6Abf9AaD8038C95d11Bb0b614\"\n+ \"eth:0xDF6327caafC5FeB8910777Ac811e0B1d27dCdf36\"\n values.riscoGroth16Verifier:\n- \"eth:0x34Eda8BfFb539AeC33078819847B36D221c6641c\"\n+ \"eth:0x7CCA385bdC790c25924333F5ADb7F4967F5d1599\"\n+++ description: Image IDs (i.e. program digest) of Risc0 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.8:\n+ \"0x3d933868e2ac698df98209b45e6c34c435df2d3c97754bb6739d541d5fd312e3\"\n+++ description: Image IDs (i.e. program digest) of Risc0 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains image ID data within them.\n+++ severity: HIGH\n values.trustedImages.9:\n+ \"0x77ff0953ded4fb48bb52b1099cc36c6b8bf603dc4ed9211608c039c7ec31b82b\"\n implementationNames.eth:0x3dEF88e306E449c6Abf9AaD8038C95d11Bb0b614:\n- \"Risc0Verifier\"\n implementationNames.eth:0xDF6327caafC5FeB8910777Ac811e0B1d27dCdf36:\n+ \"Risc0Verifier\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.20:\n+ \"0xe5774b71990b0d5f3eca8d4d22546764dd9549c743a1a6d4d4863d97f6b8c67a\"\n values.mrEnclaves.21:\n+ \"0x605ad10c1a56ed7289f198d64a39a952cd3b8a0bed3fcb19c8301c1847dc3a2f\"\n }\n```\n\n```diff\n contract SP1VerifierGateway (eth:0xbee1040D0Aab17AE19454384904525aE4A3602B9) {\n +++ description: Entry contract to verify batches using SP1.\n+++ description: Program hashes of SP1 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains program hash data within them.\n+++ severity: HIGH\n values.trustedPrograms.12:\n+ \"0x008f96447139673b3f2d29b30ad4b43fe6ccb3f31d40f6e61478ac5640201d9e\"\n+++ description: Program hashes of SP1 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains program hash data within them.\n+++ severity: HIGH\n values.trustedPrograms.13:\n+ \"0x47cb22384e59cecf65a536612d4b43fe36659f987503db9828f158ac40201d9e\"\n+++ description: Program hashes of SP1 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains program hash data within them.\n+++ severity: HIGH\n values.trustedPrograms.14:\n+ \"0x00a32a15ab7a74a9a79f3b97a71d1b014cd4361b37819004b9322b502b5f5be1\"\n+++ description: Program hashes of SP1 programs trusted by this verifier gateway. Only proofs for these programs can be successfully verified. Note that proofs contains program hash data within them.\n+++ severity: HIGH\n values.trustedPrograms.15:\n+ \"0x51950ad55e9d2a6973e772f471d1b01466a1b0d95e064012726456a02b5f5be1\"\n }\n```\n\n```diff\n contract PreconfRouter (eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a) {\n +++ description: Entry point for batch proposals under the pre-confirmation architecture. It allows batches to be proposed only by whitelisted addresses.\n sourceHashes.1:\n- \"0x34a58f3c77d5666ec8a39b17ab327273604248af9004c771429a4413b09e20dd\"\n+ \"0xa69b68882c2eac4ec75e64e92a7946b6311cf7e0fa7c844251baabfa7803d81b\"\n values.$implementation:\n- \"eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\"\n+ \"eth:0xafCEDDe020dB8D431Fa86dF6B14C20f327382709\"\n values.$pastUpgrades.3:\n+ [\"2025-12-04T02:13:59.000Z\",\"0xbdd083f6c9905230ec66b00863175112f2dbad532a6bd34d5982752587d1c5dd\",[\"eth:0xafCEDDe020dB8D431Fa86dF6B14C20f327382709\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.impl:\n- \"eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\"\n+ \"eth:0xafCEDDe020dB8D431Fa86dF6B14C20f327382709\"\n values.getConfig:\n+ {\"handOverSlots\":8}\n implementationNames.eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913:\n- \"PreconfRouter\"\n implementationNames.eth:0xafCEDDe020dB8D431Fa86dF6B14C20f327382709:\n+ \"PreconfRouter\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 1 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 1 operators registered.\"\n values.operatorCount:\n- 3\n+ 2\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperatorsCount:\n- 2\n+ 1\n }\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (eth:0x7CCA385bdC790c25924333F5ADb7F4967F5d1599)\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).\n```"
}
]
},
{
"id": "c64c6e2d",
"date": "Wed, 03 Dec 2025 11:03:47 GMT",
"timestamp": 1764759251,
"description": "Forkrouter removed, minor bugfix in MainnetInbox: https://disco.l2beat.com/diff/eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8/eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\n\nthis was an SC emergency proposal reviewed by us.",
"isHighSeverity": true,
"changeCount": 31,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1 (eth:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n name:\n- \"PacayaForkRouter\"\n+ \"TaikoL1\"\n sourceHashes.1:\n- \"0x5702f8ecc44ca1160a3d0954d937678c18e339e0b8b415d47e8d20c5f3fb4a19\"\n+ \"0x2fc623a8d2d43eaa7b59707ea9d1f766608b3626be55f68a9617b218e44b3cd5\"\n values.$implementation:\n- \"eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7\"\n+ \"eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\"\n values.$pastUpgrades.29:\n+ [\"2025-12-03T00:16:35.000Z\",\"0x22ad3111b2e282663d8ee67b9a1e8c64add6a87f1e1f0e89dd589619ad42cce4\",[\"eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\"]]\n values.$upgradeCount:\n- 29\n+ 30\n values.newFork:\n- \"eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8\"\n values.oldFork:\n- \"eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\"\n values.bondToken:\n+ \"eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.impl:\n+ \"eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5\"\n values.inboxWrapper:\n+ \"eth:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n values.inNonReentrant:\n+ false\n values.isOnL1:\n+ true\n values.pacayaConfig:\n+ {\"chainId\":167000,\"maxUnverifiedBatches\":324000,\"batchRingBufferSize\":360000,\"maxBatchesToVerify\":8,\"blockMaxGasLimit\":240000000,\"livenessBondBase\":\"25000000000000000000\",\"livenessBondPerBlock\":0,\"stateRootSyncInternal\":4,\"maxAnchorHeightOffset\":96,\"baseFeeConfig\":{\"adjustmentQuotient\":8,\"sharingPctg\":75,\"gasIssuancePerSecond\":5000000,\"minGasExcess\":1344899430,\"maxGasIssuancePerBlock\":600000000},\"provingWindow\":7200,\"cooldownWindow\":7200,\"maxSignalsToReceive\":16,\"maxBlocksPerBatch\":768,\"forkHeights\":{\"ontake\":538304,\"pacaya\":1166000,\"shasta\":0,\"unzen\":0}}\n values.paused:\n+ false\n values.resolver:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.signalService:\n+ \"eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n values.verifier:\n+ \"eth:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7:\n- \"PacayaForkRouter\"\n implementationNames.eth:0xB0600e011e02eD35A142B45B506B16A35493c3F5:\n+ \"MainnetInbox\"\n template:\n+ \"taiko/TaikoL1PostPacaya\"\n description:\n+ \"Main contract implementing the logic for proposing and proving Taiko blocks on L1.\"\n }\n```\n\n```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 24\n+ 26\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTaikoL1 (eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264)\n +++ description: None\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 22\n+ 23\n values.proposalIds.22:\n+ \"600503437133673611609410939840991465998794096662\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetInbox (eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8)\n +++ description: None\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n values.registeredOperators.0:\n- {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.1:\n+ {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract MainnetTaikoL1 (eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetInbox (eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8)\n +++ description: None\n```"
}
]
},
{
"id": "906e7d8d",
"date": "Wed, 26 Nov 2025 13:52:55 GMT",
"timestamp": 1764165081,
"description": "proposal to move TAIKO from the DAO to the Labs treasury: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/21\n\noperator changes",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 21\n+ 22\n values.proposalIds.21:\n+ \"600279957369763019115429650404480285099304157205\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 2 operators registered.\"\n values.operatorCount:\n- 4\n+ 3\n values.registeredOperators.0:\n- {\"proposer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\",\"sequencer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"}\n values.registeredOperators.2.sequencer:\n- \"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.registeredOperators.2.proposer:\n- \"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.registeredOperatorsCount:\n- 3\n+ 2\n }\n```"
}
]
},
{
"id": "3ed654a2",
"date": "Mon, 24 Nov 2025 09:55:12 GMT",
"timestamp": 1763978021,
"description": "new operators.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n values.registeredOperators.2:\n+ {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n }\n```"
}
]
},
{
"id": "9b6444b8",
"date": "Wed, 19 Nov 2025 11:32:31 GMT",
"timestamp": 1763551862,
"description": "new proposal: move TAIKO to team treasury multisig.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 12\n+ 13\n }\n```"
}
]
},
{
"id": "cd51abde",
"date": "Mon, 10 Nov 2025 09:00:28 GMT",
"timestamp": 1762765141,
"description": "PreconfWhitelist changed, and the verifier upgrade proposal is now in the public / optimistic phase:\n- dao frontend: https://dao.taiko.xyz/plugins/community-proposals/#/proposals/20\n- review: https://gist.github.com/sekuba/46d7bcab5127c0ed6e0d66ce285b0559",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (eth:0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 20\n+ 21\n values.proposalIds.20:\n+ \"599695636739451592739723352125243732881756389396\"\n }\n```\n\n```diff\n contract Daniel Wang (eth:0xb47fE76aC588101BFBdA9E68F66433bA51E8029a) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n values.$members.1:\n+ \"eth:0xFa92ff698D57f7B875570D9F59501812B843CD44\"\n values.$members.2:\n+ \"eth:0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n values.$members.3:\n+ \"eth:0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n values.$members.1:\n- \"eth:0x7057A707621Fadd422f84DE94A9dF7c4F1AC595C\"\n+ \"eth:0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a\"\n values.$threshold:\n- 1\n+ 4\n values.multisigThreshold:\n- \"1 of 2 (50%)\"\n+ \"4 of 6 (67%)\"\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.2:\n+ {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n }\n```"
}
]
},
{
"id": "6eb5cecb",
"date": "Tue, 04 Nov 2025 15:15:49 GMT",
"timestamp": 1762269183,
"description": "operator change.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 4 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n values.registeredOperators.3.sequencer:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"\n values.registeredOperators.3.proposer:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"\n values.registeredOperatorsCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "3653ad61",
"date": "Mon, 03 Nov 2025 14:19:44 GMT",
"timestamp": 1761894930,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract LibUtils (eth:0x5565543Ec09f746721928B0A4d019c9E750d0552)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LibBonds (eth:0xc618b0bA27F751D33689DebA538f8567AeF53ee6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LibData (eth:0xe61FD6715FfFA2f4057f1Cf0230512b91A9f5f84)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LibProving (eth:0xfD9B548c00a1E96BbFc2C5FE0D339618B40B4593)\n +++ description: None\n```"
}
]
},
{
"id": "0b0071d7",
"date": "Fri, 31 Oct 2025 07:17:02 GMT",
"timestamp": 1761894930,
"description": "Minor upgrade proposed.\n\nReviewed here: https://gist.github.com/sekuba/46d7bcab5127c0ed6e0d66ce285b0559 (approved, will go to optimistic phase if at least 5 approve)",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Multisig (eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 11\n+ 12\n }\n```"
}
]
},
{
"id": "08dd5a80",
"date": "Tue, 28 Oct 2025 09:33:53 GMT",
"timestamp": 1761643945,
"description": "proposer/sequencer whitelist changed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 4 operators registered.\n values.registeredOperators.0.sequencer:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.registeredOperators.0.proposer:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n values.registeredOperators.3.sequencer:\n- \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n values.registeredOperators.3.proposer:\n- \"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"\n+ \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n }\n```"
}
]
},
{
"id": "57934f47",
"date": "Mon, 27 Oct 2025 07:42:48 GMT",
"timestamp": 1761550873,
"description": "Operator change.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 4 operators registered.\n values.registeredOperators.0:\n- {\"proposer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\",\"sequencer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"}\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.2:\n+ {\"proposer\":\"eth:0xCbeB5d484b54498d3893A0c3Eb790331962e9e9d\",\"sequencer\":\"eth:0x2ABD9afD6D41d0c37b8d55df11BFc73B53c3ac61\"}\n values.registeredOperators.3:\n+ {\"proposer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\",\"sequencer\":\"eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990\"}\n }\n```"
}
]
},
{
"id": "a1b1e6d7",
"date": "Wed, 08 Oct 2025 07:42:30 GMT",
"timestamp": 1759909174,
"description": "Proposal 23: encrypted emergency proposal.\n'proposal is neither to fix a bug nor time-critical' - sc chat.\n\nverification of the calldata is pending.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract EmergencyMultisig (eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 23\n+ 24\n }\n```"
}
]
},
{
"id": "75bf1442",
"date": "Mon, 22 Sep 2025 07:47:06 GMT",
"timestamp": 1758523605,
"description": "New operator (proposer/preconfer) registered.\n\nconfig: act permissions for the dao controllers and minor description changes.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 4 operators registered.\n description:\n- \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 3 operators registered.\"\n+ \"Contains the whitelist of addresses allowed to propose batches on L1. These operators can also issue pre-confirmation from their public addresses. Currently, there are 4 operators registered.\"\n values.registeredOperators.3:\n+ {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n values.registeredOperatorsCount:\n- 3\n+ 4\n }\n```"
}
]
},
{
"id": "72f8fc3e",
"date": "Fri, 19 Sep 2025 13:06:41 GMT",
"timestamp": 1758287100,
"description": "One preconfirmer deregistered.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n values.registeredOperators.3:\n- {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n values.registeredOperatorsCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "19898113",
"date": "Wed, 17 Sep 2025 12:00:17 GMT",
"timestamp": 1758110316,
"description": "Removed and then added back a preconf operator. As the result the list is reordered.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n values.registeredOperators.1:\n- {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n values.registeredOperators.3:\n+ {\"proposer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\",\"sequencer\":\"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"}\n }\n```"
}
]
},
{
"id": "0763c53c",
"date": "Tue, 09 Sep 2025 07:35:21 GMT",
"timestamp": 1757403234,
"description": "move of preconfWhitelist gov to the DAO.\n\nthe single non-DAO-governed contract left is ProverSet, so the migration seems to be complete.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoDAOController (eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n receivedPermissions.28:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"upgrade\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"role\":\"admin\"}]\n }\n```\n\n```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```"
}
]
},
{
"id": "66b36386",
"date": "Mon, 08 Sep 2025 15:13:18 GMT",
"timestamp": 1757344306,
"description": "Remaining gov functions transfered to DAO/SC.",
"isHighSeverity": false,
"changeCount": 15,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L2AddressManager (taiko:0x1670000000000000000000000000000000000006) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.$admin:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.owner:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.pendingOwner:\n- \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract TaikoAnchor (taiko:0x1670000000000000000000000000000000010001) {\n +++ description: Handles cross-layer message verification and manages EIP-1559 gas pricing for L2 operations. Anchors L1 block details to L2 for cross-layer communication.\n values.$admin:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.owner:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.pendingOwner:\n- \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract DefaultResolver (taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.$admin:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.owner:\n- \"taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8\"\n+ \"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"\n values.pendingOwner:\n- \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Taiko L2 Multisig (taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8)\n +++ description: None\n```\n\n```diff\n contract DelegateController (taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000006\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.4:\n+ {\"permission\":\"upgrade\",\"from\":\"taiko:0x1670000000000000000000000000000000000006\",\"role\":\"admin\"}\n receivedPermissions.5:\n+ {\"permission\":\"upgrade\",\"from\":\"taiko:0x1670000000000000000000000000000000010001\",\"role\":\"admin\"}\n receivedPermissions.6:\n+ {\"permission\":\"upgrade\",\"from\":\"taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8\",\"role\":\"admin\"}\n }\n```"
}
]
},
{
"id": "f16112a0",
"date": "Fri, 05 Sep 2025 09:35:03 GMT",
"timestamp": 1757064809,
"description": "New operator registered, new pending owner (DAO/SC) for some contracts.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n values.operatorCount:\n- 3\n+ 4\n values.registeredOperators.3:\n+ {\"proposer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\",\"sequencer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"}\n values.registeredOperatorsCount:\n- 3\n+ 4\n }\n```\n\n```diff\n contract L2AddressManager (taiko:0x1670000000000000000000000000000000000006) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.pendingOwner:\n- \"taiko:0x0000000000000000000000000000000000000000\"\n+ \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract TaikoAnchor (taiko:0x1670000000000000000000000000000000010001) {\n +++ description: Handles cross-layer message verification and manages EIP-1559 gas pricing for L2 operations. Anchors L1 block details to L2 for cross-layer communication.\n values.pendingOwner:\n- \"taiko:0x0000000000000000000000000000000000000000\"\n+ \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract DefaultResolver (taiko:0xc32277f541bBADAA260337E71Cea53871D310DC8) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.pendingOwner:\n- \"taiko:0x0000000000000000000000000000000000000000\"\n+ \"taiko:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract Taiko L2 Multisig (taiko:0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8) {\n +++ description: None\n values.$members.0:\n+ \"taiko:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n values.$threshold:\n- 4\n+ 5\n values.multisigThreshold:\n- \"4 of 6 (67%)\"\n+ \"5 of 7 (71%)\"\n }\n```"
}
]
},
{
"id": "0d8a72c8",
"date": "Tue, 02 Sep 2025 09:26:15 GMT",
"timestamp": 1756804828,
"description": "One operator got removed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (eth:0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n values.registeredOperators.3:\n- {\"proposer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\",\"sequencer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"}\n values.registeredOperatorsCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "709bc2e7",
"date": "Sun, 31 Aug 2025 07:53:11 GMT",
"timestamp": 1756626709,
"description": "- TaikoL1\nMinimal diff: changed function return value (proposeBatch now returns lastBlockId)\nhttps://disco.l2beat.com/diff/eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82/eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8\n\nNo diff, changed NewFork constructor param to use the new implementation contract from above (0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8) \nhttps://disco.l2beat.com/diff/eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F/eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7\n\n- ProverSet\nAdmin change to EOA (taiko foundation msig member)\n\n- TaikoWrapper\nMinimal diff: changed functions ordering to do one less decoding \nhttps://disco.l2beat.com/diff/eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61/eth:0x52D6FC6F6db9E370c336f64f61ff3C29568d1859\n\n- PreconfRouter\nMinimal diff: match function interface changes from above \nhttps://disco.l2beat.com/diff/eth:0xf571E2626E2CE68127852123A2cC6AA522C586A0/eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\n\n- PreconfWhitelist\nOperators can now also be added by ejecter (chnaged onlyOwner toonlyOwnerOrEjecter modifier).",
"isHighSeverity": true,
"changeCount": 111,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ForcedInclusionStore (0x05d88855361808fA1d7fc28084Ef3fCa191c4e03) {\n +++ description: Contract that allows users to enqueue forced transactions via L1. The system guarantees that at least one pending forced transaction from the queue will be processed every 255 batches. Individual transactions may face longer delays if the queue is extensive.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract TaikoL1 (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n sourceHashes.1:\n- \"0x036f854f425618da3e66dad1cd29e352eda6ce3f728eb078bc043f82fe653157\"\n+ \"0x4a046242c16270e33ec006d5d7d18a68040b417d8355d24cc6a44926ce444f6e\"\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.$implementation.0:\n- \"eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F\"\n+ \"eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7\"\n values.$implementation.2:\n- \"eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82\"\n+ \"eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8\"\n values.$pastUpgrades.28:\n+ [\"2025-08-26T21:48:47.000Z\",\"0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00\",[\"eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7\",\"eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\",\"eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8\"]]\n values.$upgradeCount:\n- 28\n+ 29\n values.impl:\n- \"eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F\"\n+ \"eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7\"\n values.newFork:\n- \"eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82\"\n+ \"eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n implementationNames.eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F:\n- \"PacayaForkRouter\"\n implementationNames.eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82:\n- \"MainnetInbox\"\n implementationNames.eth:0xbB1f830636e1A017b81C3E38b7f6219344149Eb7:\n+ \"PacayaForkRouter\"\n implementationNames.eth:0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n EOA (0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"upgrade\",\"from\":\"eth:0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\",\"role\":\"admin\"}]\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) {\n +++ description: Contract managing SGX attestation certificates.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract ProverSet (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: An operator proxy used by the Taiko team for operating (proposing, proving) the based rollup from permissioned addresses.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n values.pendingOwner:\n- \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract Risc0VerifierGateway (0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE) {\n +++ description: Entry contract to verify batches using RISC Zero.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract TaikoDAOController (0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\",\"description\":\"can add new instances without a DCAP attestation\",\"role\":\".owner\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\",\"description\":\"can add new instances without a DCAP attestation\",\"role\":\".owner\"}\n receivedPermissions.7:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbee1040D0Aab17AE19454384904525aE4A3602B9\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.9:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\",\"role\":\"admin\"}\n receivedPermissions.10:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\",\"role\":\"admin\"}\n receivedPermissions.11:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\",\"role\":\"admin\"}\n receivedPermissions.13:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\",\"role\":\"admin\"}\n receivedPermissions.14:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\",\"role\":\"admin\"}\n receivedPermissions.15:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\",\"role\":\"admin\"}\n receivedPermissions.16:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"role\":\"admin\"}\n receivedPermissions.17:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"role\":\"admin\"}\n receivedPermissions.21:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\",\"role\":\"admin\"}\n receivedPermissions.22:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\",\"role\":\"admin\"}\n receivedPermissions.23:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\",\"role\":\"admin\"}\n receivedPermissions.24:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbee1040D0Aab17AE19454384904525aE4A3602B9\",\"role\":\"admin\"}\n receivedPermissions.25:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a\",\"role\":\"admin\"}\n receivedPermissions.27:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract SgxVerifier (0x7e6409e9b6c5e2064064a6cC994f9a2e95680782) {\n +++ description: Verifier contract for SGX proven blocks.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract DefaultResolver (0x8Efa01564425692d0a0838DC10E300BD310Cb43e) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"interact\",\"from\":\"eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"eth:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.2:\n- {\"permission\":\"interact\",\"from\":\"eth:0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.3:\n- {\"permission\":\"interact\",\"from\":\"eth:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\",\"description\":\"can add new instances without a DCAP attestation\",\"role\":\".owner\"}\n receivedPermissions.4:\n- {\"permission\":\"interact\",\"from\":\"eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.6:\n- {\"permission\":\"interact\",\"from\":\"eth:0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\",\"description\":\"can add new instances without a DCAP attestation\",\"role\":\".owner\"}\n receivedPermissions.7:\n- {\"permission\":\"interact\",\"from\":\"eth:0xbee1040D0Aab17AE19454384904525aE4A3602B9\",\"description\":\"can update the program being verified\",\"role\":\".owner\"}\n receivedPermissions.8:\n- {\"permission\":\"interact\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n receivedPermissions.9:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\",\"role\":\"admin\"}\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\",\"role\":\"admin\"}\n receivedPermissions.11:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\",\"role\":\"admin\"}\n receivedPermissions.12:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\",\"role\":\"admin\"}\n receivedPermissions.13:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\",\"role\":\"admin\"}\n receivedPermissions.14:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\",\"role\":\"admin\"}\n receivedPermissions.15:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\",\"role\":\"admin\"}\n receivedPermissions.16:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"role\":\"admin\"}\n receivedPermissions.17:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\",\"role\":\"admin\"}\n receivedPermissions.18:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\",\"role\":\"admin\"}\n receivedPermissions.19:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\",\"role\":\"admin\"}\n receivedPermissions.20:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\",\"role\":\"admin\"}\n receivedPermissions.21:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xbee1040D0Aab17AE19454384904525aE4A3602B9\",\"role\":\"admin\"}\n receivedPermissions.22:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a\",\"role\":\"admin\"}\n receivedPermissions.23:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract SgxVerifier (0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136) {\n +++ description: Verifier contract for SGX proven blocks.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract TaikoWrapper (0x9F9D2fC7abe74C79f86F0D1212107692430eef72) {\n +++ description: Entry point for proposing blocks. It enforces the inclusion of forced transactions after their deadline.\n sourceHashes.1:\n- \"0x6f1f57d97885434b7f6b769ef9377a6fa75456740c69110c6bb37fb53a7fc68f\"\n+ \"0xb219932acfe503395c533757b638bdb5327f27434f87222d3e135534243f0b51\"\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.$implementation:\n- \"eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61\"\n+ \"eth:0x52D6FC6F6db9E370c336f64f61ff3C29568d1859\"\n values.$pastUpgrades.2:\n+ [\"2025-08-26T21:48:47.000Z\",\"0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00\",[\"eth:0x52D6FC6F6db9E370c336f64f61ff3C29568d1859\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.impl:\n- \"eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61\"\n+ \"eth:0x52D6FC6F6db9E370c336f64f61ff3C29568d1859\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n implementationNames.eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61:\n- \"TaikoWrapper\"\n implementationNames.eth:0x52D6FC6F6db9E370c336f64f61ff3C29568d1859:\n+ \"TaikoWrapper\"\n }\n```\n\n```diff\n contract VerifierGateway (0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1) {\n +++ description: Gateway contract for the multi-proof system. It redirects proof to the appropriate verifier based on the proof type.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract SP1VerifierGateway (0xbee1040D0Aab17AE19454384904525aE4A3602B9) {\n +++ description: Entry contract to verify batches using SP1.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract PreconfRouter (0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a) {\n +++ description: Entry point for batch proposals under the pre-confirmation architecture. It allows batches to be proposed only by whitelisted addresses.\n sourceHashes.1:\n- \"0x7029286f91090d6d474c9bc0329436fed073038c547c5cd3db6c70045a7dccf8\"\n+ \"0x34a58f3c77d5666ec8a39b17ab327273604248af9004c771429a4413b09e20dd\"\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.$implementation:\n- \"eth:0xf571E2626E2CE68127852123A2cC6AA522C586A0\"\n+ \"eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\"\n values.$pastUpgrades.2:\n+ [\"2025-08-26T21:48:47.000Z\",\"0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00\",[\"eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.impl:\n- \"eth:0xf571E2626E2CE68127852123A2cC6AA522C586A0\"\n+ \"eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n implementationNames.eth:0xf571E2626E2CE68127852123A2cC6AA522C586A0:\n- \"PreconfRouter\"\n implementationNames.eth:0xC44577BAA22f999a16a9dF817A2aba6e5e696913:\n+ \"PreconfRouter\"\n }\n```\n\n```diff\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.$admin:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract PreconfWhitelist (0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n sourceHashes.1:\n- \"0xf118d401839238cdc94b9476ab2149f7492c9653c489f80819102c4fe0b23fc3\"\n+ \"0x93a254bb5914a81cd902577cdafd323639e44227fdae5e14aa14fd47e1440063\"\n values.$implementation:\n- \"eth:0x44eC275996BD69361EF062ed488882a58256CF11\"\n+ \"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc\"\n values.$pastUpgrades.2:\n+ [\"2025-08-26T21:48:47.000Z\",\"0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00\",[\"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.impl:\n- \"eth:0x44eC275996BD69361EF062ed488882a58256CF11\"\n+ \"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc\"\n implementationNames.eth:0x44eC275996BD69361EF062ed488882a58256CF11:\n- \"PreconfWhitelist\"\n implementationNames.eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc:\n+ \"PreconfWhitelist\"\n }\n```"
}
]
},
{
"id": "c6aa02e4",
"date": "Mon, 25 Aug 2025 14:12:20 GMT",
"timestamp": 1756117493,
"description": "ProverSet is in the process of changing owner.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProverSet (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: An operator proxy used by the Taiko team for operating (proposing, proving) the based rollup from permissioned addresses.\n values.pendingOwner:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n }\n```"
}
]
},
{
"id": "385fc1f6",
"date": "Wed, 20 Aug 2025 14:59:53 GMT",
"timestamp": 1755701960,
"description": "New preconfirmer.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n values.havingPerfectOperators:\n- true\n+ false\n values.operatorCount:\n- 3\n+ 4\n values.registeredOperators.3:\n+ {\"proposer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\",\"sequencer\":\"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"}\n values.registeredOperatorsCount:\n- 3\n+ 4\n }\n```"
}
]
},
{
"id": "55d6dea7",
"date": "Tue, 19 Aug 2025 09:02:29 GMT",
"timestamp": 1755594109,
"description": "New operator count.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n values.havingPerfectOperators:\n- false\n+ true\n values.operatorCount:\n- 4\n+ 3\n }\n```"
}
]
},
{
"id": "ac9916b2",
"date": "Fri, 15 Aug 2025 08:50:57 GMT",
"timestamp": 1755212383,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract Bridge (0x1670000000000000000000000000000000000001)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SignalService (0x1670000000000000000000000000000000000005)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2AddressManager (0x1670000000000000000000000000000000000006)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoAnchor (0x1670000000000000000000000000000000010001)\n +++ description: Handles cross-layer message verification and manages EIP-1559 gas pricing for L2 operations. Anchors L1 block details to L2 for cross-layer communication.\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (0xc32277f541bBADAA260337E71Cea53871D310DC8)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract Taiko L2 Multisig (0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelegateController (0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C)\n +++ description: None\n```"
}
]
},
{
"id": "0201cc02",
"date": "Fri, 15 Aug 2025 08:50:57 GMT",
"timestamp": 1755212383,
"description": "Taiko L2 side initial discovery.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract PreconfWhitelist (0xFD019460881e6EeC632258222393d5821029b2ac) {\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\n description:\n- \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\"\n+ \"Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 4 operators registered.\"\n values.getOperatorForNextEpoch:\n- \"eth:0x000cb000E880A92a8f383D69dA2142a969B93DE7\"\n+ \"eth:0xe2dA8aC2E550cd141198a117520D4EDc8692AB74\"\n values.operatorCount:\n- 3\n+ 4\n }\n```"
}
]
},
{
"id": "ca91bdf8",
"date": "Thu, 14 Aug 2025 11:58:53 GMT",
"timestamp": 1755172721,
"description": "Preconf Upgrade!\n\n[Fork Router](https://disco.l2beat.com/diff/eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319/eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F): no code diff\n\nOld fork: same address\n\n[New fork](https://disco.l2beat.com/diff/eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC/eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82): Minimal config changes: lower liveness bond,lower max batches per proposal, higher max anchor height.\n\n[TaikoWrapper](https://disco.l2beat.com/diff/eth:0xAdBa78120E85Add0dBD2050dBA0548CEDA81A31b/eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61): proposing must be done via PreconfRouter now.",
"isHighSeverity": true,
"changeCount": 35,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1 (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n sourceHashes.1:\n- \"0xd3d952e9a5655549b172292d82b0e6e7b2223cab5ef6819f2790ed53304f56a7\"\n+ \"0x036f854f425618da3e66dad1cd29e352eda6ce3f728eb078bc043f82fe653157\"\n values.$implementation.0:\n- \"eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319\"\n+ \"eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F\"\n values.$implementation.2:\n- \"eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC\"\n+ \"eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82\"\n values.$pastUpgrades.27:\n+ [\"2025-08-11T13:45:11.000Z\",\"0xbfd772cb4571eb6275f23d4fd8c7eb1502462b55821ee59dae0d15ab3325fc22\",[\"eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F\",\"eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\",\"eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82\"]]\n values.$upgradeCount:\n- 27\n+ 28\n values.impl:\n- \"eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319\"\n+ \"eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F\"\n values.newFork:\n- \"eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC\"\n+ \"eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82\"\n values.pacayaConfig.maxBatchesToVerify:\n- 16\n+ 8\n values.pacayaConfig.livenessBondBase:\n- \"125000000000000000000\"\n+ \"25000000000000000000\"\n values.pacayaConfig.maxAnchorHeightOffset:\n- 64\n+ 96\n implementationNames.eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319:\n- \"PacayaForkRouter\"\n implementationNames.eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC:\n- \"MainnetInbox\"\n implementationNames.eth:0xb4530aBee1Dd239C02266e73ca83Fe6617e77F2F:\n+ \"PacayaForkRouter\"\n implementationNames.eth:0x257df77Ec059ca5CF9B7eD523f85B731A2eCdb82:\n+ \"MainnetInbox\"\n }\n```\n\n```diff\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.namedAddresses.17:\n+ {\"name\":\"0x707265636f6e665f77686974656c697374000000000000000000000000000000\",\"address\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\"}\n values.namedAddresses.18:\n+ {\"name\":\"0x707265636f6e665f726f75746572000000000000000000000000000000000000\",\"address\":\"eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a\"}\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.16:\n+ \"0xca349ba0dfeced0bd837a56c97417c11e51d490eec4ff08321dd130776a413bd\"\n values.mrEnclaves.17:\n+ \"0xe2375b778ee5700a73c7fcf449abb4a62e00127d324b6694898073ba5aff4f5c\"\n values.mrEnclaves.18:\n+ \"0x67742ab222790e20ba3656b3b294645a3384a5df5a770b86f8c06529523d990e\"\n values.mrEnclaves.19:\n+ \"0xddda8ba9c9153e3d2f680f2f53adbc774a9753cc55d40dde4cb02aef38c42109\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xAC5898b0FFFd23F4Ef09F0E50Fa1bC4896eF7163\"\n values.$threshold:\n- 4\n+ 5\n values.multisigThreshold:\n- \"4 of 6 (67%)\"\n+ \"5 of 7 (71%)\"\n receivedPermissions.22:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a\",\"role\":\"admin\"}\n receivedPermissions.24:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xFD019460881e6EeC632258222393d5821029b2ac\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract TaikoWrapper (0x9F9D2fC7abe74C79f86F0D1212107692430eef72) {\n +++ description: Entry point for proposing blocks. It enforces the inclusion of forced transactions after their deadline.\n sourceHashes.1:\n- \"0x9cee3ca82b3cd60de871679b86db583cbf35a0a911ded84676f9fdcc1a77c8ca\"\n+ \"0x6f1f57d97885434b7f6b769ef9377a6fa75456740c69110c6bb37fb53a7fc68f\"\n values.$implementation:\n- \"eth:0xAdBa78120E85Add0dBD2050dBA0548CEDA81A31b\"\n+ \"eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61\"\n values.$pastUpgrades.1:\n+ [\"2025-08-11T13:45:11.000Z\",\"0xbfd772cb4571eb6275f23d4fd8c7eb1502462b55821ee59dae0d15ab3325fc22\",[\"eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.impl:\n- \"eth:0xAdBa78120E85Add0dBD2050dBA0548CEDA81A31b\"\n+ \"eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61\"\n values.preconfRouter:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a\"\n implementationNames.eth:0xAdBa78120E85Add0dBD2050dBA0548CEDA81A31b:\n- \"TaikoWrapper\"\n implementationNames.eth:0xa2D216dD9c84cb2e738240aac0956BE98293be61:\n+ \"TaikoWrapper\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract PreconfRouter (0xD5AA0e20e8A6e9b04F080Cf8797410fafAa9688a)\n +++ description: Entry point for batch proposals under the pre-confirmation architecture. It allows batches to be proposed only by whitelisted addresses.\n```\n\n```diff\n+ Status: CREATED\n contract PreconfWhitelist (0xFD019460881e6EeC632258222393d5821029b2ac)\n +++ description: Contract that contains the whitelist for addresses allowed to propose (pre-confirmation) batches. There are currently 3 operators registered.\n```"
}
]
},
{
"id": "97554a00",
"date": "Tue, 29 Jul 2025 13:42:27 GMT",
"timestamp": 1753796542,
"description": "Updated RISC0 Groth16 verifier version for Taiko batch proofs.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0x34Eda8BfFb539AeC33078819847B36D221c6641c)\n +++ description: Verifier contract for RISC Zero Groth16 proofs (version 2.2.0).\n```"
}
]
},
{
"id": "9c15da27",
"date": "Tue, 15 Jul 2025 08:05:18 GMT",
"timestamp": 1752566718,
"description": "[Single line change](https://disco.l2beat.com/diff/eth:0x497B13f9192B09244de9b5F0964830969FB26F07/eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC) to the baseFeeConfig.sharingPctg: 50 -> 75.\n\n[ai]: this means that 75% of transaction fees are going to the block proposer and 25% to taiko treasury (distribution logic on L2).\ni could not really verify this claim and unsuccessfully searched for any l2 logic that distributes fees.\n\nthe pre-pacaya impl is the same.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1 (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n sourceHashes.1:\n- \"0xc4ae3ca2fcf606673a1324989a7ac169b3fdb6780917814506e56898484e99d7\"\n+ \"0xd3d952e9a5655549b172292d82b0e6e7b2223cab5ef6819f2790ed53304f56a7\"\n values.$implementation.0:\n- \"eth:0x4e030b19135869F6fd926614754B7F9c184E2B83\"\n+ \"eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319\"\n values.$implementation.2:\n- \"eth:0x497B13f9192B09244de9b5F0964830969FB26F07\"\n+ \"eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC\"\n values.$pastUpgrades.26:\n+ [\"2025-07-15T01:20:35.000Z\",\"0xffedb70a513e71486c3a47079508d3ba87ae5362e7efb3300febac1be69276bc\",[\"eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319\",\"eth:0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\",\"eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC\"]]\n values.$upgradeCount:\n- 26\n+ 27\n values.impl:\n- \"eth:0x4e030b19135869F6fd926614754B7F9c184E2B83\"\n+ \"eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319\"\n values.newFork:\n- \"eth:0x497B13f9192B09244de9b5F0964830969FB26F07\"\n+ \"eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC\"\n values.pacayaConfig.baseFeeConfig.sharingPctg:\n- 50\n+ 75\n implementationNames.eth:0x4e030b19135869F6fd926614754B7F9c184E2B83:\n- \"PacayaForkRouter\"\n implementationNames.eth:0x497B13f9192B09244de9b5F0964830969FB26F07:\n- \"MainnetInbox\"\n implementationNames.eth:0xde813DD3b89702E5Eb186FeE6FBC5dCf02aE6319:\n+ \"PacayaForkRouter\"\n implementationNames.eth:0x80d888ce11738196CfCf27E3b18F65bD4a331CEC:\n+ \"MainnetInbox\"\n }\n```"
}
]
},
{
"id": "38c180c5",
"date": "Mon, 14 Jul 2025 12:46:35 GMT",
"timestamp": 1752497195,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 42,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract PEMCertChainLib (0x02772b7B3a5Bea0141C993Dbb8D0733C19F46169)\n +++ description: Library for managing PEM certificate chains.\n```\n\n```diff\n+ Status: CREATED\n contract ForcedInclusionStore (0x05d88855361808fA1d7fc28084Ef3fCa191c4e03)\n +++ description: Contract that allows users to enqueue forced transactions via L1. The system guarantees that at least one pending forced transaction from the queue will be processed every 255 batches. Individual transactions may face longer delays if the queue is extensive.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoL1 (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a)\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n```\n\n```diff\n+ Status: CREATED\n contract Halborn (0x0F40268Ec0Dc8D88CF2f22E227A29a0b478b6351)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SignerList (0x0F95E6968EC1B28c794CF1aD99609431de5179c2)\n +++ description: A signer list for registering agents, similar to a Multisig.\n```\n\n```diff\n+ Status: CREATED\n contract AutomataDcapV3Attestation (0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261)\n +++ description: Contract managing SGX attestation certificates.\n```\n\n```diff\n+ Status: CREATED\n contract Taiko Token (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800)\n +++ description: ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n```\n\n```diff\n+ Status: CREATED\n contract Drew Van der Werff (0x25d3E89bAcE2040Ed3aF7c4c7B505cfBB72fD6f1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyMultisig (0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd)\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n```\n\n```diff\n+ Status: CREATED\n contract EncryptionRegistry (0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract Taiko Foundation Treasury Multisig (0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Chainbound (0x436a1075099A145417EBFc74BBaC9605e3e4f1A7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SigVerifyLib (0x47bB416ee947fE4a4b655011aF7d6E3A1B80E6e9)\n +++ description: Library for verifying signatures.\n```\n\n```diff\n+ Status: CREATED\n contract Nethermind (0x5353c607e6eca6C63FEC5c6C0F5CC3a5348d5c95)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9)\n +++ description: An operator proxy used by the Taiko team for operating (proposing, proving) the based rollup from permissioned addresses.\n```\n\n```diff\n+ Status: CREATED\n contract Risc0VerifierGateway (0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE)\n +++ description: Entry contract to verify batches using RISC Zero.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoDAOController (0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a)\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (0x7e6409e9b6c5e2064064a6cC994f9a2e95680782)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3)\n +++ description: Contract managing SGX attestation certificates.\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (0x8Efa01564425692d0a0838DC10E300BD310Cb43e)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract QuotaManager (0x91f67118DD47d502B1f0C354D0611997B022f29E)\n +++ description: Defines withdrawal limits per token.\n```\n\n```diff\n+ Status: CREATED\n contract OptimisticTokenVotingPlugin (0x989E348275b659d36f8751ea1c10D146211650BE)\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n```\n\n```diff\n+ Status: CREATED\n contract MainnetERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab)\n +++ description: Shared vault for Taiko chains for bridged ERC20 tokens.\n```\n\n```diff\n+ Status: CREATED\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DAO (0x9CDf589C941ee81D75F34d3755671d614f7cf261)\n +++ description: The main contract of the Aragon-based DAO governance framework.\n```\n\n```diff\n+ Status: CREATED\n contract MainnetSignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C)\n +++ description: The SignalService contract serves as cross-chain message passing system. It defines methods for sending and verifying signals with merkle proofs.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoWrapper (0x9F9D2fC7abe74C79f86F0D1212107692430eef72)\n +++ description: Entry point for proposing blocks. It enforces the inclusion of forced transactions after their deadline.\n```\n\n```diff\n+ Status: CREATED\n contract Toni Wahrstätter (0xa384E224A3F3D664F43eBE33395eF0DCcE67e894)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract VerifierGateway (0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1)\n +++ description: Gateway contract for the multi-proof system. It redirects proof to the appropriate verifier based on the proof type.\n```\n\n```diff\n+ Status: CREATED\n contract Aragon (0xb284810536C0dAB6A8e48153B58588A9B9e0F701)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Daniel Wang (0xb47fE76aC588101BFBdA9E68F66433bA51E8029a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGateway (0xbee1040D0Aab17AE19454384904525aE4A3602B9)\n +++ description: Entry contract to verify batches using SP1.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xD5cF6A34Ba5fb9289510dC93c03F1f9084798487)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC)\n +++ description: Shared bridge for Taiko chains for bridged ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Multisig (0xD7dA1C25E915438720692bC55eb3a7170cA90321)\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n```\n\n```diff\n+ Status: CREATED\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract L2BEAT (0xf1cF63589A1e012F9124182c9eAa36B5333e5f06)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0xfB3Ca570A5348FD101e65303eECdB5Bf43C5548a)\n +++ description: Verifier contract for RISC Zero Groth16 proofs.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoDAOController (0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3)\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xFF5Adab685362DC4C33536a65aF5873738D1216B)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```"
}
]
},
{
"id": "82d57b03",
"date": "Wed, 09 Jul 2025 16:02:11 GMT",
"timestamp": 1752076931,
"description": "Enclave hashes updated. Safe Multisigs upgraded to newest version.\n\nTaiko Foundation Treasury Multisig 4/6 -> 2/3",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AutomataDcapV3Attestation (0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.1:\n+ \"0x692c8624d30a327340b0dfbb67203e941175ac700d1a058c717e5269103d37e6\"\n }\n```\n\n```diff\n contract Taiko Foundation Treasury Multisig (0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da) {\n +++ description: None\n sourceHashes.1:\n- \"0xd42bbf9f7dcd3720a7fc6bdc6edfdfae8800a37d6dd4decfa0ef6ca4a2e88940\"\n+ \"0x7d388119a66f3eae147d748f86136f073d907d6b36f7e87e9363c4c7a2899a8a\"\n values.$implementation:\n- \"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n+ \"0x41675C099F32341bf84BFc5382aF534df5C7461a\"\n values.$members.0:\n- \"0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.$members.2:\n- \"0x1eE487CEdCe52c370DB11e62987F3ABe873E145A\"\n values.$members.3:\n- \"0xFa92ff698D57f7B875570D9F59501812B843CD44\"\n values.$members.4:\n- \"0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n values.$threshold:\n- 4\n+ 2\n values.multisigThreshold:\n- \"4 of 6 (67%)\"\n+ \"2 of 3 (67%)\"\n values.VERSION:\n- \"1.3.0\"\n+ \"1.4.1\"\n implementationNames.0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552:\n- \"GnosisSafe\"\n implementationNames.0x41675C099F32341bf84BFc5382aF534df5C7461a:\n+ \"Safe\"\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.14:\n+ \"0x631778b0d420d2d0bba4c730b0fd74857afeefb3429371ae97ab450e40ca127e\"\n values.mrEnclaves.15:\n+ \"0x482b06132c4306ea55bc34ff90d46532ff4151f473dbfe4d2cb2442af2ff288b\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n sourceHashes.1:\n- \"0xd42bbf9f7dcd3720a7fc6bdc6edfdfae8800a37d6dd4decfa0ef6ca4a2e88940\"\n+ \"0x7d388119a66f3eae147d748f86136f073d907d6b36f7e87e9363c4c7a2899a8a\"\n values.$implementation:\n- \"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n+ \"0x41675C099F32341bf84BFc5382aF534df5C7461a\"\n values.VERSION:\n- \"1.3.0\"\n+ \"1.4.1\"\n implementationNames.0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552:\n- \"GnosisSafe\"\n implementationNames.0x41675C099F32341bf84BFc5382aF534df5C7461a:\n+ \"Safe\"\n }\n```"
}
]
},
{
"id": "7ce948a4",
"date": "Thu, 19 Jun 2025 11:31:54 GMT",
"timestamp": 1750332714,
"description": "Some core upgrade permissions transferred to DAOController.",
"isHighSeverity": false,
"changeCount": 25,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoDAOController (0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n receivedPermissions.4:\n+ {\"permission\":\"upgrade\",\"from\":\"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\",\"role\":\"admin\"}\n receivedPermissions.3:\n+ {\"permission\":\"upgrade\",\"from\":\"ethereum:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"role\":\"admin\"}\n receivedPermissions.2:\n+ {\"permission\":\"upgrade\",\"from\":\"ethereum:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"role\":\"admin\"}\n receivedPermissions.1.from:\n- \"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"ethereum:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n receivedPermissions.0.from:\n- \"ethereum:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"ethereum:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n }\n```\n\n```diff\n contract QuotaManager (0x91f67118DD47d502B1f0C354D0611997B022f29E) {\n +++ description: Defines withdrawal limits per token.\n values.$admin:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions.25:\n- {\"permission\":\"upgrade\",\"from\":\"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n receivedPermissions.24:\n- {\"permission\":\"upgrade\",\"from\":\"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\",\"role\":\"admin\"}\n receivedPermissions.23:\n- {\"permission\":\"upgrade\",\"from\":\"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\",\"role\":\"admin\"}\n receivedPermissions.22.from:\n- \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n+ \"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.21.from:\n- \"ethereum:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.20.from:\n- \"ethereum:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n+ \"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n receivedPermissions.19.from:\n- \"ethereum:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n+ \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n receivedPermissions.18.from:\n- \"ethereum:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n+ \"ethereum:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n receivedPermissions.17.from:\n- \"ethereum:0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"ethereum:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n receivedPermissions.16.from:\n- \"ethereum:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n+ \"ethereum:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.15.from:\n- \"ethereum:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n+ \"ethereum:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n receivedPermissions.14.from:\n- \"ethereum:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n+ \"ethereum:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n receivedPermissions.13.from:\n- \"ethereum:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n+ \"ethereum:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n receivedPermissions.12.from:\n- \"ethereum:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n+ \"ethereum:0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n }\n```\n\n```diff\n contract MainnetSignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: The SignalService contract serves as cross-chain message passing system. It defines methods for sending and verifying signals with merkle proofs.\n values.$admin:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract MainnetBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: Shared bridge for Taiko chains for bridged ETH.\n values.$admin:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```"
}
]
},
{
"id": "2a241c73",
"date": "Wed, 18 Jun 2025 11:39:33 GMT",
"timestamp": 1750246773,
"description": "New test proposal (no actions, will be vetoed).",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OptimisticTokenVotingPlugin (0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 19\n+ 20\n values.proposalIds.19:\n+ \"594516471058441525137805458817300690127055486982\"\n values.proposalIds.18:\n- \"594516471058441525137805458817300690127055486982\"\n+ \"594368007222883387369940600290236287695678603267\"\n values.proposalIds.17:\n- \"594368007222883387369940600290236287695678603267\"\n+ \"594789857995414210150628315872956409027640688649\"\n values.proposalIds.16:\n- \"594789857995414210150628315872956409027640688649\"\n+ \"595223436259438596154551751121806216745162113041\"\n values.proposalIds.15:\n- \"595223436259438596154551751121806216745162113041\"\n+ \"595223403592331371744459256866956472219296858128\"\n values.proposalIds.14:\n- \"595223403592331371744459256866956472219296858128\"\n+ \"594333890512775894079591912881534348495153004546\"\n values.proposalIds.13:\n- \"594333890512775894079591912881534348495153004546\"\n+ \"595517191137765700860044776076277647522733752339\"\n }\n```\n\n```diff\n contract Multisig (0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 10\n+ 11\n }\n```"
}
]
},
{
"id": "e8c7b9d2",
"date": "Fri, 13 Jun 2025 08:40:49 GMT",
"timestamp": 1749804049,
"description": "Risc0 verifier update (gateway and groth16 verifier changes are minimal).",
"isHighSeverity": true,
"changeCount": 37,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract RiscZeroGroth16Verifier (0x48E32eFbe22e180A3FFe617f4955cD83B983dd98)\n +++ description: Verifier contract for RISC Zero Groth16 proofs.\n```\n\n```diff\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.namedAddresses.13.name:\n- \"0x72697363305f67726f746831365f766572696669657200000000000000000000\"\n+ \"bond_token\"\n values.namedAddresses.13.address:\n- \"0x48E32eFbe22e180A3FFe617f4955cD83B983dd98\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.namedAddresses.12.name:\n- \"bond_token\"\n+ \"0x7370315f72656d6f74655f766572696669657200000000000000000000000000\"\n values.namedAddresses.12.address:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0xFF5Adab685362DC4C33536a65aF5873738D1216B\"\n values.namedAddresses.11.name:\n- \"0x7370315f72656d6f74655f766572696669657200000000000000000000000000\"\n+ \"taiko_token\"\n values.namedAddresses.11.address:\n- \"0xFF5Adab685362DC4C33536a65aF5873738D1216B\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.namedAddresses.10.name:\n- \"taiko_token\"\n+ \"0x6175746f6d6174615f646361705f6174746573746174696f6e00000000000000\"\n values.namedAddresses.10.address:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n values.namedAddresses.9.name:\n- \"0x6175746f6d6174615f646361705f6174746573746174696f6e00000000000000\"\n+ \"0x72697363305f726574685f766572696669657200000000000000000000000000\"\n values.namedAddresses.9.address:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n values.namedAddresses.8.name:\n- \"0x72697363305f726574685f766572696669657200000000000000000000000000\"\n+ \"bridge\"\n values.namedAddresses.8.address:\n- \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n+ \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n values.namedAddresses.7.name:\n- \"bridge\"\n+ \"0x72697363305f67726f746831365f766572696669657200000000000000000000\"\n values.namedAddresses.7.address:\n- \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n+ \"0xfB3Ca570A5348FD101e65303eECdB5Bf43C5548a\"\n }\n```\n\n```diff\n contract Risc0VerifierGateway (0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE) {\n +++ description: Entry contract to verify batches using RISC Zero.\n sourceHashes.1:\n- \"0xd24723da846efa982924d892e9d3e52d38b6d85eab9d8e2f0a298ff07d18d994\"\n+ \"0xbf2f7f196a5a1b3990b49d6d86c282eedd22259e4e1c970138b25b38cced4ac6\"\n values.$implementation:\n- \"0x801878e56A8DA58d6a837006345CDD11a9E6a852\"\n+ \"0xB1c6fF8dCbED16FE412291E7BDA0d611405944Be\"\n values.$pastUpgrades.1:\n+ [\"2025-05-15T00:25:59.000Z\",\"0x2c106efd4e844195ff8597792c0e87d8319c23b5f4b6f675f878d75181c27baa\",[\"0x801878e56A8DA58d6a837006345CDD11a9E6a852\"]]\n values.$pastUpgrades.0.2:\n- [\"0x801878e56A8DA58d6a837006345CDD11a9E6a852\"]\n+ \"2025-06-12T03:50:35.000Z\"\n values.$pastUpgrades.0.1:\n- \"0x2c106efd4e844195ff8597792c0e87d8319c23b5f4b6f675f878d75181c27baa\"\n+ \"0x2b9250ebdcf10b1a1ec658e5cc9e7fd9aa19dd32573e6ab5bc036499682dea3a\"\n values.$pastUpgrades.0.0:\n- \"2025-05-15T00:25:59.000Z\"\n+ [\"0xB1c6fF8dCbED16FE412291E7BDA0d611405944Be\"]\n values.$upgradeCount:\n- 1\n+ 2\n values.impl:\n- \"0x801878e56A8DA58d6a837006345CDD11a9E6a852\"\n+ \"0xB1c6fF8dCbED16FE412291E7BDA0d611405944Be\"\n values.riscoGroth16Verifier:\n- \"0x48E32eFbe22e180A3FFe617f4955cD83B983dd98\"\n+ \"0xfB3Ca570A5348FD101e65303eECdB5Bf43C5548a\"\n implementationNames.0x801878e56A8DA58d6a837006345CDD11a9E6a852:\n- \"Risc0Verifier\"\n implementationNames.0xB1c6fF8dCbED16FE412291E7BDA0d611405944Be:\n+ \"TaikoRisc0Verifier\"\n }\n```\n\n```diff\n contract TaikoDAOController (0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a) {\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n receivedPermissions.1:\n+ {\"permission\":\"upgrade\",\"from\":\"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.13:\n+ \"0xb09f9005e4612526e378466b5c16ab6028478e81c085812d6ed37166c4cda10e\"\n values.mrEnclaves.12:\n+ \"0x6e43c1d575b5b785d0f6259dfac44998c6f0c164864f9f98270fb740c14eb943\"\n }\n```\n\n```diff\n contract MainnetERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: Shared vault for Taiko chains for bridged ERC20 tokens.\n values.$admin:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions.26:\n- {\"permission\":\"upgrade\",\"from\":\"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n receivedPermissions.25.from:\n- \"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n+ \"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.24.from:\n- \"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n+ \"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.23.from:\n- \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n+ \"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n receivedPermissions.22.from:\n- \"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0xfB3Ca570A5348FD101e65303eECdB5Bf43C5548a)\n +++ description: Verifier contract for RISC Zero Groth16 proofs.\n```"
}
]
},
{
"id": "2bf787f6",
"date": "Mon, 09 Jun 2025 10:52:23 GMT",
"timestamp": 1749466343,
"description": "New daocontroller for the TAIKO token, which is now controlled by the DAO.",
"isHighSeverity": false,
"changeCount": 40,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Taiko Token (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800) {\n +++ description: ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n values.$admin:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n values.owner:\n- \"0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F\"\n+ \"0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 14\n+ 19\n values.proposalIds.18:\n+ \"594516471058441525137805458817300690127055486982\"\n values.proposalIds.17:\n+ \"594368007222883387369940600290236287695678603267\"\n values.proposalIds.16:\n+ \"594789857995414210150628315872956409027640688649\"\n values.proposalIds.15:\n+ \"595223436259438596154551751121806216745162113041\"\n values.proposalIds.14:\n+ \"595223403592331371744459256866956472219296858128\"\n values.proposalIds.13:\n- \"594516471058441525137805458817300690127055486982\"\n+ \"594333890512775894079591912881534348495153004546\"\n values.proposalIds.12:\n- \"594368007222883387369940600290236287695678603267\"\n+ \"594544283016854707280302755040001935835586887687\"\n values.proposalIds.11:\n- \"594789857995414210150628315872956409027640688649\"\n+ \"594516360806954642753743290707182802352260251653\"\n values.proposalIds.10:\n- \"594333890512775894079591912881534348495153004546\"\n+ \"594868197801926748603689506985812031612995502090\"\n values.proposalIds.9:\n- \"594544283016854707280302755040001935835586887687\"\n+ \"594516275055798178677248899489514254466604335108\"\n values.proposalIds.8:\n- \"594516360806954642753743290707182802352260251653\"\n+ \"594544466769332844587073035223531748793578946568\"\n values.proposalIds.7:\n- \"594868197801926748603689506985812031612995502090\"\n+ \"595202819231391590334926314529761202858453106703\"\n values.proposalIds.6:\n- \"594516275055798178677248899489514254466604335108\"\n+ \"595112788683881116119978678391417950963358498829\"\n values.proposalIds.5:\n- \"594544466769332844587073035223531748793578946568\"\n+ \"594932801089851422612858457733038049577270247436\"\n values.proposalIds.4:\n- \"595112788683881116119978678391417950963358498829\"\n+ \"594333808845007833054360677244409987180489867265\"\n values.proposalIds.3:\n- \"594932801089851422612858457733038049577270247436\"\n+ \"594318504305273196926027118847304676812617940992\"\n values.proposalIds.2:\n- \"594333808845007833054360677244409987180489867265\"\n+ \"594868769476303175780308156445682560815637463051\"\n values.proposalIds.1:\n- \"594318504305273196926027118847304676812617940992\"\n+ \"595168678020953678736974786657474616653076496398\"\n values.proposalIds.0:\n- \"594868769476303175780308156445682560815637463051\"\n+ \"595300306046126036153418824792663965561388007442\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions.27:\n- {\"permission\":\"upgrade\",\"from\":\"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n receivedPermissions.26.from:\n- \"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n+ \"ethereum:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.25.from:\n- \"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n+ \"ethereum:0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.24.from:\n- \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n+ \"ethereum:0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n receivedPermissions.23.from:\n- \"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"ethereum:0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n receivedPermissions.22.from:\n- \"ethereum:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"ethereum:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n receivedPermissions.21.from:\n- \"ethereum:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n+ \"ethereum:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n receivedPermissions.20.from:\n- \"ethereum:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n+ \"ethereum:0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n receivedPermissions.19.from:\n- \"ethereum:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n+ \"ethereum:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.18.from:\n- \"ethereum:0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"ethereum:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n receivedPermissions.17.from:\n- \"ethereum:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n+ \"ethereum:0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n receivedPermissions.16.from:\n- \"ethereum:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n+ \"ethereum:0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n receivedPermissions.15.from:\n- \"ethereum:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n+ \"ethereum:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n receivedPermissions.14.from:\n- \"ethereum:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"ethereum:0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n }\n```\n\n```diff\n contract DAO (0x9CDf589C941ee81D75F34d3755671d614f7cf261) {\n +++ description: The main contract of the Aragon-based DAO governance framework.\n receivedPermissions.1:\n+ {\"permission\":\"upgrade\",\"from\":\"ethereum:0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\",\"role\":\"admin\"}\n receivedPermissions.0.from:\n- \"ethereum:0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\"\n+ \"ethereum:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"\n }\n```\n\n```diff\n contract Multisig (0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 9\n+ 10\n }\n```\n\n```diff\n+ Status: CREATED\n contract TaikoDAOController (0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a)\n +++ description: Contract that maintains ownership DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n```"
}
]
},
{
"id": "136d39c0",
"date": "Wed, 04 Jun 2025 13:52:34 GMT",
"timestamp": 1749045154,
"description": "SP1 verifier upgrade to v5 (plonky3 vuln related). Security Council signer removed (internal test signer). The DAO/SC is now in prod configuration, but hasn't got any critical permissions yet.",
"isHighSeverity": true,
"changeCount": 32,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SignerList (0x0F95E6968EC1B28c794CF1aD99609431de5179c2) {\n +++ description: A signer list for registering agents, similar to a Multisig.\n values.addresslistLength:\n- 9\n+ 8\n values.getEncryptionAgents.8:\n- \"0x824Dce8d292a393DAb5FFdeb788DC1086257f678\"\n values.getEncryptionAgents.7:\n- \"0x1d955983044548E03DAA583B36A37cA4bdE6F556\"\n+ \"0x824Dce8d292a393DAb5FFdeb788DC1086257f678\"\n values.getEncryptionAgents.6:\n- \"0x85f21919ed6046d7CE1F36a613eBA8f5EaC3d070\"\n+ \"0x1d955983044548E03DAA583B36A37cA4bdE6F556\"\n values.settings.minSignerListLength:\n- 9\n+ 8\n }\n```\n\n```diff\n contract EmergencyMultisig (0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n+++ description: The total count of encrypted emergency proposals created.\n values.proposalCount:\n- 21\n+ 23\n }\n```\n\n```diff\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.namedAddresses.11.name:\n- \"taiko_token\"\n+ \"0x7370315f72656d6f74655f766572696669657200000000000000000000000000\"\n values.namedAddresses.11.address:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0xFF5Adab685362DC4C33536a65aF5873738D1216B\"\n values.namedAddresses.10.name:\n- \"0x7370315f72656d6f74655f766572696669657200000000000000000000000000\"\n+ \"taiko_token\"\n values.namedAddresses.10.address:\n- \"0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371)\n +++ description: Verifier contract for SP1 proofs.\n```\n\n```diff\n contract OptimisticTokenVotingPlugin (0x989E348275b659d36f8751ea1c10D146211650BE) {\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n values.proposalCount:\n- 13\n+ 14\n values.proposalIds.13:\n+ \"594516471058441525137805458817300690127055486982\"\n values.proposalIds.12:\n- \"594516471058441525137805458817300690127055486982\"\n+ \"594368007222883387369940600290236287695678603267\"\n values.proposalIds.11:\n- \"594368007222883387369940600290236287695678603267\"\n+ \"594789857995414210150628315872956409027640688649\"\n values.proposalIds.10:\n- \"594789857995414210150628315872956409027640688649\"\n+ \"594333890512775894079591912881534348495153004546\"\n values.proposalIds.9:\n- \"594333890512775894079591912881534348495153004546\"\n+ \"594544283016854707280302755040001935835586887687\"\n values.proposalIds.8:\n- \"594544283016854707280302755040001935835586887687\"\n+ \"594516360806954642753743290707182802352260251653\"\n values.proposalIds.7:\n- \"594516360806954642753743290707182802352260251653\"\n+ \"594868197801926748603689506985812031612995502090\"\n values.proposalIds.6:\n- \"594868197801926748603689506985812031612995502090\"\n+ \"594516275055798178677248899489514254466604335108\"\n values.proposalIds.5:\n- \"594516275055798178677248899489514254466604335108\"\n+ \"594544466769332844587073035223531748793578946568\"\n values.proposalIds.4:\n- \"594544466769332844587073035223531748793578946568\"\n+ \"595112788683881116119978678391417950963358498829\"\n }\n```\n\n```diff\n contract SP1VerifierGateway (0xbee1040D0Aab17AE19454384904525aE4A3602B9) {\n +++ description: Entry contract to verify batches using SP1.\n sourceHashes.1:\n- \"0x5ae248a45849f9700bac9ab8fbd1570be72258e51c738511f3468f788e1127ca\"\n+ \"0x21ba9895a752c42c9a52b397fdc8ee7c4c22e621273f53176f80c853e2502ca0\"\n values.$implementation:\n- \"0x35f26e14D0dAeDd1904843370f761C60B891D466\"\n+ \"0x2E17aC86CafC1db939C9942E478F92bF0E548Ee7\"\n values.$pastUpgrades.1:\n+ [\"2025-06-04T00:40:23.000Z\",\"0xbdc86ada3808a5987cd1f4bbc49ecd2d7e577bf90642956442a3d14cffa827ec\",[\"0x2E17aC86CafC1db939C9942E478F92bF0E548Ee7\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.impl:\n- \"0x35f26e14D0dAeDd1904843370f761C60B891D466\"\n+ \"0x2E17aC86CafC1db939C9942E478F92bF0E548Ee7\"\n values.sp1RemoteVerifier:\n- \"0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371\"\n+ \"0xFF5Adab685362DC4C33536a65aF5873738D1216B\"\n implementationNames.0x35f26e14D0dAeDd1904843370f761C60B891D466:\n- \"SP1Verifier\"\n implementationNames.0x2E17aC86CafC1db939C9942E478F92bF0E548Ee7:\n+ \"TaikoSP1Verifier\"\n }\n```\n\n```diff\n contract Multisig (0xD7dA1C25E915438720692bC55eb3a7170cA90321) {\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n values.proposalCount:\n- 6\n+ 9\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xFF5Adab685362DC4C33536a65aF5873738D1216B)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "d76833ed",
"date": "Fri, 30 May 2025 14:28:14 GMT",
"timestamp": 1748615294,
"description": "Add DAO and SC related contracts.",
"isHighSeverity": false,
"changeCount": 14,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Halborn (0x0F40268Ec0Dc8D88CF2f22E227A29a0b478b6351)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SignerList (0x0F95E6968EC1B28c794CF1aD99609431de5179c2)\n +++ description: A signer list for registering agents, similar to a Multisig.\n```\n\n```diff\n+ Status: CREATED\n contract Drew Van der Werff (0x25d3E89bAcE2040Ed3aF7c4c7B505cfBB72fD6f1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyMultisig (0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd)\n +++ description: Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n```\n\n```diff\n+ Status: CREATED\n contract EncryptionRegistry (0x2eFDb93a3B87b930E553d504db67Ee41c69C42d1)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract Chainbound (0x436a1075099A145417EBFc74BBaC9605e3e4f1A7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Nethermind (0x5353c607e6eca6C63FEC5c6C0F5CC3a5348d5c95)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimisticTokenVotingPlugin (0x989E348275b659d36f8751ea1c10D146211650BE)\n +++ description: An optimistic governance module. Proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d.\n```\n\n```diff\n+ Status: CREATED\n contract Toni Wahrstätter (0xa384E224A3F3D664F43eBE33395eF0DCcE67e894)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Aragon (0xb284810536C0dAB6A8e48153B58588A9B9e0F701)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Daniel Wang (0xb47fE76aC588101BFBdA9E68F66433bA51E8029a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xD5cF6A34Ba5fb9289510dC93c03F1f9084798487)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Multisig (0xD7dA1C25E915438720692bC55eb3a7170cA90321)\n +++ description: Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n```\n\n```diff\n+ Status: CREATED\n contract L2BEAT (0xf1cF63589A1e012F9124182c9eAa36B5333e5f06)\n +++ description: None\n```"
}
]
},
{
"id": "efb0e1a0",
"date": "Fri, 30 May 2025 11:13:55 GMT",
"timestamp": 1748603635,
"description": "Ignore spammy batches/state values.",
"isHighSeverity": false,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Taiko Foundation Treasury Multisig (0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da) {\n +++ description: None\n values.$members.5:\n+ \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n values.$members.4:\n- \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n values.$members.3:\n- \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n+ \"0xFa92ff698D57f7B875570D9F59501812B843CD44\"\n values.$members.2:\n- \"0xFa92ff698D57f7B875570D9F59501812B843CD44\"\n+ \"0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a\"\n values.$threshold:\n- 3\n+ 4\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"4 of 6 (67%)\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.5:\n+ \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n values.$members.4:\n- \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n values.$members.3:\n- \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n+ \"0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a\"\n values.multisigThreshold:\n- \"4 of 5 (80%)\"\n+ \"4 of 6 (67%)\"\n receivedPermissions.27:\n+ {\"permission\":\"upgrade\",\"from\":\"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\",\"role\":\"admin\"}\n receivedPermissions.26:\n+ {\"permission\":\"upgrade\",\"from\":\"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"role\":\"admin\"}\n receivedPermissions.25:\n+ {\"permission\":\"upgrade\",\"from\":\"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"role\":\"admin\"}\n receivedPermissions.24.from:\n- \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n receivedPermissions.23.from:\n- \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n+ \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n receivedPermissions.22.from:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.21.from:\n- \"0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n+ \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n receivedPermissions.20.from:\n- \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n+ \"0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\"\n receivedPermissions.19.from:\n- \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n+ \"0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n receivedPermissions.18.from:\n- \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n+ \"0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n receivedPermissions.17.from:\n- \"0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n+ \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.16.from:\n- \"0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n receivedPermissions.15.from:\n- \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n+ \"0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\"\n receivedPermissions.14.from:\n- \"0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n+ \"0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n receivedPermissions.13.from:\n- \"0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\"\n+ \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.12.from:\n- \"0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n+ \"0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n receivedPermissions.11.from:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n receivedPermissions.10.from:\n- \"0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n+ \"0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n receivedPermissions.9.from:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n receivedPermissions.8.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.8.from:\n- \"0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n+ \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.8.role:\n- \"admin\"\n+ \".owner\"\n receivedPermissions.8.description:\n+ \"can update the contract address for a given name\"\n receivedPermissions.7.from:\n- \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n+ \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n receivedPermissions.7.description:\n- \"can update the contract address for a given name\"\n+ \"can update the program being verified\"\n receivedPermissions.6.from:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n receivedPermissions.5.from:\n- \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n+ \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.5.description:\n- \"can update the program being verified\"\n+ \"can update the contract address for a given name\"\n receivedPermissions.4.from:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n+ \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.4.description:\n- \"can update the contract address for a given name\"\n+ \"can update the program being verified\"\n receivedPermissions.3.from:\n- \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n+ \"0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a\"\n receivedPermissions.3.description:\n- \"can update the program being verified\"\n+ \"can update the contract address for a given name\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (0x5A982Fb1818c22744f5d7D36D0C4c9f61937b33a)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9)\n +++ description: None\n```"
}
]
},
{
"id": "167b8dff",
"date": "Wed, 28 May 2025 11:33:59 GMT",
"timestamp": 1748432039,
"description": "Main TaikoL1 contract has been upgraded to an intermediate proxy that points to both an old and new implementation. The old implementation is also not the same as the actually previous one, but it's just add a \"Pacaya\" fork height that prevents proposing or proving for new blocks. The new fork compared to the new presents some simplifications, like removal of `AddressCache`, `AddressResolver`, `IAddressResolver`, `ITaikoL1`, `LibBonds`, `LibData`, `LibProposing`, `LibProving`, `LibUtils`, `LibVerifying`, `RollupAddressCache`, `SafeCastUpgradeable`, `TaikoData`, and `TaikoEvents`. The address resolving logic is still present and has been moved to the `EssentialContract` contract.\n\nAt the time of writing, calls are still forwarded to the old impl as the Pacaya fork is expected to go live on Wed 21 May. `ITaikoInbox` and `TaikoInbox` replace `ITaikoL1` and `TaikoL1`. Batches have replaced blocks, as now one batch can contain multiple blocks. Instead of `proposeBlocksV2`, the `proposeBatch` function is called to sequence blocks. An `InboxWrapper` contract has been introduced, which is referenced by the `TaikoInbox`. The `InboxWrapper` references a `ForcedInclusionStore` contract that is used to submit forced transactions. All forced transactions must pay a fee, and it's currently set to a very high value meaning that the mechanism is in practice disabled. The slowest forced transactions can be included is one by one every 255 batches, creating a potential DoS attack via spam of forced transactions. It's therefore not clear how to estimate exit windows (not that it matters rn).\n\nThe `proveBatches` function reflects the removal of tiers. The `_params` is decoded into `metas[]` (metadatas) and `trans[]` (transitions). On transition ids: when a batch is first proposed, the `nextTransitionId` is 1 and the `verifiedTransitionId` is zero. When a batch is proven for the first time, the `nextTransitionId` is incremented to 2, the proofs get verified, everything is good. The same batch can be proven again: it is checked that the new block hash and new state root also corresponds. If it does, it is treated as a no-op, if it doesn't, the block hash of the transition is set to zero, and contracts are paused. It is possible to prove a fault this way by providing a different starting point for the proving process, by providing a different `parentHash` to start from. Batches whose transitions' `blockHash` is set to zero are skipped during the `verifyBatches` call.\n \nThe `verifyBatches` function also reflects the removal of tiers. The main function is still to credit back bonds to the proposer, specifically the full liveness bond if the block has been proved within the proving window, or half bond if not.\n \nThe `verifier` is actually a multi-proof system with 4 verifiers: sp1, r0, sgx_reth and sgx_geth. A proof must contain exactly two sub-proofs targeting two different verifiers. An ordering is defined between them based on their address: r0 -> sgx_geth -> sgx_reth -> sp1. It is required that one of the verifiers used is sgx_geth. It is possible to use two TEEs to verify a block, which causes them to still be affected by our recategorization.",
"isHighSeverity": true,
"changeCount": 263,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1 (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: Main contract implementing the logic for proposing and proving Taiko blocks on L1.\n name:\n- \"MainnetTaikoL1\"\n+ \"TaikoL1\"\n template:\n- \"taiko/TaikoL1Contract\"\n+ \"taiko/TaikoL1PostPacaya\"\n sourceHashes.1:\n- \"0x8c8d91a3b010953954bbd3ba9f4c55f76112bf6d7f298dcd584c2de94a4ad1a4\"\n+ \"0xc4ae3ca2fcf606673a1324989a7ac169b3fdb6780917814506e56898484e99d7\"\n description:\n- \"This contract provides functionalities for proposing, proving, and verifying blocks.\"\n+ \"Main contract implementing the logic for proposing and proving Taiko blocks on L1.\"\n values.$implementation:\n- \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n+ [\"0x4e030b19135869F6fd926614754B7F9c184E2B83\",\"0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\",\"0x497B13f9192B09244de9b5F0964830969FB26F07\"]\n values.$pastUpgrades.25:\n+ [\"2024-11-10T16:10:23.000Z\",\"0x5eb57ab352b3e3c1ddbc3fe468d582901b88c6a137ce49b0d70857d5218d626d\",[\"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\",\"0x0000000000000000000000000000000000000000\",\"0x0000000000000000000000000000000000000000\"]]\n values.$pastUpgrades.24:\n+ [\"2025-05-16T02:36:23.000Z\",\"0x78f766ae83ce94ef2293c9c7d81ae514e8fa0a79fbce1530c3c68d7624708795\",[\"0x4e030b19135869F6fd926614754B7F9c184E2B83\",\"0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\",\"0x497B13f9192B09244de9b5F0964830969FB26F07\"]]\n values.$pastUpgrades.23.2:\n- \"0x5eb57ab352b3e3c1ddbc3fe468d582901b88c6a137ce49b0d70857d5218d626d\"\n+ \"0x2c455ae888a23c232bb5c7603657eda010ffadc602a74e626332bc06eaaa3b78\"\n values.$pastUpgrades.23.1:\n- \"2024-11-10T16:10:23.000Z\"\n+ \"2024-06-04T06:10:11.000Z\"\n values.$pastUpgrades.23.0.2:\n- \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n+ \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n values.$pastUpgrades.22.2:\n- \"0x2c455ae888a23c232bb5c7603657eda010ffadc602a74e626332bc06eaaa3b78\"\n+ \"0x6368890b9aa2f87c6a6b727efdd8af0ea357a11460b546d8a7f3e19e38a34e41\"\n values.$pastUpgrades.22.1:\n- \"2024-06-04T06:10:11.000Z\"\n+ \"2025-02-27T03:27:23.000Z\"\n values.$pastUpgrades.22.0.2:\n- \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n+ \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n values.$pastUpgrades.21.2:\n- \"0x6368890b9aa2f87c6a6b727efdd8af0ea357a11460b546d8a7f3e19e38a34e41\"\n+ \"0x78ca7c7d9c7e5aa9c5e6ab80e0229289a8d3bc8df2c2b9ba6baa74a0f60a0703\"\n values.$pastUpgrades.21.1:\n- \"2025-02-27T03:27:23.000Z\"\n+ \"2024-11-03T05:15:23.000Z\"\n values.$pastUpgrades.21.0.2:\n- \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n+ \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n values.$pastUpgrades.20.2:\n- \"0x78ca7c7d9c7e5aa9c5e6ab80e0229289a8d3bc8df2c2b9ba6baa74a0f60a0703\"\n+ \"2024-05-27T16:37:11.000Z\"\n values.$pastUpgrades.20.1:\n- \"2024-11-03T05:15:23.000Z\"\n+ \"0x187cc99e9bcf2a94f723cf52d85b74b79bdb3872681e2a3808cadbbc3ba301e2\"\n values.$pastUpgrades.20.0.2:\n- \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n+ \"0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb\"\n values.$pastUpgrades.19.2:\n- \"2024-05-27T16:37:11.000Z\"\n+ \"0xaed098ad0c93113e401f61358f963501f40a046c5b5b659a1610f10120a9a86b\"\n values.$pastUpgrades.19.1:\n- \"0x187cc99e9bcf2a94f723cf52d85b74b79bdb3872681e2a3808cadbbc3ba301e2\"\n+ \"2024-05-21T14:15:11.000Z\"\n values.$pastUpgrades.19.0.2:\n- \"0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb\"\n+ \"0xe0A5D394878723CEAEC8B993e04756DF1f4B44eF\"\n values.$pastUpgrades.18.2:\n- \"0xaed098ad0c93113e401f61358f963501f40a046c5b5b659a1610f10120a9a86b\"\n+ \"0x77871837d1749b22a7991da475e657baa4371937f5a8cb094d4e170db000cb25\"\n values.$pastUpgrades.18.1:\n- \"2024-05-21T14:15:11.000Z\"\n+ \"2024-12-24T14:19:11.000Z\"\n values.$pastUpgrades.18.0.2:\n- \"0xe0A5D394878723CEAEC8B993e04756DF1f4B44eF\"\n+ \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n values.$pastUpgrades.17.2:\n- \"0x77871837d1749b22a7991da475e657baa4371937f5a8cb094d4e170db000cb25\"\n+ \"2025-05-15T08:40:47.000Z\"\n values.$pastUpgrades.17.1:\n- \"2024-12-24T14:19:11.000Z\"\n+ [\"0x5eEcd1305aC72d4a77Bf3BD734e81c15e2A2adEf\",\"0xaA64D5A3A26D1e76AcAf6e22c199D02d58076A01\",\"0x497B13f9192B09244de9b5F0964830969FB26F07\"]\n values.$pastUpgrades.17.0:\n- [\"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\",\"0x0000000000000000000000000000000000000000\",\"0x0000000000000000000000000000000000000000\"]\n+ \"0x97789b6668d0a287b1f57bb6c8e23cce62308fb887139faeb0f06b77855995fd\"\n values.$upgradeCount:\n- 24\n+ 26\n values.addressManager:\n- \"0x579f40D0BE111b823962043702cabe6Aaa290780\"\n values.assignment_hook:\n- \"0x0000000000000000000000000000000000000000\"\n values.automata_dcap_attestation:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n values.bond_token:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.bridge:\n- \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n values.bridge_watchdog:\n- \"0x0000000000000000000000000000000000000000\"\n values.bridged_erc1155:\n- \"0x0000000000000000000000000000000000000000\"\n values.bridged_erc20:\n- \"0x0000000000000000000000000000000000000000\"\n values.bridged_erc721:\n- \"0x0000000000000000000000000000000000000000\"\n values.chain_watchdog:\n- \"0xE3D777143Ea25A6E031d1e921F396750885f43aC\"\n values.erc1155_vault:\n- \"0x0000000000000000000000000000000000000000\"\n values.erc20_vault:\n- \"0x0000000000000000000000000000000000000000\"\n values.erc721_vault:\n- \"0x0000000000000000000000000000000000000000\"\n values.getLastSyncedBlock:\n- {\"blockId_\":1148703,\"blockHash_\":\"0x5a7e198eb91f666cb2a95abeb5585a7e9485c6c4a3008f8275c34ffedc3f1031\",\"stateRoot_\":\"0x775e54de208c8220b5e302d1c845c1b25cf99ed1f8807ac36e20589e3b56231d\",\"verifiedAt_\":1747209131}\n values.getLastVerifiedBlock.blockId_:\n- 1148703\n+ 1178564\n values.getLastVerifiedBlock.blockHash_:\n- \"0x5a7e198eb91f666cb2a95abeb5585a7e9485c6c4a3008f8275c34ffedc3f1031\"\n+ \"0x30dabf999649a05a6aeb9d9e30b6a2910788dbffb4a7fcdb5ec3f49934a0e12b\"\n values.getLastVerifiedBlock.stateRoot_:\n- \"0x775e54de208c8220b5e302d1c845c1b25cf99ed1f8807ac36e20589e3b56231d\"\n+ \"0x339e2ac188194e6fd6bc0e129c2232940ca5c0efd7c7015435aafae3a1cb6587\"\n values.getLastVerifiedBlock.verifiedAt_:\n- 1747209131\n+ 1738480871\n values.getStateVariables.1.genesisHeight:\n- 19923613\n values.getStateVariables.1.genesisTimestamp:\n- 1716358991\n values.getStateVariables.1.lastSyncedBlockId:\n- 1148703\n values.getStateVariables.1.lastSynecdAt:\n- 1747226267\n values.getStateVariables.1.numBlocks:\n+ 1178840\n values.getStateVariables.1.lastVerifiedBlockId:\n+ 1178564\n values.getStateVariables.1.provingPaused:\n+ false\n values.getStateVariables.1.lastProposedIn:\n+ 22579860\n values.getStateVariables.1.lastUnpausedAt:\n+ 1716571955\n values.getStateVariables.0.numBlocks:\n- 1149204\n values.getStateVariables.0.lastVerifiedBlockId:\n- 1148703\n values.getStateVariables.0.provingPaused:\n- false\n values.getStateVariables.0.lastProposedIn:\n- 22481927\n values.getStateVariables.0.lastUnpausedAt:\n- 1716571955\n values.getStateVariables.0.genesisHeight:\n+ 19923613\n values.getStateVariables.0.genesisTimestamp:\n+ 1716358991\n values.getStateVariables.0.lastSyncedBlockId:\n+ 1178564\n values.getStateVariables.0.lastSynecdAt:\n+ 1748416535\n values.impl:\n- \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n+ \"0x4e030b19135869F6fd926614754B7F9c184E2B83\"\n values.lastProposedIn:\n- 22481927\n+ 22579860\n values.lastUnpausedAt:\n- 1716571955\n values.preconf_task_manager:\n- \"0x0000000000000000000000000000000000000000\"\n values.proposer:\n- \"0x000000633b68f5D8D3a86593ebB815b4663BCBe0\"\n values.proposer_one:\n- \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n values.prover_assignment:\n- \"0x0000000000000000000000000000000000000000\"\n values.prover_set:\n- \"0x280eAbfd252f017B78e15b69580F249F45FB55Fa\"\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n values.quota_manager:\n- \"0x0000000000000000000000000000000000000000\"\n values.return_liveness_bond:\n- \"0x0000000000000000000000000000000000000000\"\n values.sgx_watchdog:\n- \"0x0000000000000000000000000000000000000000\"\n values.signal_root:\n- \"0x0000000000000000000000000000000000000000\"\n values.signal_service:\n- \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n values.sp1_remote_verifier:\n- \"0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371\"\n values.state.slotA:\n- {\"genesisHeight\":19923613,\"genesisTimestamp\":1716358991,\"lastSyncedBlockId\":1148703,\"lastSynecdAt\":1747226267}\n values.state.slotB:\n- {\"numBlocks\":1149204,\"lastVerifiedBlockId\":1148703,\"provingPaused\":false,\"lastProposedIn\":22481927,\"lastUnpausedAt\":1716571955}\n values.state.stats1:\n+ {\"genesisHeight\":19923613,\"__reserved2\":1716358991,\"lastSyncedBatchId\":1178564,\"lastSyncedAt\":1748416535}\n values.state.stats2:\n+ {\"numBatches\":1178840,\"lastVerifiedBatchId\":1178564,\"paused\":false,\"lastProposedIn\":22579860,\"lastUnpausedAt\":1716571955}\n values.state_root:\n- \"0x0000000000000000000000000000000000000000\"\n values.taiko:\n- \"0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n values.taiko_token:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.tier_router:\n- \"0x44d307a9ec47aA55a7a30849d065686753C86Db6\"\n values.verifier_RISCZERO_GROTH16_VERIFIER:\n- \"0x48E32eFbe22e180A3FFe617f4955cD83B983dd98\"\n values.verifier_TIER_GUARDIAN:\n- \"0xE3D777143Ea25A6E031d1e921F396750885f43aC\"\n values.verifier_TIER_GUARDIAN_MINORITY:\n- \"0x579A8d63a2Db646284CBFE31FE5082c9989E985c\"\n values.verifier_TIER_OPTIMISTIC:\n- \"0x0000000000000000000000000000000000000000\"\n values.verifier_TIER_SGX:\n- \"0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81\"\n values.verifier_TIER_TDX:\n- \"0x0000000000000000000000000000000000000000\"\n values.verifier_TIER_TEE_ANY:\n- \"0x0000000000000000000000000000000000000000\"\n values.verifier_TIER_ZKVM_AND_TEE:\n- \"0x0000000000000000000000000000000000000000\"\n values.verifier_TIER_ZKVM_ANY:\n- \"0x0000000000000000000000000000000000000000\"\n values.verifier_TIER_ZKVM_RISC0:\n- \"0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc\"\n values.verifier_TIER_ZKVM_SP1:\n- \"0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452\"\n values.withdrawer:\n- \"0x0000000000000000000000000000000000000000\"\n values.bondToken:\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.getLastSyncedTransition:\n+ {\"batchId_\":1178564,\"blockId_\":1178564,\"ts_\":{\"parentHash\":\"0x7c801227fd8912dfd03b4b1f664ae228b579aa782a221a4a4569131637ab2955\",\"blockHash\":\"0x30dabf999649a05a6aeb9d9e30b6a2910788dbffb4a7fcdb5ec3f49934a0e12b\",\"stateRoot\":\"0x339e2ac188194e6fd6bc0e129c2232940ca5c0efd7c7015435aafae3a1cb6587\",\"prover\":\"0x41F2F55571f9e8e3Ba511Adc48879Bd67626A2b6\",\"inProvingWindow\":true,\"createdAt\":1748406971}}\n values.getLastVerifiedTransition:\n+ {\"batchId_\":1178564,\"blockId_\":1178564,\"ts_\":{\"parentHash\":\"0x7c801227fd8912dfd03b4b1f664ae228b579aa782a221a4a4569131637ab2955\",\"blockHash\":\"0x30dabf999649a05a6aeb9d9e30b6a2910788dbffb4a7fcdb5ec3f49934a0e12b\",\"stateRoot\":\"0x339e2ac188194e6fd6bc0e129c2232940ca5c0efd7c7015435aafae3a1cb6587\",\"prover\":\"0x41F2F55571f9e8e3Ba511Adc48879Bd67626A2b6\",\"inProvingWindow\":true,\"createdAt\":1748406971}}\n values.getStats1:\n+ {\"genesisHeight\":19923613,\"__reserved2\":1716358991,\"lastSyncedBatchId\":1178564,\"lastSyncedAt\":1748416535}\n values.getStats2:\n+ {\"numBatches\":1178840,\"lastVerifiedBatchId\":1178564,\"paused\":false,\"lastProposedIn\":22579860,\"lastUnpausedAt\":1716571955}\n values.inboxWrapper:\n+ \"0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n values.isOnL1:\n+ true\n values.newFork:\n+ \"0x497B13f9192B09244de9b5F0964830969FB26F07\"\n values.oldFork:\n+ \"0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264\"\n values.pacayaConfig:\n+ {\"chainId\":167000,\"maxUnverifiedBatches\":324000,\"batchRingBufferSize\":360000,\"maxBatchesToVerify\":16,\"blockMaxGasLimit\":240000000,\"livenessBondBase\":\"125000000000000000000\",\"livenessBondPerBlock\":0,\"stateRootSyncInternal\":4,\"maxAnchorHeightOffset\":64,\"baseFeeConfig\":{\"adjustmentQuotient\":8,\"sharingPctg\":50,\"gasIssuancePerSecond\":5000000,\"minGasExcess\":1344899430,\"maxGasIssuancePerBlock\":600000000},\"provingWindow\":7200,\"cooldownWindow\":7200,\"maxSignalsToReceive\":16,\"maxBlocksPerBatch\":768,\"forkHeights\":{\"ontake\":538304,\"pacaya\":1166000,\"shasta\":0,\"unzen\":0}}\n values.resolver:\n+ \"0x0000000000000000000000000000000000000000\"\n values.signalService:\n+ \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n values.verifier:\n+ \"0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n implementationNames.0x5110634593Ccb8072d161A7d260A409A7E74D7Ca:\n- \"MainnetTaikoL1\"\n implementationNames.0x4e030b19135869F6fd926614754B7F9c184E2B83:\n+ \"PacayaForkRouter\"\n implementationNames.0x904Da4C5bD76f932fE09fF32Ae5D7E3d2A5D2264:\n+ \"MainnetTaikoL1\"\n implementationNames.0x497B13f9192B09244de9b5F0964830969FB26F07:\n+ \"MainnetInbox\"\n category:\n- {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract TaikoToken (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800) {\n +++ description: ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n template:\n- \"taiko/TaikoToken\"\n+ \"taiko/TaikoTokenPostPacaya\"\n sourceHashes.1:\n- \"0xc44a84c18fe7660acbe7750e0a14401b3a0a0ad97d8c81305bd879dca88d873b\"\n+ \"0x2b1eb63ab3adb1a0783bae6252816727a2fb5d150dd0e9912e0a01e4ee224be9\"\n sourceHashes.0:\n- \"0xea41529d3c7a5cd7651ff173711c111016d65e4345f6f60dc2af04d8ddef375f\"\n+ \"0xc44a84c18fe7660acbe7750e0a14401b3a0a0ad97d8c81305bd879dca88d873b\"\n description:\n- \"Taiko's native token. Used for block proposal rewards, proving bonds and rewards, and contesting bonds.\"\n+ \"ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\"\n values.$implementation:\n- \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n+ \"0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106\"\n values.$pastUpgrades.6:\n+ [\"2024-05-29T08:03:23.000Z\",\"0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2\",[\"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"]]\n values.$pastUpgrades.5.2:\n- \"0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2\"\n+ \"2024-05-11T05:46:11.000Z\"\n values.$pastUpgrades.5.1.0:\n- \"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"\n+ \"0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c\"\n values.$pastUpgrades.5.0:\n- \"2024-05-29T08:03:23.000Z\"\n+ \"0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c\"\n values.$pastUpgrades.4.2:\n- \"2024-05-11T05:46:11.000Z\"\n+ \"0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34\"\n values.$pastUpgrades.4.1.0:\n- \"0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c\"\n+ \"0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb\"\n values.$pastUpgrades.4.0:\n- \"0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c\"\n+ \"2024-04-25T08:29:59.000Z\"\n values.$pastUpgrades.3.2:\n- \"0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34\"\n+ \"0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95\"\n values.$pastUpgrades.3.1.0:\n- \"0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb\"\n+ \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n values.$pastUpgrades.3.0:\n- \"2024-04-25T08:29:59.000Z\"\n+ \"2025-05-13T00:47:23.000Z\"\n values.$pastUpgrades.2.2:\n- \"0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95\"\n+ \"2024-07-02T07:15:47.000Z\"\n values.$pastUpgrades.2.1.0:\n- \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n+ \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n values.$pastUpgrades.2.0:\n- \"2025-05-13T00:47:23.000Z\"\n+ \"0xc9f468d33d8d55911e4e5b5c301ed244a5f81ab0f389d2b4f398eb5b89d417ef\"\n values.$pastUpgrades.1.2:\n- \"2024-07-02T07:15:47.000Z\"\n+ [\"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"]\n values.$pastUpgrades.1.1:\n- [\"0xcfe803378D79d1180EbF030455040EA6513869dF\"]\n+ \"2024-06-07T04:02:11.000Z\"\n values.$pastUpgrades.1.0:\n- \"0xc9f468d33d8d55911e4e5b5c301ed244a5f81ab0f389d2b4f398eb5b89d417ef\"\n+ \"0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04\"\n values.$pastUpgrades.0.2.0:\n- \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n+ \"0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106\"\n values.$pastUpgrades.0.1:\n- \"2024-06-07T04:02:11.000Z\"\n+ \"0x986fc2c7ae945cdd358b2f2ae54364b350026f965f5861ed470f78e145f12626\"\n values.$pastUpgrades.0.0:\n- \"0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04\"\n+ \"2025-05-15T05:12:11.000Z\"\n values.$upgradeCount:\n- 6\n+ 7\n values.clock:\n- 1747232111\n+ 1748418323\n values.getNonVotingAccounts.3:\n+ \"0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\"\n values.getNonVotingAccounts.2:\n+ \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n values.getNonVotingAccounts.1:\n- \"0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.impl:\n- \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n+ \"0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106\"\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n values.TAIKO_ERC20_VAULT:\n+ \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n implementationNames.0x87C752b0F70cAa237Edd7571B0845470A37DE040:\n- \"TaikoToken\"\n implementationNames.0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106:\n+ \"TaikoToken\"\n category:\n- {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetProverSet (0x280eAbfd252f017B78e15b69580F249F45FB55Fa)\n +++ description: A contract that holds TAIKO token and acts as a Taiko Labs owned proposer and prover proxy. This contract relays `proveBlock` calls to the TaikoL1 contract so that msg.sender doesn't need to hold any TAIKO. There are several instances of this contract operated by different entities.\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x44d307a9ec47aA55a7a30849d065686753C86Db6)\n +++ description: Contract managing and routing the multi-tier proof system.\n```\n\n```diff\n- Status: DELETED\n contract Risc0VerifierGateway (0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc)\n +++ description: Entry contract to verify batches using RISC Zero.\n```\n\n```diff\n- Status: DELETED\n contract MainnetGuardianProver (0x579A8d63a2Db646284CBFE31FE5082c9989E985c)\n +++ description: Verifier contract for blocks proven by Guardian minority.\n```\n\n```diff\n- Status: DELETED\n contract MainnetRollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780)\n +++ description: This contract manages the rollup addresses list, allowing to set the address for a specific chainId-name pair.\n```\n\n```diff\n- Status: DELETED\n contract SP1VerifierGateway (0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452)\n +++ description: Entry contract to verify batches using SP1.\n```\n\n```diff\n- Status: DELETED\n contract MainnetProverSet (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9)\n +++ description: A contract that holds TAIKO token and acts as a Taiko Labs owned proposer and prover proxy. This contract relays `proveBlock` calls to the TaikoL1 contract so that msg.sender doesn't need to hold any TAIKO. There are several instances of this contract operated by different entities.\n```\n\n```diff\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3) {\n +++ description: Contract managing SGX attestation certificates.\n values.mrEnclaves.11:\n+ \"0x3f71cf178a032816c2731a43aef746c464a5326e891dc881773ec2b599b2cf0a\"\n values.mrEnclaves.10:\n+ \"0xc90e5d2e39d1d3f8397a6048c32ba50139d1577c28985e1f7638785935f41734\"\n values.mrEnclaves.9:\n- \"0x3f71cf178a032816c2731a43aef746c464a5326e891dc881773ec2b599b2cf0a\"\n+ \"0x13ea9869632ac20b176ae0fdc39998b2a644a695db024ef7fe0e4b3c59084160\"\n values.mrEnclaves.8:\n- \"0xc90e5d2e39d1d3f8397a6048c32ba50139d1577c28985e1f7638785935f41734\"\n+ \"0x9546301721e2ea111ab0f79b6e529d6bb6c486ac98bcf7739429ad06c09db63d\"\n values.mrEnclaves.7:\n- \"0x13ea9869632ac20b176ae0fdc39998b2a644a695db024ef7fe0e4b3c59084160\"\n+ \"0xdfcb4fca3073e3f3a90b05d328688c32619d56f26789c0a9797aa10e765a7807\"\n values.mrEnclaves.6:\n- \"0x9546301721e2ea111ab0f79b6e529d6bb6c486ac98bcf7739429ad06c09db63d\"\n+ \"0xdcd483d3406d9b1871bb92420f5a080c4372e0d6b8522a4a2cb91a0f736669c6\"\n values.mrEnclaves.5:\n- \"0xdfcb4fca3073e3f3a90b05d328688c32619d56f26789c0a9797aa10e765a7807\"\n+ \"0xa096348d480eb0474f5eab182671933c029545521960d87d4e49283005809be9\"\n values.mrEnclaves.4:\n- \"0xa096348d480eb0474f5eab182671933c029545521960d87d4e49283005809be9\"\n+ \"0xa4eedfc6484494d4c08bfb9b9dd887c6e0540ba9d8ee207fe0e16814852e3356\"\n values.mrEnclaves.3:\n- \"0xa4eedfc6484494d4c08bfb9b9dd887c6e0540ba9d8ee207fe0e16814852e3356\"\n+ \"0x3551faac39edee5abfaa19ab065c217db1485aebae255a9edddf6dfff6b29b52\"\n values.mrEnclaves.2:\n- \"0x3551faac39edee5abfaa19ab065c217db1485aebae255a9edddf6dfff6b29b52\"\n+ \"0x3b589538b775ddbfc5fb028167ff846116159e6687aef9f849ca5a70a7871ea5\"\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.2:\n- \"0x1eE487CEdCe52c370DB11e62987F3ABe873E145A\"\n+ \"0x0aED2375549D1115e180bd0caea829C429Ea50B3\"\n values.$members.1:\n- \"0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n+ \"0x1eE487CEdCe52c370DB11e62987F3ABe873E145A\"\n values.$members.0:\n- \"0x6B6072CE402F22fDcFbA1705383D8e280717Cb87\"\n+ \"0x7Cdd1c128Cd72dd252f569eeD942735330937F91\"\n values.$threshold:\n- 3\n+ 4\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"4 of 5 (80%)\"\n receivedPermissions.24:\n+ {\"permission\":\"upgrade\",\"from\":\"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\",\"role\":\"admin\"}\n receivedPermissions.23:\n+ {\"permission\":\"upgrade\",\"from\":\"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\",\"role\":\"admin\"}\n receivedPermissions.22:\n+ {\"permission\":\"upgrade\",\"from\":\"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\",\"role\":\"admin\"}\n receivedPermissions.21:\n+ {\"permission\":\"upgrade\",\"from\":\"0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\",\"role\":\"admin\"}\n receivedPermissions.20:\n+ {\"permission\":\"upgrade\",\"from\":\"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\",\"role\":\"admin\"}\n receivedPermissions.19.from:\n- \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.18.from:\n- \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n+ \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n receivedPermissions.17.from:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n receivedPermissions.16.from:\n- \"0xE3D777143Ea25A6E031d1e921F396750885f43aC\"\n+ \"0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n receivedPermissions.15.from:\n- \"0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a\"\n+ \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.14.from:\n- \"0x579A8d63a2Db646284CBFE31FE5082c9989E985c\"\n+ \"0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n receivedPermissions.13.from:\n- \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n+ \"0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\"\n receivedPermissions.12.from:\n- \"0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\"\n+ \"0x05d88855361808fA1d7fc28084Ef3fCa191c4e03\"\n receivedPermissions.11.from:\n- \"0x91f67118DD47d502B1f0C354D0611997B022f29E\"\n+ \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.10.from:\n- \"0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452\"\n+ \"0x9F9D2fC7abe74C79f86F0D1212107692430eef72\"\n receivedPermissions.9.from:\n- \"0x579f40D0BE111b823962043702cabe6Aaa290780\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n receivedPermissions.8.from:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n+ \"0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1\"\n receivedPermissions.7.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.7.from:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n receivedPermissions.7.role:\n- \"admin\"\n+ \".owner\"\n receivedPermissions.7.description:\n+ \"can update the contract address for a given name\"\n receivedPermissions.6.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.6.from:\n- \"0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81\"\n+ \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n receivedPermissions.6.role:\n- \"admin\"\n+ \".owner\"\n receivedPermissions.6.description:\n+ \"can update the program being verified\"\n receivedPermissions.5.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.5.from:\n- \"0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc\"\n+ \"0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE\"\n receivedPermissions.5.role:\n- \"admin\"\n+ \".owner\"\n receivedPermissions.5.description:\n+ \"can update the program being verified\"\n receivedPermissions.4.from:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n receivedPermissions.4.description:\n- \"can update the program being verified\"\n+ \"can update the contract address for a given name\"\n receivedPermissions.3.from:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n+ \"0xbee1040D0Aab17AE19454384904525aE4A3602B9\"\n receivedPermissions.3.description:\n- \"can update the contract address for a given name\"\n+ \"can update the program being verified\"\n receivedPermissions.2.from:\n- \"0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452\"\n+ \"0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261\"\n receivedPermissions.1.from:\n- \"0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81\"\n+ \"0x7e6409e9b6c5e2064064a6cC994f9a2e95680782\"\n receivedPermissions.0.from:\n- \"0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc\"\n+ \"0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136\"\n receivedPermissions.0.description:\n- \"can update the program being verified\"\n+ \"can add new instances without a DCAP attestation\"\n }\n```\n\n```diff\n contract MainnetSignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: The SignalService contract serves as cross-chain message passing system. It defines methods for sending and verifying signals with merkle proofs.\n sourceHashes.1:\n- \"0xf99b7d5f650d3734e945c5040d8e4776dfdc97ff745666e084c1d471b7973f38\"\n+ \"0xc978dbfc097ca447823c4a1eb83078cd63532727420b19287acc0f87e884285f\"\n values.$implementation:\n- \"0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3\"\n+ \"0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n values.$pastUpgrades.7:\n+ [\"2024-05-01T08:03:23.000Z\",\"0x0898d14da2f38d677085073d2decfb7ca32902406df2e7a84f6615d9c92d4516\",[\"0xE1d91bAE44B70bD66e8b688B8421fD62dcC33c72\"]]\n values.$pastUpgrades.6:\n+ [\"2024-06-06T08:51:11.000Z\",\"0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131\",[\"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"]]\n values.$pastUpgrades.5.2:\n- \"2024-05-01T08:03:23.000Z\"\n+ [\"0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"]\n values.$pastUpgrades.5.1:\n- \"0x0898d14da2f38d677085073d2decfb7ca32902406df2e7a84f6615d9c92d4516\"\n+ \"2025-05-18T14:25:11.000Z\"\n values.$pastUpgrades.5.0:\n- [\"0xE1d91bAE44B70bD66e8b688B8421fD62dcC33c72\"]\n+ \"0x0ae99d24b294622e3d3868c8dca911a5936231ce1f97254ec0c6a6f65f7aa81c\"\n values.$pastUpgrades.4.2.0:\n- \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n+ \"0x0783Ee019C9b0f918A741469bD488A88827b3617\"\n values.$pastUpgrades.4.1:\n- \"0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131\"\n+ \"2025-05-15T08:40:47.000Z\"\n values.$pastUpgrades.4.0:\n- \"2024-06-06T08:51:11.000Z\"\n+ \"0x97789b6668d0a287b1f57bb6c8e23cce62308fb887139faeb0f06b77855995fd\"\n values.$upgradeCount:\n- 6\n+ 8\n values.addressManager:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n values.impl:\n- \"0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3\"\n+ \"0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c\"\n values.lastUnpausedAt:\n- 0\n values.resolver:\n+ \"0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n implementationNames.0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3:\n- \"MainnetSignalService\"\n implementationNames.0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c:\n+ \"MainnetSignalService\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetSgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n- Status: DELETED\n contract MainnetGuardianProver (0xE3D777143Ea25A6E031d1e921F396750885f43aC)\n +++ description: Verifier contract for Guardian proven blocks.\n```\n\n```diff\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa) {\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n values.namedAddresses.10.name:\n- \"bridge_watchdog\"\n+ \"taiko_token\"\n values.namedAddresses.10.address:\n- \"0x00000291AB79c55dC4Fcd97dFbA4880DF4b93624\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.namedAddresses.9.name:\n- \"taiko_token\"\n+ \"signal_service\"\n values.namedAddresses.9.address:\n- \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n+ \"0x1670000000000000000000000000000000000005\"\n values.namedAddresses.8.name:\n- \"signal_service\"\n+ \"erc1155_vault\"\n values.namedAddresses.8.address:\n- \"0x1670000000000000000000000000000000000005\"\n+ \"0x1670000000000000000000000000000000000004\"\n values.namedAddresses.7.name:\n- \"erc1155_vault\"\n+ \"bridged_erc1155\"\n values.namedAddresses.7.address:\n- \"0x1670000000000000000000000000000000000004\"\n+ \"0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40\"\n values.namedAddresses.6.name:\n- \"bridged_erc1155\"\n+ \"bridge\"\n values.namedAddresses.6.address:\n- \"0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40\"\n+ \"0x1670000000000000000000000000000000000001\"\n values.namedAddresses.5.name:\n- \"bridge\"\n+ \"bridged_erc20\"\n values.namedAddresses.5.address:\n- \"0x1670000000000000000000000000000000000001\"\n+ \"0x65666141a541423606365123Ed280AB16a09A2e1\"\n values.namedAddresses.4.name:\n- \"bridged_erc20\"\n+ \"bridged_erc721\"\n values.namedAddresses.4.address:\n- \"0x65666141a541423606365123Ed280AB16a09A2e1\"\n+ \"0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7\"\n values.namedAddresses.3.name:\n- \"bridged_erc721\"\n+ \"quota_manager\"\n values.namedAddresses.3.address:\n- \"0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.namedAddresses.2.name:\n- \"quota_manager\"\n+ \"erc721_vault\"\n values.namedAddresses.2.address:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1670000000000000000000000000000000000003\"\n values.namedAddresses.1.name:\n- \"erc721_vault\"\n+ \"erc20_vault\"\n values.namedAddresses.1.address:\n- \"0x1670000000000000000000000000000000000003\"\n+ \"0x1670000000000000000000000000000000000002\"\n values.namedAddresses.0.name:\n- \"erc20_vault\"\n+ \"bridge_watchdog\"\n values.namedAddresses.0.address:\n- \"0x1670000000000000000000000000000000000002\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ForcedInclusionStore (0x05d88855361808fA1d7fc28084Ef3fCa191c4e03)\n +++ description: Contract that allows to enqueue forced transaction through L1. A pending forced transaction must be processed every 255 batches.\n```\n\n```diff\n+ Status: CREATED\n contract AutomataDcapV3Attestation (0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261)\n +++ description: Contract managing SGX attestation certificates.\n```\n\n```diff\n+ Status: CREATED\n contract Risc0VerifierGateway (0x73Ee496dA20e5C65340c040B0D8c3C891C1f74AE)\n +++ description: Entry contract to verify batches using RISC Zero.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (0x7e6409e9b6c5e2064064a6cC994f9a2e95680782)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (0x8Efa01564425692d0a0838DC10E300BD310Cb43e)\n +++ description: Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (0x9e322fC59b8f4A29e6b25c3a166ac1892AA30136)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoWrapper (0x9F9D2fC7abe74C79f86F0D1212107692430eef72)\n +++ description: Entry point for proposing blocks. It enforces the inclusion of forced transactions after their deadline.\n```\n\n```diff\n+ Status: CREATED\n contract VerifierGateway (0xB16931e78d0cE3c9298bbEEf3b5e2276D34b8da1)\n +++ description: Gateway contract for the multi-proof system. It redirects proof to the appropriate verifier based on the proof type.\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGateway (0xbee1040D0Aab17AE19454384904525aE4A3602B9)\n +++ description: Entry contract to verify batches using SP1.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract QuotaManager (0x91f67118DD47d502B1f0C354D0611997B022f29E)\n +++ description: Defines withdrawal limits per token.\n```"
}
]
},
{
"id": "c6c7f71d",
"date": "Tue, 13 May 2025 14:42:00 GMT",
"timestamp": 1747147320,
"description": "TAIKO token contract refactor and introduces an explicit list of non-voting accounts, the Foundation (TAIKO_FOUNDATION_TREASURY) and DAO contracts (TAIKO_DAO_CONTROLLER), for which token weight do not count. Sets up the DAO with a separate executor contract (TAIKO_DAO_CONTROLLER) helper that the DAO owns.",
"isHighSeverity": true,
"changeCount": 36,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoToken (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800) {\n +++ description: Taiko's native token. Used for block proposal rewards, proving bonds and rewards, and contesting bonds.\n sourceHashes.1:\n- \"0x5da570fbffd5ab663ce8983496a9ded290ed853a950b4052ac93b35217babac8\"\n+ \"0xc44a84c18fe7660acbe7750e0a14401b3a0a0ad97d8c81305bd879dca88d873b\"\n sourceHashes.0:\n- \"0xc44a84c18fe7660acbe7750e0a14401b3a0a0ad97d8c81305bd879dca88d873b\"\n+ \"0xea41529d3c7a5cd7651ff173711c111016d65e4345f6f60dc2af04d8ddef375f\"\n values.$implementation:\n- \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n+ \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n values.$pastUpgrades.5:\n+ [\"2024-05-29T08:03:23.000Z\",\"0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2\",[\"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"]]\n values.$pastUpgrades.4.2:\n- \"0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2\"\n+ \"2024-05-11T05:46:11.000Z\"\n values.$pastUpgrades.4.1.0:\n- \"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"\n+ \"0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c\"\n values.$pastUpgrades.4.0:\n- \"2024-05-29T08:03:23.000Z\"\n+ \"0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c\"\n values.$pastUpgrades.3.2:\n- \"2024-05-11T05:46:11.000Z\"\n+ \"0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34\"\n values.$pastUpgrades.3.1.0:\n- \"0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c\"\n+ \"0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb\"\n values.$pastUpgrades.3.0:\n- \"0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c\"\n+ \"2024-04-25T08:29:59.000Z\"\n values.$pastUpgrades.2.2:\n- \"0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34\"\n+ \"0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95\"\n values.$pastUpgrades.2.1.0:\n- \"0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb\"\n+ \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n values.$pastUpgrades.2.0:\n- \"2024-04-25T08:29:59.000Z\"\n+ \"2025-05-13T00:47:23.000Z\"\n values.$upgradeCount:\n- 5\n+ 6\n values.addressManager:\n- \"0x0000000000000000000000000000000000000000\"\n values.getPastTotalSupply:\n- [0,0,0,0,0]\n values.impl:\n- \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n+ \"0x87C752b0F70cAa237Edd7571B0845470A37DE040\"\n values.lastUnpausedAt:\n- 0\n values.getNonVotingAccounts:\n+ [\"0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da\",\"0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\"]\n values.proxiableUUID:\n+ \"EXPECT_REVERT\"\n values.resolver:\n+ \"0x0000000000000000000000000000000000000000\"\n values.TAIKO_DAO_CONTROLLER:\n+ \"0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3\"\n values.TAIKO_FOUNDATION_TREASURY:\n+ \"0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da\"\n errors:\n- {\"getPastTotalSupply\":\"Processing error occurred.\",\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.0xcfe803378D79d1180EbF030455040EA6513869dF:\n- \"TaikoToken\"\n implementationNames.0x87C752b0F70cAa237Edd7571B0845470A37DE040:\n+ \"TaikoToken\"\n template:\n+ \"taiko/TaikoToken\"\n description:\n+ \"Taiko's native token. Used for block proposal rewards, proving bonds and rewards, and contesting bonds.\"\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract Taiko Multisig (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.4:\n+ \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n values.$members.3:\n- \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n+ \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n values.$members.2:\n- \"0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1\"\n+ \"0x1eE487CEdCe52c370DB11e62987F3ABe873E145A\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Taiko Foundation Treasury Multisig (0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DAO (0x9CDf589C941ee81D75F34d3755671d614f7cf261)\n +++ description: The entry point to the DAO Aragon-based governance framework.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoDAOController (0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3)\n +++ description: Contract that maintains ownership of all contracts and assets, owned by the DAO. Its token weight does not count towards the DAO quorum.\n```"
}
]
},
{
"id": "9c1b4f57",
"date": "Fri, 18 Apr 2025 18:11:13 GMT",
"timestamp": 1744999873,
"description": "Update RiscZeroGroth16Verifier.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.verifier_RISCZERO_GROTH16_VERIFIER:\n- \"0xf31DE43cc0cF75245adE63d3Dabf58d4332855e9\"\n+ \"0x48E32eFbe22e180A3FFe617f4955cD83B983dd98\"\n }\n```\n\n```diff\n- Status: DELETED\n contract RiscZeroGroth16Verifier (0xf31DE43cc0cF75245adE63d3Dabf58d4332855e9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0x48E32eFbe22e180A3FFe617f4955cD83B983dd98)\n +++ description: None\n```"
}
]
},
{
"id": "6a798064",
"date": "Tue, 04 Mar 2025 13:38:38 GMT",
"timestamp": 1741095518,
"description": "Taiko admin multisig signer change.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.0:\n- \"0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n+ \"0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (0xb47fE76aC588101BFBdA9E68F66433bA51E8029a)\n +++ description: None\n```"
}
]
},
{
"id": "e32a44c7",
"date": "Thu, 27 Feb 2025 13:52:49 GMT",
"timestamp": 1740664369,
"description": "The forced zk tiers for the DAO fallback proposer have been removed. Any proposer/challenger/prover can choose among the 5 tiers:\n- tiers_[0] = LibTiers.TIER_SGX;\n- tiers_[1] = LibTiers.TIER_ZKVM_RISC0;\n- tiers_[2] = LibTiers.TIER_ZKVM_SP1;\n- tiers_[3] = LibTiers.TIER_GUARDIAN_MINORITY;\n- tiers_[4] = LibTiers.TIER_GUARDIAN;\n\nUpdate MainnetTierRouter with new cooldown and proving periods, new validity bond values (see above which tiers are active):\n\n| Tier | Parameter | Before | After |\n|------|-----------|--------|-------|\n| **TIER_OPTIMISTIC** | validityBond | 75 TKO | 50 TKO |\n| | contestBond | 492.19 TKO | 328.13 TKO |\n| | cooldownPeriod | 24 hours | 24 hours |\n| | provingPeriod | 4.25 hours | 1 hour |\n| **TEE Tiers** (SGX, TDX, TEE_ANY) | validityBond | 150 TKO | 100 TKO |\n| | contestBond | 984.38 TKO | 656.25 TKO |\n| | cooldownPeriod | 4 hours | 4 hours |\n| | provingPeriod | 5 hours | 5 hours |\n| **ZKVM Tiers** (RISC0, SP1, ANY, AND_TEE) | validityBond | 225 TKO | 150 TKO |\n| | contestBond | 1476.56 TKO | 984.38 TKO |\n| | cooldownPeriod | 4 hours | 4 hours |\n| | provingPeriod | 7 hours | 7 hours |\n| **TIER_GUARDIAN_MINORITY** | validityBond | 225 TKO | 200 TKO |\n| | contestBond | 1476.56 TKO | 1312.5 TKO |\n| | cooldownPeriod | 4 hours | 4 hours |\n| | provingPeriod | 0 hours | 2 hours |\n| **TIER_GUARDIAN** | validityBond | 0 TKO | 0 TKO |\n| | contestBond | 0 TKO | 0 TKO |\n| | cooldownPeriod | 4 hours | 8 hours |\n| | provingPeriod | 0 hours | 0 hours |",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xb0f9a7fd86a26f933460b09bf9ddb6f3fcb1926850109b97c24801d6230186e3\"\n+ \"0x8c8d91a3b010953954bbd3ba9f4c55f76112bf6d7f298dcd584c2de94a4ad1a4\"\n values.$implementation:\n- \"0x2784423f7c61Bc7B75dB6CdA26959946f437588D\"\n+ \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n values.$pastUpgrades.23:\n+ [\"2025-02-27T03:27:23.000Z\",\"0x6368890b9aa2f87c6a6b727efdd8af0ea357a11460b546d8a7f3e19e38a34e41\",[\"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"]]\n values.$upgradeCount:\n- 23\n+ 24\n values.impl:\n- \"0x2784423f7c61Bc7B75dB6CdA26959946f437588D\"\n+ \"0x5110634593Ccb8072d161A7d260A409A7E74D7Ca\"\n values.tier_router:\n- \"0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66\"\n+ \"0x44d307a9ec47aA55a7a30849d065686753C86Db6\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x44d307a9ec47aA55a7a30849d065686753C86Db6)\n +++ description: None\n```"
}
]
},
{
"id": "4f615b6f",
"date": "Fri, 14 Feb 2025 13:24:42 GMT",
"timestamp": 1739539482,
"description": "TaikoL1 upgrade:\n- old proposeBlock() removed\n- formatting, comments, small fixes\n\nTierRouter:\n- RISC0 from 1/200 to 1/1000\n- SP1 from 1/40 to 1/10\n...of daofallback proposer batches",
"isHighSeverity": true,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0x5ced94c638514ff09ace408fda7efb4bd52077a7e9ce2f20e154419454ac3869\"\n+ \"0xb0f9a7fd86a26f933460b09bf9ddb6f3fcb1926850109b97c24801d6230186e3\"\n values.$implementation:\n- \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n+ \"0x2784423f7c61Bc7B75dB6CdA26959946f437588D\"\n values.$pastUpgrades.22:\n+ [\"2025-02-13T06:57:47.000Z\",\"0xc0e8ec30d1479ca2414d4d28a09a543c2845247d80387f78c179d663ffe55c3c\",[\"0x2784423f7c61Bc7B75dB6CdA26959946f437588D\"]]\n values.$upgradeCount:\n- 22\n+ 23\n values.impl:\n- \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n+ \"0x2784423f7c61Bc7B75dB6CdA26959946f437588D\"\n values.prover_set:\n- \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n+ \"0x280eAbfd252f017B78e15b69580F249F45FB55Fa\"\n values.tier_router:\n- \"0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0\"\n+ \"0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0)\n +++ description: None\n```\n\n```diff\n contract DAOFallbackProposer (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TAIKO token and acts as a Taiko Labs owned proposer and prover proxy. This contract relays `proveBlock` calls to the TaikoL1 contract so that msg.sender doesn't need to hold any TKO. There are several instances of this contract operated by different entities.\n sourceHashes.1:\n- \"0x62ec48ec56b8eb6e604ca35e87dca2922adb6e914b1922139a0ae932750abd61\"\n+ \"0x397ca5d98f464f3096b2ba95f9057ebbc27c56e4d878ebbae83c911594dd7c5b\"\n values.$implementation:\n- \"0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B\"\n+ \"0x280eAbfd252f017B78e15b69580F249F45FB55Fa\"\n values.$pastUpgrades.10:\n+ [\"2025-02-13T06:57:47.000Z\",\"0xc0e8ec30d1479ca2414d4d28a09a543c2845247d80387f78c179d663ffe55c3c\",[\"0x280eAbfd252f017B78e15b69580F249F45FB55Fa\"]]\n values.$upgradeCount:\n- 10\n+ 11\n values.impl:\n- \"0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B\"\n+ \"0x280eAbfd252f017B78e15b69580F249F45FB55Fa\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetProverSet (0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetProverSet (0x280eAbfd252f017B78e15b69580F249F45FB55Fa)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66)\n +++ description: None\n```"
}
]
},
{
"id": "308b1ff2",
"date": "Wed, 15 Jan 2025 13:39:32 GMT",
"timestamp": 1736948372,
"description": "Upgrade of both RISC0 and SP1 verifier contracts.\n\n### SP1Verifier\n\nv3.0.0 -> v4.0.0-rc.3\n\nAll-new verifier with new verifier hash: https://github.com/succinctlabs/sp1/releases/tag/v4.0.0-rc.1 ('not production ready').\n\n### RiscZeroGroth16Verifier\n\nv1.1.2 -> v1.2.0\n\nAdds a new Interface `IRiscZeroSelectable` for easily querying the selector. No changes to the zk verification itself",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.sp1_remote_verifier:\n- \"0x2D33d748644dAb8B3FB0E07642d9dE96b816d067\"\n+ \"0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371\"\n values.verifier_RISCZERO_GROTH16_VERIFIER:\n- \"0xcF706D99C265fC2349AE43c5f6BFD7931FE5308D\"\n+ \"0xf31DE43cc0cF75245adE63d3Dabf58d4332855e9\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0x2D33d748644dAb8B3FB0E07642d9dE96b816d067)\n +++ description: None\n```\n\n```diff\n contract SP1Verifier (0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452) {\n +++ description: None\n values.sp1RemoteVerifier:\n- \"0x2D33d748644dAb8B3FB0E07642d9dE96b816d067\"\n+ \"0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371\"\n }\n```\n\n```diff\n- Status: DELETED\n contract RiscZeroGroth16Verifier (0xcF706D99C265fC2349AE43c5f6BFD7931FE5308D)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1RemoteVerifier (0x68593ad19705E9Ce919b2E368f5Cb7BAF04f7371)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0xf31DE43cc0cF75245adE63d3Dabf58d4332855e9)\n +++ description: None\n```"
}
]
},
{
"id": "553b3e5e",
"date": "Fri, 03 Jan 2025 12:10:19 GMT",
"timestamp": 1735906219,
"description": "MS signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (0xb47fE76aC588101BFBdA9E68F66433bA51E8029a) {\n +++ description: None\n values.$members.0:\n- \"0x55d79345Afc87806B690C9f96c4D7BfE2Bca8268\"\n+ \"0x30bc4C0Baf55A37Ccf2d626Bc592bd7715b75De2\"\n }\n```"
}
]
},
{
"id": "2d84825c",
"date": "Thu, 26 Dec 2024 11:48:26 GMT",
"timestamp": 1735213706,
"description": "Tiny change in the MainnetTierRouter, resetting the probabilities for forced validity proofs via the DAO proposer to the old ~1/200, ~1/40 for RISC0 and SP1 respectively. No other changes.",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xad202d72005832c623578708f77802197e8a681c1621f57c1106161858ba2dca\"\n+ \"0x5ced94c638514ff09ace408fda7efb4bd52077a7e9ce2f20e154419454ac3869\"\n values.$implementation:\n- \"0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c\"\n+ \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n values.$pastUpgrades.21:\n+ [\"2024-12-24T14:19:11.000Z\",\"0x77871837d1749b22a7991da475e657baa4371937f5a8cb094d4e170db000cb25\",[\"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"]]\n values.$upgradeCount:\n- 21\n+ 22\n values.impl:\n- \"0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c\"\n+ \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n values.tier_router:\n- \"0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66\"\n+ \"0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0)\n +++ description: None\n```"
}
]
},
{
"id": "a66aba2e",
"date": "Tue, 24 Dec 2024 09:17:36 GMT",
"timestamp": 1735031856,
"description": "Validity proofs reinstated as before (same SP1 and RISC0 contracts), but with new probabilities for the DAO proposer: RISC0 ~1/1000 and SP1 ~1/100.",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xeeb07b10bec4783237afadc9ac7b0e746138695fef1f85996e97012e2e83b6df\"\n+ \"0xad202d72005832c623578708f77802197e8a681c1621f57c1106161858ba2dca\"\n values.$implementation:\n- \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n+ \"0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c\"\n values.$pastUpgrades.20:\n+ [\"2024-12-23T14:55:47.000Z\",\"0x9c2f36af40c0004110041fc45d980b73b0c8dde8064713a55aeb6f69fca77a99\",[\"0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c\"]]\n values.$upgradeCount:\n- 20\n+ 21\n values.impl:\n- \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n+ \"0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c\"\n values.tier_router:\n- \"0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542\"\n+ \"0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66)\n +++ description: None\n```"
}
]
},
{
"id": "9326eb49",
"date": "Mon, 23 Dec 2024 13:46:23 GMT",
"timestamp": 1734961583,
"description": "New TierRouter, removing all validity proofs, leaving only SGX (minTier) and Guardians.\n\nNew DAOFallbackProposer refactors some minor things and deprecates the v1 proposals (only v2 possible).\n\nOther changes are only related to the new TierRouter address.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0x5ced94c638514ff09ace408fda7efb4bd52077a7e9ce2f20e154419454ac3869\"\n+ \"0xeeb07b10bec4783237afadc9ac7b0e746138695fef1f85996e97012e2e83b6df\"\n values.$implementation:\n- \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n+ \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n values.$pastUpgrades.19:\n+ [\"2024-12-23T03:12:35.000Z\",\"0xe66aba9f8bfcd86dc0ae32416862ca61a51c47f8ec747799e65f155ef27eeb20\",[\"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"]]\n values.$pastUpgrades.18:\n+ [\"2024-12-23T02:45:11.000Z\",\"0xfa949022e61921e108974e73130e94fc5120463f2c537d26626e5cee2120c944\",[\"0xb74A66b6CF50AD63E29669F0BDE4354E11758162\"]]\n values.$upgradeCount:\n- 18\n+ 20\n values.impl:\n- \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n+ \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n values.tier_router:\n- \"0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0\"\n+ \"0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0)\n +++ description: None\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n sourceHashes.1:\n- \"0xe3ef3bce11823157fe0b3d8d8705554e47a8789445c2a255990ca15564e7e945\"\n+ \"0x9dede6e55b7b0db6226ea3cead125c4750d147ad96cef774a61e51e8e9ce6d36\"\n values.$implementation:\n- \"0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788\"\n+ \"0x0079a79E5d8DDA67029051d505E5A11DE279B36D\"\n values.$pastUpgrades.10:\n+ [\"2024-12-23T02:45:11.000Z\",\"0xfa949022e61921e108974e73130e94fc5120463f2c537d26626e5cee2120c944\",[\"0x0079a79E5d8DDA67029051d505E5A11DE279B36D\"]]\n values.$upgradeCount:\n- 10\n+ 11\n values.impl:\n- \"0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788\"\n+ \"0x0079a79E5d8DDA67029051d505E5A11DE279B36D\"\n }\n```\n\n```diff\n contract DAOFallbackProposer (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TAIKO token and acts as a Taiko Labs owned proposer and prover proxy. This contract relays `proveBlock` calls to the TaikoL1 contract so that msg.sender doesn't need to hold any TKO. There are several instances of this contract operated by different entities.\n sourceHashes.1:\n- \"0x6c2e43f356e499e332ee9b82cb8ae970dbe6209146e72d925e9d9f22f5b791e1\"\n+ \"0x62ec48ec56b8eb6e604ca35e87dca2922adb6e914b1922139a0ae932750abd61\"\n values.$implementation:\n- \"0x3022Ed0346CCE0c08268c8ad081458AfD95E8763\"\n+ \"0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B\"\n values.$pastUpgrades.9:\n+ [\"2024-12-23T02:45:11.000Z\",\"0xfa949022e61921e108974e73130e94fc5120463f2c537d26626e5cee2120c944\",[\"0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B\"]]\n values.$upgradeCount:\n- 9\n+ 10\n values.impl:\n- \"0x3022Ed0346CCE0c08268c8ad081458AfD95E8763\"\n+ \"0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542)\n +++ description: None\n```"
}
]
},
{
"id": "8100bc06",
"date": "Thu, 05 Dec 2024 06:17:09 GMT",
"timestamp": 1733379429,
"description": "One TaikoAdmin MS member changed to a sub-safe.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.$members.0:\n- \"0x55d79345Afc87806B690C9f96c4D7BfE2Bca8268\"\n+ \"0xb47fE76aC588101BFBdA9E68F66433bA51E8029a\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xb47fE76aC588101BFBdA9E68F66433bA51E8029a)\n +++ description: None\n```"
}
]
},
{
"id": "a83164a8",
"date": "Mon, 18 Nov 2024 15:16:10 GMT",
"timestamp": 1731942970,
"description": "These upgrades contain the parameter changes and new deployments that activate Multiproofs, in particular the new ZK-VM tierIds 250 (ZKVM_RISC0) and 251 (ZKVM_SP1).\n\nCurrent active tiers:\n- 200: SGX\n- 250: RISC0\n- 251: SP1\n- 900: guardian minority\n- 1000: guardian\n\nA higher tier can be used to challenge a lower tier before the tier-specific cooldown period has passed. A challenge resets the cooldown window for the proof.\n\nThe ZK tiers are generally not enforced and can always be contested by the higher Guardian tiers.\n\nIn the case of a block being proposed by the `DAO_FALLBACK_PROPOSER` (the ProverSetProxy contract that is used by Taiko and proposes almost all batches), the **minimum proof tier** is determined pseudorandomly at the time of a batch proposal based on a hash depending on the number of blocks in the batch (`keccak256(abi.encode(\"TAIKO_DIFFICULTY\", local.b.numBlocks))`). It can be either of RISC0, SP1 or SGX with certain hardcoded probabilities.\n\nCurrent probabilities assuming a uniformly random input (keccak256) to the function and the dao fallback proposer:\n- RISC0: 0.5% or 1/200\n- SP1: 2.5% or 1/40\n- SGX: 97%\n\nIf any other (not dao_fallback) proposer proposes a batch by posting the required validity bond, the minimum-tier is always SGX.\n\nBoth zk-vm verifiers are currently used multiple times per day.",
"isHighSeverity": true,
"changeCount": 37,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xeeb07b10bec4783237afadc9ac7b0e746138695fef1f85996e97012e2e83b6df\"\n+ \"0x5ced94c638514ff09ace408fda7efb4bd52077a7e9ce2f20e154419454ac3869\"\n values.$implementation:\n- \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n+ \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n values.$pastUpgrades.17:\n+ [\"2024-11-10T16:10:23.000Z\",\"0x5eb57ab352b3e3c1ddbc3fe468d582901b88c6a137ce49b0d70857d5218d626d\",[\"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"]]\n values.$pastUpgrades.16:\n+ [\"2024-11-10T15:46:23.000Z\",\"0x5efedb806fca83936c58f9e4d30644257ce3a529239131b0b19f630320bcfb04\",[\"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"]]\n values.$pastUpgrades.15:\n+ [\"2024-11-10T15:32:47.000Z\",\"0xa9e285d0f2cc84161ac3fc28962003779e9a618271bd6a54b16fb4001ede5b38\",[\"0x0205ea1e1162bc50E1030F36412E5Dd69daA4040\"]]\n values.$upgradeCount:\n- 15\n+ 18\n values.bond_token:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800\"\n values.impl:\n- \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n+ \"0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B\"\n values.sp1_remote_verifier:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x2D33d748644dAb8B3FB0E07642d9dE96b816d067\"\n values.tier_router:\n- \"0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542\"\n+ \"0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0\"\n values.verifier_RISCZERO_GROTH16_VERIFIER:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0xcF706D99C265fC2349AE43c5f6BFD7931FE5308D\"\n values.verifier_TIER_ZKVM_RISC0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc\"\n values.verifier_TIER_ZKVM_SP1:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452\"\n }\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n sourceHashes.1:\n- \"0x5782d554c7b5637e1f166c61be43d34b6d44dabccd12fea3ed904f2988502d79\"\n+ \"0xe3ef3bce11823157fe0b3d8d8705554e47a8789445c2a255990ca15564e7e945\"\n values.$implementation:\n- \"0x190D5d50D98D2202a618f75B2fD9986e60E096be\"\n+ \"0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788\"\n values.$pastUpgrades.9:\n+ [\"2024-11-10T05:21:47.000Z\",\"0x43353a74df973d8f6a379b5c8815ac80935a5099f8ab93a4aa204eb5ef2c663e\",[\"0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788\"]]\n values.$pastUpgrades.8:\n+ [\"2024-11-08T08:35:47.000Z\",\"0x5d46840df79d8df508880675e7ea549e9b46137f597ca520c3e0c979439441d1\",[\"0x6D8e6e1a061791AD17A55De5e15a111c58f6Fb3D\"]]\n values.$upgradeCount:\n- 8\n+ 10\n values.impl:\n- \"0x190D5d50D98D2202a618f75B2fD9986e60E096be\"\n+ \"0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MainnetTierRouter (0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542)\n +++ description: None\n```\n\n```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n receivedPermissions.13:\n+ {\"permission\":\"upgrade\",\"target\":\"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"}\n receivedPermissions.12:\n+ {\"permission\":\"upgrade\",\"target\":\"0xE3D777143Ea25A6E031d1e921F396750885f43aC\"}\n receivedPermissions.11.target:\n- \"0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n+ \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n receivedPermissions.10.target:\n- \"0xE3D777143Ea25A6E031d1e921F396750885f43aC\"\n+ \"0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81\"\n receivedPermissions.9.target:\n- \"0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC\"\n+ \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n receivedPermissions.8.target:\n- \"0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81\"\n+ \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n receivedPermissions.7.target:\n- \"0x9e0a24964e5397B566c1ed39258e21aB5E35C77C\"\n+ \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n receivedPermissions.6.target:\n- \"0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab\"\n+ \"0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\"\n receivedPermissions.5.target:\n- \"0x8d7C954960a36a7596d7eA4945dDf891967ca8A3\"\n+ \"0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452\"\n receivedPermissions.4.target:\n- \"0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9\"\n+ \"0x579f40D0BE111b823962043702cabe6Aaa290780\"\n receivedPermissions.3.target:\n- \"0x579f40D0BE111b823962043702cabe6Aaa290780\"\n+ \"0x579A8d63a2Db646284CBFE31FE5082c9989E985c\"\n receivedPermissions.2.target:\n- \"0x579A8d63a2Db646284CBFE31FE5082c9989E985c\"\n+ \"0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1RemoteVerifier (0x2D33d748644dAb8B3FB0E07642d9dE96b816d067)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Risc0Verifier (0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x5c44f2239925b0d86d2BFEe539f19CD0A08Af452)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract RiscZeroGroth16Verifier (0xcF706D99C265fC2349AE43c5f6BFD7931FE5308D)\n +++ description: None\n```"
}
]
},
{
"id": "38328c2f",
"date": "Tue, 05 Nov 2024 16:54:14 GMT",
"timestamp": 1730825654,
"description": "Taiko ['Ontake' upgrade](https://taiko.mirror.xyz/OJA4SwCqHjF32Zz0GkNJvnHWlsRYzdJ6hcO9FXVOpLs).\n- batching (for proposing and proving)\n- new verifier slots (SP1, Risc0) (0x00 atm)\n- new Block struct in preconf preparations (preconfRegistry set to 0x00)\n- integration of the TierProvider into the MainnetTierRouter\n- new TIER_SGX challengePeriod of 4h (down from 1d)",
"isHighSeverity": true,
"changeCount": 60,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xa2bfa567075799db54daaa89afafea79e42c73c36c23112c79926407116d0765\"\n+ \"0xeeb07b10bec4783237afadc9ac7b0e746138695fef1f85996e97012e2e83b6df\"\n values.$implementation:\n- \"0xf0E6d34937701622cA887a75c150cC23d4FFDf2F\"\n+ \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n values.$pastUpgrades.14:\n+ [\"2024-11-03T05:15:23.000Z\",\"0x78ca7c7d9c7e5aa9c5e6ab80e0229289a8d3bc8df2c2b9ba6baa74a0f60a0703\",[\"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"]]\n values.$pastUpgrades.13:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x4229d14F520848aa83760Cf748abEB8A69cdaB2d\"]]\n values.$upgradeCount:\n- 13\n+ 15\n values.getConfig.checkEOAForCalldataDA:\n- true\n values.getConfig.maxAnchorHeightOffset:\n+ 64\n values.getConfig.baseFeeConfig:\n+ {\"adjustmentQuotient\":8,\"sharingPctg\":75,\"gasIssuancePerSecond\":5000000,\"minGasExcess\":1340000000,\"maxGasIssuancePerBlock\":600000000}\n values.getConfig.ontakeForkHeight:\n+ 538304\n values.impl:\n- \"0xf0E6d34937701622cA887a75c150cC23d4FFDf2F\"\n+ \"0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17\"\n values.tier_router:\n- \"0x6E997f1F22C40ba37F633B08f3b07E10Ed43155a\"\n+ \"0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542\"\n }\n```\n\n```diff\n- Status: DELETED\n contract TierProviderV2 (0x3a1A900680BaADb889202faf12915F7E47B71ddd)\n +++ description: None\n```\n\n```diff\n contract GuardianMinorityProver (0x579A8d63a2Db646284CBFE31FE5082c9989E985c) {\n +++ description: Verifier contract for blocks proven by Guardian minority.\n sourceHashes.1:\n- \"0xb6ed017b0bf49c547dbaa4b24efcbcd5218c26aafd94f8cf06850d009e538347\"\n+ \"0x489b7169b5c7aa13cbb8928934057ad78b37ce9b52651656bf8bda7759533f68\"\n values.$implementation:\n- \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n+ \"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"\n values.$pastUpgrades.6:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.impl:\n- \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n+ \"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"\n }\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n sourceHashes.1:\n- \"0x06f614affc4908aeeac9faa505010855388740ee8e5ba632fbc0e5f56ee8927d\"\n+ \"0x5782d554c7b5637e1f166c61be43d34b6d44dabccd12fea3ed904f2988502d79\"\n values.$implementation:\n- \"0x4f6D5D3109C07E77035B410602996e445b18E8E9\"\n+ \"0x190D5d50D98D2202a618f75B2fD9986e60E096be\"\n values.$pastUpgrades.7:\n+ [\"2024-11-02T12:04:59.000Z\",\"0xf26d0526aa4b8225c603720ce0dc016803188b959c50677d5446087d1f2c4e60\",[\"0x190D5d50D98D2202a618f75B2fD9986e60E096be\"]]\n values.$pastUpgrades.6:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x3202Fc255aE09F91DbbD5b000b87dA4A2E04eE37\"]]\n values.$upgradeCount:\n- 6\n+ 8\n values.impl:\n- \"0x4f6D5D3109C07E77035B410602996e445b18E8E9\"\n+ \"0x190D5d50D98D2202a618f75B2fD9986e60E096be\"\n }\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n sourceHashes.1:\n- \"0x020f0e8ece4630d3f7e6458ef5f1d86c5408ed344c580633e3f32e53393ceab5\"\n+ \"0x6c2e43f356e499e332ee9b82cb8ae970dbe6209146e72d925e9d9f22f5b791e1\"\n values.$implementation:\n- \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n+ \"0x3022Ed0346CCE0c08268c8ad081458AfD95E8763\"\n values.$pastUpgrades.8:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x3022Ed0346CCE0c08268c8ad081458AfD95E8763\"]]\n values.$upgradeCount:\n- 8\n+ 9\n values.impl:\n- \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n+ \"0x3022Ed0346CCE0c08268c8ad081458AfD95E8763\"\n }\n```\n\n```diff\n- Status: DELETED\n contract TierRouter (0x6E997f1F22C40ba37F633B08f3b07E10Ed43155a)\n +++ description: None\n```\n\n```diff\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: None\n sourceHashes.1:\n- \"0x3c7adf8e3200906bd67dec9e0b73fb813681e84ba1499dcede6987370ce146c9\"\n+ \"0x0112b81e89b367f8ffeb6b571bd245b1be7a1279474ffa11591f8374a2c8b14f\"\n values.$implementation:\n- \"0x7ACFBb369a552C45d402448A4d64b9da54C3FF30\"\n+ \"0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63\"\n values.$pastUpgrades.7:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63\"]]\n values.$upgradeCount:\n- 7\n+ 8\n values.impl:\n- \"0x7ACFBb369a552C45d402448A4d64b9da54C3FF30\"\n+ \"0xb20C8Ffc2dD49596508d262b6E8B6817e9790E63\"\n }\n```\n\n```diff\n contract SignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: None\n sourceHashes.1:\n- \"0xa5cf6831e233f05c8a2f677c311dd359c75850355d61417bc5201d493db30039\"\n+ \"0xf99b7d5f650d3734e945c5040d8e4776dfdc97ff745666e084c1d471b7973f38\"\n values.$implementation:\n- \"0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF\"\n+ \"0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3\"\n values.$pastUpgrades.5:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.impl:\n- \"0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF\"\n+ \"0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3\"\n }\n```\n\n```diff\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81) {\n +++ description: Verifier contract for SGX proven blocks.\n sourceHashes.1:\n- \"0xdb8e8268242e52348760b0b2d154955236307b3ef1bc9cb0234fc6c0d01aa70f\"\n+ \"0x076c7d823685a1a394ad6ec677d2d7707207efa9e8e482f479c2cdfd92008904\"\n values.$implementation:\n- \"0x7EE4CEF8a945639e09DDf3032e9d95c8d90f07f3\"\n+ \"0x81DFEA931500cdcf0460e9EC45FA283A6B7f0838\"\n values.$pastUpgrades.5:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x81DFEA931500cdcf0460e9EC45FA283A6B7f0838\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.impl:\n- \"0x7EE4CEF8a945639e09DDf3032e9d95c8d90f07f3\"\n+ \"0x81DFEA931500cdcf0460e9EC45FA283A6B7f0838\"\n }\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n sourceHashes.1:\n- \"0x14240ef6b1d8181a009840162a21975c2777f78f27c22e8e550bc66b36357f78\"\n+ \"0x118c20a34164db28141d7fa6496d1fcf9e139354ed77c4e1c3f33e5eaac65977\"\n values.$implementation:\n- \"0xAc96FF285158bceBB8573D20d853e86BB2915aF3\"\n+ \"0x2705B12a971dA766A3f9321a743d61ceAD67dA2F\"\n values.$pastUpgrades.11:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0x2705B12a971dA766A3f9321a743d61ceAD67dA2F\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.impl:\n- \"0xAc96FF285158bceBB8573D20d853e86BB2915aF3\"\n+ \"0x2705B12a971dA766A3f9321a743d61ceAD67dA2F\"\n }\n```\n\n```diff\n contract GuardianProver (0xE3D777143Ea25A6E031d1e921F396750885f43aC) {\n +++ description: Verifier contract for Guardian proven blocks.\n sourceHashes.1:\n- \"0xb6ed017b0bf49c547dbaa4b24efcbcd5218c26aafd94f8cf06850d009e538347\"\n+ \"0x489b7169b5c7aa13cbb8928934057ad78b37ce9b52651656bf8bda7759533f68\"\n values.$implementation:\n- \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n+ \"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"\n values.$pastUpgrades.6:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.impl:\n- \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n+ \"0xB866E9046CAf4D75e2cbCD8b5eA3f07Ea74F7B47\"\n }\n```\n\n```diff\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa) {\n +++ description: None\n sourceHashes.1:\n- \"0xa0dc6b4537f21ed3a4a43a7fb74645ff827cff8c2b26f2e3e4350ddec470c990\"\n+ \"0x61eadd250e6fee2eea7d778ca5fdb6e04b0fa09044c65eba836b397f585e5535\"\n values.$implementation:\n- \"0x2f7126f78365AD54EAB26fD7faEc60435008E2fD\"\n+ \"0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449\"\n values.$pastUpgrades.4:\n+ [\"2024-11-01T09:20:35.000Z\",\"0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd\",[\"0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.impl:\n- \"0x2f7126f78365AD54EAB26fD7faEc60435008E2fD\"\n+ \"0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract MainnetTierRouter (0x8f1C1D58C858e9a9eeCc587d7D51AECfd16b5542)\n +++ description: None\n```"
}
]
},
{
"id": "a96fdad5",
"date": "Wed, 16 Oct 2024 09:19:09 GMT",
"timestamp": 1729070349,
"description": "Upgrade of the TaikoL1Contract implementation with a [bug fix](https://github.com/taikoxyz/taiko-mono/pull/18254) in a check ('sametransition') of the proving library.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n sourceHashes.1:\n- \"0xf13ac7cd2ef8d7b72cab625effe80906f11db83cf2a688e85a19d515da43f06f\"\n+ \"0xa2bfa567075799db54daaa89afafea79e42c73c36c23112c79926407116d0765\"\n values.$implementation:\n- \"0xBA1d90BCfA74163bFE09e8eF609b346507D83231\"\n+ \"0xf0E6d34937701622cA887a75c150cC23d4FFDf2F\"\n values.$pastUpgrades.12:\n+ [\"2024-10-16T07:55:23.000Z\",[\"0xf0E6d34937701622cA887a75c150cC23d4FFDf2F\"]]\n values.$upgradeCount:\n- 12\n+ 13\n values.impl:\n- \"0xBA1d90BCfA74163bFE09e8eF609b346507D83231\"\n+ \"0xf0E6d34937701622cA887a75c150cC23d4FFDf2F\"\n }\n```"
}
]
},
{
"id": "46dff8f0",
"date": "Tue, 23 Jul 2024 06:40:25 GMT",
"timestamp": 1721716825,
"description": "Small upgrade, no functional changes.",
"isHighSeverity": true,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81) {\n +++ description: Verifier contract for SGX proven blocks.\n values.$implementation:\n- \"0xEE5F6648307319263FFBaE91f68ac700b188fF24\"\n+ \"0x7EE4CEF8a945639e09DDf3032e9d95c8d90f07f3\"\n values.impl:\n- \"0xEE5F6648307319263FFBaE91f68ac700b188fF24\"\n+ \"0x7EE4CEF8a945639e09DDf3032e9d95c8d90f07f3\"\n }\n```"
}
]
},
{
"id": "bf28d6a1",
"date": "Wed, 17 Jul 2024 10:56:00 GMT",
"timestamp": 1721213760,
"description": "Taiko [upgrade 1.9.0](https://github.com/taikoxyz/taiko-mono/pull/17783). The diff is extensive but logic changes are not since much of the diff is about naming and refactoring. The MainnetXXX contracts are deployed to save gas, logic is supposed to stay the same. Contract diffs were reviewed superficially since the code is changing too often and there seem to be no new features / permissions. Below is a changelog copied from the Taiko monorepo:\n\n### Features\n\n* **protocol:** add withdraw eth function to proverset ([#17800](https://github.com/taikoxyz/taiko-mono/issues/17800)) ([bb2abc5](https://github.com/taikoxyz/taiko-mono/commit/bb2abc510c98e62c89e0bfd9382c11720fb9edc7))\n* **protocol:** update Hekla deployment ([#17795](https://github.com/taikoxyz/taiko-mono/issues/17795)) ([cadaef8](https://github.com/taikoxyz/taiko-mono/commit/cadaef882c0751496809c88ee03ff818e49c4b4a))\n* **protocol:** update risc0 verifier contract to release-1.0 ([#17776](https://github.com/taikoxyz/taiko-mono/issues/17776)) ([2dd30ab](https://github.com/taikoxyz/taiko-mono/commit/2dd30ab2dc92b25105f19a4bcc1ddf7b40886039))\n\n\n### Bug Fixes\n\n* **protocol:** reduce MainnetTaikoL1 code size ([#17792](https://github.com/taikoxyz/taiko-mono/issues/17792)) ([45281b8](https://github.com/taikoxyz/taiko-mono/commit/45281b848f3ef3c45487bfcd1bfd38b382eff4d0))\n\n\n### Documentation\n\n* **protocol:** update L1 deployment ([#17789](https://github.com/taikoxyz/taiko-mono/issues/17789)) ([a889f1a](https://github.com/taikoxyz/taiko-mono/commit/a889f1a3e6c27b6758e873572c371ac9399a3d9a))\n\n\n### Code Refactoring\n\n* **protocol:** add MainnetGuardianProver ([#17805](https://github.com/taikoxyz/taiko-mono/issues/17805)) ([6f68316](https://github.com/taikoxyz/taiko-mono/commit/6f68316e89373670cf2c58bde5e64de196b9c139))\n* **protocol:** add MainnetSgxVerifier ([#17803](https://github.com/taikoxyz/taiko-mono/issues/17803)) ([a4be247](https://github.com/taikoxyz/taiko-mono/commit/a4be247e181861300d79af6454b3fd3776100b48))\n* **protocol:** added cached version of the bridge and vaults ([#17801](https://github.com/taikoxyz/taiko-mono/issues/17801)) ([b70cc57](https://github.com/taikoxyz/taiko-mono/commit/b70cc57704d750081a62a7e8e44f68f32efdc4c1))\n* **protocol:** improve mainnet gas efficiency with addresses cached ([#17791](https://github.com/taikoxyz/taiko-mono/issues/17791)) ([b12227d](https://github.com/taikoxyz/taiko-mono/commit/b12227d4d2b2636fb80e04ee7ebc2dec3c17faa8))\n* **protocol:** name address manager param clearer ([#17806](https://github.com/taikoxyz/taiko-mono/issues/17806)) ([1d5a6ff](https://github.com/taikoxyz/taiko-mono/commit/1d5a6ff191e8457ee12c96cb73c074560c556a2a))",
"isHighSeverity": true,
"changeCount": 33,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.$implementation:\n- \"0xcEe590fACd976B9BDE87BC1B7620B284c5edD2C3\"\n+ \"0xBA1d90BCfA74163bFE09e8eF609b346507D83231\"\n values.impl:\n- \"0xcEe590fACd976B9BDE87BC1B7620B284c5edD2C3\"\n+ \"0xBA1d90BCfA74163bFE09e8eF609b346507D83231\"\n values.prover_set:\n- \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n+ \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n derivedName:\n- \"TaikoL1\"\n+ \"MainnetTaikoL1\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (0x518845daA8870bE2C59E49620Fc262AD48953C9a)\n +++ description: None\n```\n\n```diff\n contract GuardianMinorityProver (0x579A8d63a2Db646284CBFE31FE5082c9989E985c) {\n +++ description: Verifier contract for blocks proven by Guardian minority.\n values.$implementation:\n- \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n+ \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n values.impl:\n- \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n+ \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n derivedName:\n- \"GuardianProver\"\n+ \"MainnetGuardianProver\"\n }\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n values.$implementation:\n- \"0x29a88d60246C76E4F28806b9C8a42d2183154900\"\n+ \"0x4f6D5D3109C07E77035B410602996e445b18E8E9\"\n values.impl:\n- \"0x29a88d60246C76E4F28806b9C8a42d2183154900\"\n+ \"0x4f6D5D3109C07E77035B410602996e445b18E8E9\"\n derivedName:\n- \"L1RollupAddressManager\"\n+ \"MainnetRollupAddressManager\"\n }\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n values.$implementation:\n- \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n+ \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n values.impl:\n- \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n+ \"0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A\"\n derivedName:\n- \"ProverSet\"\n+ \"MainnetProverSet\"\n }\n```\n\n```diff\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: None\n values.$implementation:\n- \"0xa303784B0557BF1F1FB8b8abEF2B18a005722689\"\n+ \"0x7ACFBb369a552C45d402448A4d64b9da54C3FF30\"\n values.impl:\n- \"0xa303784B0557BF1F1FB8b8abEF2B18a005722689\"\n+ \"0x7ACFBb369a552C45d402448A4d64b9da54C3FF30\"\n derivedName:\n- \"ERC20Vault\"\n+ \"MainnetERC20Vault\"\n }\n```\n\n```diff\n contract SignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: None\n values.$implementation:\n- \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n+ \"0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF\"\n values.impl:\n- \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n+ \"0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF\"\n derivedName:\n- \"SignalService\"\n+ \"MainnetSignalService\"\n }\n```\n\n```diff\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81) {\n +++ description: Verifier contract for SGX proven blocks.\n values.$implementation:\n- \"0xB0b782cf0fCEce896E0C041F8e54f86cA4cC8e9F\"\n+ \"0xEE5F6648307319263FFBaE91f68ac700b188fF24\"\n values.impl:\n- \"0xB0b782cf0fCEce896E0C041F8e54f86cA4cC8e9F\"\n+ \"0xEE5F6648307319263FFBaE91f68ac700b188fF24\"\n derivedName:\n- \"SgxVerifier\"\n+ \"MainnetSgxVerifier\"\n }\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n values.$implementation:\n- \"0x01E7D369a619eF1B0E92563d8737F42C09789986\"\n+ \"0xAc96FF285158bceBB8573D20d853e86BB2915aF3\"\n values.impl:\n- \"0x01E7D369a619eF1B0E92563d8737F42C09789986\"\n+ \"0xAc96FF285158bceBB8573D20d853e86BB2915aF3\"\n derivedName:\n- \"Bridge\"\n+ \"MainnetBridge\"\n }\n```\n\n```diff\n contract GuardianProver (0xE3D777143Ea25A6E031d1e921F396750885f43aC) {\n +++ description: Verifier contract for Guardian proven blocks.\n values.$implementation:\n- \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n+ \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n values.impl:\n- \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n+ \"0x3c40CC51e78B4a622622F9A4Df1b40068bc8Df98\"\n derivedName:\n- \"GuardianProver\"\n+ \"MainnetGuardianProver\"\n }\n```\n\n```diff\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa) {\n +++ description: None\n values.$implementation:\n- \"0x9496502d7D121B3D5eF25cA6c58d4f7593398a17\"\n+ \"0x2f7126f78365AD54EAB26fD7faEc60435008E2fD\"\n values.impl:\n- \"0x9496502d7D121B3D5eF25cA6c58d4f7593398a17\"\n+ \"0x2f7126f78365AD54EAB26fD7faEc60435008E2fD\"\n derivedName:\n- \"L1SharedAddressManager\"\n+ \"MainnetSharedAddressManager\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract MainnetProverSet (0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A)\n +++ description: None\n```"
}
]
},
{
"id": "d5817b5e",
"date": "Mon, 15 Jul 2024 07:22:39 GMT",
"timestamp": 1721028159,
"description": "This is the [Taiko protocol v1.8.0 upgrade](https://github.com/taikoxyz/taiko-mono/releases/tag/protocol-v1.8.0).\n\ntldr:\n- TAIKO bonds are escrowed in the TaikoL1 contract and only manually withdrawn using `withdrawBond()` by proposers / provers. For efficiency, bonds can be deposited once in the contract and be left there.\n- ring buffer size increased by 36 000 blocks (5 days worth of blocks @ 12 seconds). `getVerifiedBlockProver` can be called on these blocks to get their prover's address.\n- `CalldataTxList` emitted when calldata is used as DA (to be used for derivation)",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.$implementation:\n- \"0x5fc54737ECC1de49D58AE1195d4A296257F1E31b\"\n+ \"0xcEe590fACd976B9BDE87BC1B7620B284c5edD2C3\"\n values.getConfig.blockRingBufferSize:\n- 324512\n+ 360000\n values.impl:\n- \"0x5fc54737ECC1de49D58AE1195d4A296257F1E31b\"\n+ \"0xcEe590fACd976B9BDE87BC1B7620B284c5edD2C3\"\n }\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n values.$implementation:\n- \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n+ \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n values.impl:\n- \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n+ \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n }\n```"
}
]
},
{
"id": "5f77329d",
"date": "Mon, 08 Jul 2024 13:19:34 GMT",
"timestamp": 1720444774,
"description": "New ProverSet implementation: added possibility for authorized admin to call depositBond and withdrawBond on TaikoL1contract. These functions don't exist yet on TaikoL1contract, so this change is probably the beginning of a bigger update.\n\nProverSet address changed in L1RollupAddressManager, old implementation still in use under ProverSetProxy.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.prover_set:\n- \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n+ \"0x518845daA8870bE2C59E49620Fc262AD48953C9a\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0x518845daA8870bE2C59E49620Fc262AD48953C9a)\n +++ description: None\n```"
}
]
},
{
"id": "6e2c88a0",
"date": "Wed, 03 Jul 2024 10:37:45 GMT",
"timestamp": 1720003065,
"description": "- L1RollupAddressManager.sol: changed harcoded B_TIER_ROUTER address.\n- Bridge.sol: small change in retryMessage logic.\n- TaikoL1.sol: changes in block verification. assignedProver and hookCalls now DEPRECATED. assignedProver is now msg.sender of proposeBlock tx. New getters (getLastVerifiedBlock, getLastSyncedBlock), and decreased liveness bond to 125 TAIKO. Block proposers can now bribe the Ethereum block builder. Move some functions into libraries.\n- TaikoToken.sol: can now call batchTransfer for multiple recipients and amounts.\n- TierProviderV2.sol: validityBond and contestBond decreased (halved), cooldownWindow decreased (24h to 4h) for tiers TIER_SGX,TIER_GUARDIAN_MINORITY, for TIER_GUARDIAN increased from 1 to 24 hours. maxBlocksToVerifyPerProof now deprecated.\n- TierRouter.sol: change hardcoded tier provider address.",
"isHighSeverity": true,
"changeCount": 27,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n upgradeability.implementation:\n- \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n+ \"0x5fc54737ECC1de49D58AE1195d4A296257F1E31b\"\n implementations.0:\n- \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n+ \"0x5fc54737ECC1de49D58AE1195d4A296257F1E31b\"\n values.getConfig.maxBlocksToVerifyPerProposal:\n- 10\n values.getConfig.livenessBond:\n- \"250000000000000000000\"\n+ \"125000000000000000000\"\n values.getConfig.blockSyncThreshold:\n- 32\n values.getConfig.maxBlocksToVerify:\n+ 16\n values.getConfig.stateRootSyncInternal:\n+ 16\n values.impl:\n- \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n+ \"0x5fc54737ECC1de49D58AE1195d4A296257F1E31b\"\n values.slotA:\n- {\"genesisHeight\":19923613,\"genesisTimestamp\":1716358991,\"lastSyncedBlockId\":105566,\"lastSynecdAt\":1719571751}\n values.slotB:\n- {\"numBlocks\":108928,\"lastVerifiedBlockId\":105588,\"provingPaused\":false,\"__reservedB1\":0,\"__reservedB2\":0,\"__reservedB3\":0,\"lastUnpausedAt\":1716571955}\n values.tier_router:\n- \"0xa8e5D3a2E2052bea7f10bE6a0386454b721d1f9F\"\n+ \"0x6E997f1F22C40ba37F633B08f3b07E10Ed43155a\"\n }\n```\n\n```diff\n contract TaikoToken (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800) {\n +++ description: None\n upgradeability.implementation:\n- \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n+ \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n implementations.0:\n- \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n+ \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n values.impl:\n- \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n+ \"0xcfe803378D79d1180EbF030455040EA6513869dF\"\n }\n```\n\n```diff\n- Status: DELETED\n contract TierProviderV2 (0x4cffe56C947E26D07C14020499776DB3e9AE3a23)\n +++ description: None\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n upgradeability.implementation:\n- \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n+ \"0x29a88d60246C76E4F28806b9C8a42d2183154900\"\n implementations.0:\n- \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n+ \"0x29a88d60246C76E4F28806b9C8a42d2183154900\"\n values.impl:\n- \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n+ \"0x29a88d60246C76E4F28806b9C8a42d2183154900\"\n }\n```\n\n```diff\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: None\n upgradeability.implementation:\n- \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n+ \"0xa303784B0557BF1F1FB8b8abEF2B18a005722689\"\n implementations.0:\n- \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n+ \"0xa303784B0557BF1F1FB8b8abEF2B18a005722689\"\n values.impl:\n- \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n+ \"0xa303784B0557BF1F1FB8b8abEF2B18a005722689\"\n }\n```\n\n```diff\n- Status: DELETED\n contract TierRouter (0xa8e5D3a2E2052bea7f10bE6a0386454b721d1f9F)\n +++ description: None\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n upgradeability.implementation:\n- \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n+ \"0x01E7D369a619eF1B0E92563d8737F42C09789986\"\n implementations.0:\n- \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n+ \"0x01E7D369a619eF1B0E92563d8737F42C09789986\"\n values.impl:\n- \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n+ \"0x01E7D369a619eF1B0E92563d8737F42C09789986\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract TierProvider (0x3a1A900680BaADb889202faf12915F7E47B71ddd)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TierRouter (0x6E997f1F22C40ba37F633B08f3b07E10Ed43155a)\n +++ description: None\n```"
}
]
},
{
"id": "677f36b5",
"date": "Fri, 28 Jun 2024 10:59:39 GMT",
"timestamp": 1719572379,
"description": "Update to bridge implementation, main changes include a new calculation of messageCalldataCost, used to calculate minimal gas limit required for sending bridge messages. Also removed SafeCastUpgradeable library.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n upgradeability.implementation:\n- \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n+ \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n implementations.0:\n- \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n+ \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n values.CALLDATA_MESSAGE_SIZE_BYTES:\n- 352\n values.impl:\n- \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n+ \"0x40f8Be2969D0D5717768F6799c8840e5D5D603F7\"\n }\n```"
}
]
},
{
"id": "0cfc1c55",
"date": "Mon, 10 Jun 2024 18:24:02 GMT",
"timestamp": 1718043842,
"description": "Moved consumeTokenQuota from beginning to very end of _transferTokens function. Quota manager contract is currently not set.",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: None\n upgradeability.implementation:\n- \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n+ \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n implementations.0:\n- \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n+ \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n values.impl:\n- \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n+ \"0x75b5E276c5C1e9378E899cb3A87977421980Eb22\"\n }\n```"
}
]
},
{
"id": "691d1b74",
"date": "Sun, 09 Jun 2024 12:06:08 GMT",
"timestamp": 1717934768,
"description": "Added \"payable\" to proposeBlock function in ProverSet. Calling proposeBlocks from ProverSet allows the ProverSetProxy to be the proposer of the block. On proveBlock(), also called from ProverSetProxy, there will be no validityBond posted as net transfers will be zero, since the TaikoL1 needs to return the livenessBond (250 TAIKO) to ProverSetProxy, and the validityBond (250 TAIKO) is of the same amount.\nThere are no special privileges for ProverSetProxy or its set provers in TaikoL1 contract.\n\nAlso new SGX instances registered.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n values.prover_set:\n- \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n+ \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd)\n +++ description: None\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n upgradeability.implementation:\n- \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n+ \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n implementations.0:\n- \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n+ \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n values.impl:\n- \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n+ \"0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0xD547Ca5d6b50dC5E900a091978597eB51F18F9D1)\n +++ description: None\n```"
}
]
},
{
"id": "1ede5389",
"date": "Fri, 07 Jun 2024 10:40:21 GMT",
"timestamp": 1717756821,
"description": "- ProverSet.sol: can now propose blocks by calling proposeBlock from proverSet contract, which will in turn call TaikoL1 proposeBlock().\n- ERC20Vault.sol - LibStrings update, typo fixes and gas optimisations.\n- SignalService.sol - Reverted to old implementation of SignalService (0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d). It is now back to old LibStrings, expecting an update soon.\n- Bridge.sol - LibStrings update, added a max size for a calldata message to be processable by a relayer during proof verification.\n- TaikoL1.sol - Added L1_NO_HOOKS error but not used. Fixed a bug where if they passed no hooks in the input params the livenessBond wouldn't be transferred.\n- TaikoToken.sol - Added delegates function, not allowed to delegate to TaikoL1 or ERC20Vault.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n upgradeability.implementation:\n- \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n+ \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n implementations.0:\n- \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n+ \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n values.getConfig.6:\n- 16\n+ 32\n values.getConfig.2:\n- 432512\n+ 324512\n values.getConfig.1:\n- 432000\n+ 324000\n values.impl:\n- \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n+ \"0xB9E1E58bcF33B79CcfF99c298963546a6c334388\"\n values.prover_set:\n- \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n+ \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n }\n```\n\n```diff\n contract TaikoToken (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800) {\n +++ description: None\n upgradeability.implementation:\n- \"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"\n+ \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n implementations.0:\n- \"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"\n+ \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n values.impl:\n- \"0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F\"\n+ \"0x55833dA2962c2330ccCF043ff8037e6D2939bCF6\"\n }\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n upgradeability.implementation:\n- \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n+ \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n implementations.0:\n- \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n+ \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n values.impl:\n- \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n+ \"0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd\"\n }\n```\n\n```diff\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) {\n +++ description: None\n upgradeability.implementation:\n- \"0x4F750D13005444407D44dAA30922128db0374ca1\"\n+ \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n implementations.0:\n- \"0x4F750D13005444407D44dAA30922128db0374ca1\"\n+ \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n values.impl:\n- \"0x4F750D13005444407D44dAA30922128db0374ca1\"\n+ \"0xF8bdaC4E68bA2595Be8381aaa5456917e374E737\"\n }\n```\n\n```diff\n contract SignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: None\n upgradeability.implementation:\n- \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n+ \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n implementations.0:\n- \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n+ \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n values.impl:\n- \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n+ \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n }\n```\n\n```diff\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81) {\n +++ description: Verifier contract for SGX proven blocks.\n values.instances.7:\n+ [\"0x6F6C0837b2c45B1bfE970bd5a0BB171605cb44F3\"]\n values.instances.6:\n+ [\"0x4A9d339c94D1D3b685e3923907A98c73b8168AFF\"]\n values.nextInstanceId:\n- 6\n+ 8\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F)\n +++ description: None\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n upgradeability.implementation:\n- \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n+ \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n implementations.0:\n- \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n+ \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n values.impl:\n- \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n+ \"0xD28f2c26aD8bA88b0691F6BB41Ff021878052561\"\n values.CALLDATA_MESSAGE_SIZE_BYTES:\n+ 352\n }\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0x5D528253fA14cd7F637937de847BE8D5BE0Bf5fd)\n +++ description: None\n```"
}
]
},
{
"id": "e2633393",
"date": "Thu, 06 Jun 2024 12:40:03 GMT",
"timestamp": 1717677603,
"description": "TaikoL1Contract implementation update:\n- Retrieve the tier configurations based on router rather than tier_provider\n- Removed L1_UNAUTHORIZED error and _isProposerPermitted function, making block proposing permissionless.\n- checkEOAForCalldataDA is not in getConfig(), used when blob usages is not detected, it will check the calldata for tx data.\n- LibStrings changes: removed assignment_hook, proposer and proposer_one. Proposer and proposer_one still resolve but unused since _isProposerPermitted is removed. \n\nSignalService update: getSyncedChainData to getSyncedChainHeight, some error changes.\n\nProver_set update: reflect changes to LibStrings, made natively aware of taiko token.\n\nSGXVerifier update: reflect changes to LibStrings, some error changes. _replaceInstance only if new instance != old instance.\n\nGuardianProver(s) update: safeApprove and safeTransfer function to approve and transfer. Reflect changes to LibStrings.\n\nL1RollupAddressManager update: removed B_ASSIGNMENT_HOOK, B_PROPOSER, B_PROPOSER_ONE, B_TIER_PROVIDER. Added B_TIER_ROUTER.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n upgradeability.implementation:\n- \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n+ \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n implementations.0:\n- \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n+ \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n values.assignment_hook:\n- \"0x537a2f0D3a5879b41BCb5A2afE2EA5c4961796F6\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.getConfig.7:\n+ true\n values.impl:\n- \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n+ \"0x4b2743B869b85d5F7D8020566f92664995E4f3c5\"\n values.prover_set:\n- \"0x500735343372Dd6c9B84dBc7a75babf4479742B9\"\n+ \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProverSet (0x500735343372Dd6c9B84dBc7a75babf4479742B9)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract AssignmentHook (0x537a2f0D3a5879b41BCb5A2afE2EA5c4961796F6)\n +++ description: None\n```\n\n```diff\n contract GuardianMinorityProver (0x579A8d63a2Db646284CBFE31FE5082c9989E985c) {\n +++ description: Verifier contract for blocks proven by Guardian minority.\n upgradeability.implementation:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n implementations.0:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n values.impl:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n }\n```\n\n```diff\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780) {\n +++ description: None\n upgradeability.implementation:\n- \"0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a\"\n+ \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n implementations.0:\n- \"0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a\"\n+ \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n values.impl:\n- \"0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a\"\n+ \"0x8EEf314878A7E56314E8DF285d0B0D649C903aF6\"\n }\n```\n\n```diff\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9) {\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n upgradeability.implementation:\n- \"0x500735343372Dd6c9B84dBc7a75babf4479742B9\"\n+ \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n implementations.0:\n- \"0x500735343372Dd6c9B84dBc7a75babf4479742B9\"\n+ \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n values.impl:\n- \"0x500735343372Dd6c9B84dBc7a75babf4479742B9\"\n+ \"0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F\"\n }\n```\n\n```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.nonce:\n- 26\n+ 28\n }\n```\n\n```diff\n contract SignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) {\n +++ description: None\n upgradeability.implementation:\n- \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n+ \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n implementations.0:\n- \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n+ \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n values.impl:\n- \"0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d\"\n+ \"0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb\"\n }\n```\n\n```diff\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81) {\n +++ description: Verifier contract for SGX proven blocks.\n upgradeability.implementation:\n- \"0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n+ \"0xB0b782cf0fCEce896E0C041F8e54f86cA4cC8e9F\"\n implementations.0:\n- \"0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n+ \"0xB0b782cf0fCEce896E0C041F8e54f86cA4cC8e9F\"\n values.impl:\n- \"0xf381868DD6B2aC8cca468D63B42F9040DE2257E9\"\n+ \"0xB0b782cf0fCEce896E0C041F8e54f86cA4cC8e9F\"\n }\n```\n\n```diff\n contract GuardianProver (0xE3D777143Ea25A6E031d1e921F396750885f43aC) {\n +++ description: Verifier contract for Guardian proven blocks.\n upgradeability.implementation:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n implementations.0:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n values.impl:\n- \"0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c\"\n+ \"0x7E717FFD6f7dD1008192bDC7193904FaB25BC8A4\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0xd0AEe97712a4a88B75C31E3C61DD2Ce6E514D85F)\n +++ description: None\n```"
}
]
},
{
"id": "b287d48e",
"date": "Tue, 04 Jun 2024 09:25:32 GMT",
"timestamp": 1717493132,
"description": "Two contracts implementation changed, TaikoL1.sol, and Bridge.sol.\n- TaikoL1.sol: introduced B_TIER_ROUTER = bytes32(\"tier_router\") to replace B_TIER_PROVIDER\n- Bridge.sol: Added a max proof size for a message to be processable by a relayer, an insufficent gas check, and added the B_TIER_ROUTER variable support.",
"isHighSeverity": true,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a) {\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n upgradeability.implementation:\n- \"0x3505a0700DB72dEc7AbFF1aF231BB5D87aBF2944\"\n+ \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n implementations.0:\n- \"0x3505a0700DB72dEc7AbFF1aF231BB5D87aBF2944\"\n+ \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n values.impl:\n- \"0x3505a0700DB72dEc7AbFF1aF231BB5D87aBF2944\"\n+ \"0xE84DC8E2a21e59426542Ab040D77f81d6dB881eE\"\n values.tier_router:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0xa8e5D3a2E2052bea7f10bE6a0386454b721d1f9F\"\n }\n```\n\n```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.nonce:\n- 24\n+ 26\n }\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n upgradeability.implementation:\n- \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n+ \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n implementations.0:\n- \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n+ \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n values.impl:\n- \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n+ \"0x3c326483EBFabCf3252205f26dF632FE83d11108\"\n values.RELAYER_MAX_PROOF_BYTES:\n+ 200000\n }\n```\n\n```diff\n+ Status: CREATED\n contract TierRouter (0xa8e5D3a2E2052bea7f10bE6a0386454b721d1f9F)\n +++ description: None\n```"
}
]
},
{
"id": "10733367",
"date": "Mon, 03 Jun 2024 08:06:00 GMT",
"timestamp": 1717401960,
"description": "Change in bridge implementation processMessage function: message Status and B_OUT_OF_ETH_QUOTA revert logic.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) {\n +++ description: None\n values.nonce:\n- 23\n+ 24\n }\n```\n\n```diff\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) {\n +++ description: None\n upgradeability.implementation:\n- \"0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0\"\n+ \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n implementations.0:\n- \"0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0\"\n+ \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n values.impl:\n- \"0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0\"\n+ \"0x951B7Ae1bB26d12dB37f01748e8fB62FEf45A8B5\"\n }\n```"
}
]
},
{
"id": "c1f59442",
"date": "Thu, 30 May 2024 14:43:53 GMT",
"timestamp": 1717080233,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 18,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract PEMCertChainLib (0x02772b7B3a5Bea0141C993Dbb8D0733C19F46169)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TaikoL1Contract (0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a)\n +++ description: This contract provides functionalities for proposing, proving, and verifying blocks.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoToken (0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SigVerifyLib (0x47bB416ee947fE4a4b655011aF7d6E3A1B80E6e9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TierProvider (0x4cffe56C947E26D07C14020499776DB3e9AE3a23)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProverSet (0x500735343372Dd6c9B84dBc7a75babf4479742B9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AssignmentHook (0x537a2f0D3a5879b41BCb5A2afE2EA5c4961796F6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GuardianMinorityProver (0x579A8d63a2Db646284CBFE31FE5082c9989E985c)\n +++ description: Verifier contract for blocks proven by Guardian minority.\n```\n\n```diff\n+ Status: CREATED\n contract L1RollupAddressManager (0x579f40D0BE111b823962043702cabe6Aaa290780)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProverSetProxy (0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9)\n +++ description: A contract that holds TKO token and acts as a Taiko prover. This contract will simply relay `proveBlock` calls to TaikoL1 so msg.sender doesn't need to hold any TKO.\n```\n\n```diff\n+ Status: CREATED\n contract AutomataDcapV3Attestation (0x8d7C954960a36a7596d7eA4945dDf891967ca8A3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SharedERC20Vault (0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TaikoAdmin (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SignalService (0x9e0a24964e5397B566c1ed39258e21aB5E35C77C)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SgxVerifier (0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81)\n +++ description: Verifier contract for SGX proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract TaikoBridge (0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GuardianProver (0xE3D777143Ea25A6E031d1e921F396750885f43aC)\n +++ description: Verifier contract for Guardian proven blocks.\n```\n\n```diff\n+ Status: CREATED\n contract L1SharedAddressManager (0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa)\n +++ description: None\n```"
}
]
}
]
+3 -3
{
"clusteredEventCount": 69,
"contracts": [
{
"name": "TaikoRisc0Verifier",
"address": "eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b",
"isVerified": true,
"ossifyingSince": 1789952579,
"codeChangeCount": 0,
"stateChangeCount": 6
},
{
"name": "AutomataDcapV3Attestation",
"address": "eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261",
"isVerified": true,
"ossifyingSince": 1789952579,
"codeChangeCount": 0,
"stateChangeCount": 7
},
{
"name": "TaikoSP1Verifier",
"address": "eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F",
"isVerified": true,
"ossifyingSince": 1789952579,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "AutomataDcapV3Attestation",
"address": "eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3",
"isVerified": true,
"ossifyingSince": 1789952579,
"codeChangeCount": 0,
"stateChangeCount": 11
},
{
"name": "SignerList (Security Council)",
"address": "eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2",
"isVerified": true,
"ossifyingSince": 1789654379,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "EmergencyMultisig",
"address": "eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd",
"isVerified": true,
"ossifyingSince": 1789654379,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Multisig",
"address": "eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321",
"isVerified": true,
"ossifyingSince": 1789654379,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "MainnetInbox",
"address": "eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f",
"isVerified": true,
"ossifyingSince": 1785761183,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "ZkRequiredVerifier",
"address": "eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec",
"isVerified": true,
"ossifyingSince": 1783672091,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "QuotaManager",
"address": "eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC",
"isVerified": true,
"ossifyingSince": 1783141271,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "MainnetERC20Vault",
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"isVerified": true,
"ossifyingSince": 1782739115,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "SignalService",
"address": "eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C",
"isVerified": true,
"ossifyingSince": 1782739115,
"codeChangeCount": 9,
"stateChangeCount": 3
},
{
"name": "MainnetBridge",
"address": "eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"isVerified": true,
"ossifyingSince": 1782739115,
"codeChangeCount": 10,
"stateChangeCount": 1
},
{
"name": "SecureSgxVerifier",
"address": "eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee",
"isVerified": true,
"ossifyingSince": 1782357335,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SecureSgxVerifier",
"address": "eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8",
"isVerified": true,
"ossifyingSince": 1782357335,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SignalService",
"address": "taiko:0x1670000000000000000000000000000000000005",
"isVerified": true,
"ossifyingSince": 1777563432,
"codeChangeCount": 2,
"stateChangeCount": 2
},
{
"name": "Anchor",
"address": "taiko:0x1670000000000000000000000000000000010001",
"isVerified": true,
"ossifyingSince": 1777563432,
"codeChangeCount": 6,
"stateChangeCount": 2
},
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1776370439,
"codeChangeCount": 0,
"stateChangeCount": 23
},
{
"name": "SP1Verifier",
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"isVerified": true,
"ossifyingSince": 1776172415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PreconfWhitelist",
"address": "eth:0xFD019460881e6EeC632258222393d5821029b2ac",
"isVerified": true,
"ossifyingSince": 1774964687,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "ProverWhitelist",
"address": "eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae",
"isVerified": true,
"ossifyingSince": 1772641607,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"isVerified": true,
"ossifyingSince": 1771084331,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x844D5f01161E3559d36f23d0Aa9E9620949aF782",
"isVerified": true,
"ossifyingSince": 1756842755,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroSetVerifier",
"address": "eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85",
"isVerified": true,
"ossifyingSince": 1756842743,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"isVerified": true,
"ossifyingSince": 1755283787,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"isVerified": true,
"ossifyingSince": 1755283775,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x1efDd13f831ceeEa14940806705A53D3211CD698",
"isVerified": true,
"ossifyingSince": 1751494343,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"isVerified": true,
"ossifyingSince": 1751494331,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1748550023,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelegateController",
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"isVerified": true,
"ossifyingSince": 1748151239,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TaikoDAOController",
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"isVerified": true,
"ossifyingSince": 1748146475,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Taiko Token",
"address": "eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800",
"isVerified": true,
"ossifyingSince": 1747285931,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "DefaultResolver",
"address": "eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e",
"isVerified": true,
"ossifyingSince": 1747268711,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimisticTokenVotingPlugin",
"address": "eth:0x989E348275b659d36f8751ea1c10D146211650BE",
"isVerified": true,
"ossifyingSince": 1746111707,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DAO",
"address": "eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261",
"isVerified": true,
"ossifyingSince": 1746111707,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Bridge",
"address": "taiko:0x1670000000000000000000000000000000000001",
"isVerified": true,
"ossifyingSince": 1730452979,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "ERC20Vault",
"address": "taiko:0x1670000000000000000000000000000000000002",
"isVerified": true,
"ossifyingSince": 1730452979,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierRouter",
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"isVerified": true,
"ossifyingSince": 1718237375,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockController",
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"isVerified": true,
"ossifyingSince": 1718237363,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2AddressManager",
"address": "taiko:0x1670000000000000000000000000000000000006",
"isVerified": true,
"ossifyingSince": 1716620627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PEMCertChainLib",
"address": "eth:0x02772b7B3a5Bea0141C993Dbb8D0733C19F46169",
"isVerified": true,
"ossifyingSince": 1714550639,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SigVerifyLib",
"address": "eth:0x47bB416ee947fE4a4b655011aF7d6E3A1B80E6e9",
"isVerified": true,
"ossifyingSince": 1714550639,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1715408795,
1715746175,
1716300911,
1716634859,
1716722231,
1716827831,
1716958835,
1717148087,
1717481351,
1717663871,
1717750463,
1718023547,
1719502583,
1719806771,
1719903815,
1720099295,
1720874075,
1721133959,
1721270315,
1721356979,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729065323,
1729728863,
1730452835,
1730549099,
1731025967,
1731216107,
1734921911,
1735049951,
1735951931,
1736970023,
1739429867,
1740626843,
1747097243,
1747268747,
1747362983,
1747578311,
1748432039,
1748558771,
1748997623,
1749700235,
1749804049,
1750785371,
1752076931,
1752542435,
1753329371,
1754913371,
1755136523,
1756244927,
1764720995,
1764814439,
1768829555,
1770777907,
1771445567,
1772676527,
1774964687,
1775138543,
1776370439,
1777562051,
1780627823,
1782120275,
1782739115,
1783141271,
1785761183,
1789654379,
1789952579
],
"criticalChangesPerYear": 29.306822423876014,
"criticalChangesPerYear": 29.30682084502287,
"criticalUpdates": [
{
"id": "b287d48e",
"type": "code"
},
{
"id": "167b8dff",
"type": "code"
},
{
"id": "e2633393",
"type": "code"
},
{
"id": "1ede5389",
"type": "code"
},
{
"id": "6e2c88a0",
"type": "code"
},
{
"id": "d5817b5e",
"type": "code"
},
{
"id": "bf28d6a1",
"type": "code"
},
{
"id": "46dff8f0",
"type": "code"
},
{
"id": "a96fdad5",
"type": "code"
},
{
"id": "38328c2f",
"type": "code"
},
{
"id": "a83164a8",
"type": "code"
},
{
"id": "9326eb49",
"type": "code"
},
{
"id": "a66aba2e",
"type": "code"
},
{
"id": "2d84825c",
"type": "code"
},
{
"id": "4f615b6f",
"type": "code"
},
{
"id": "e32a44c7",
"type": "code"
},
{
"id": "136d39c0",
"type": "code"
},
{
"id": "e8c7b9d2",
"type": "code"
},
{
"id": "82d57b03",
"type": "state"
},
{
"id": "9c15da27",
"type": "code"
},
{
"id": "ca91bdf8",
"type": "code"
},
{
"id": "709bc2e7",
"type": "code"
},
{
"id": "c64c6e2d",
"type": "code"
},
{
"id": "c074de1f",
"type": "code"
},
{
"id": "6defe874",
"type": "state"
},
{
"id": "eeb61c0d",
"type": "state"
},
{
"id": "af40d70c",
"type": "state"
},
{
"id": "3bedf566",
"type": "code"
},
{
"id": "613479a6",
"type": "state"
},
{
"id": "13fde891",
"type": "state"
},
{
"id": "0b48d893",
"type": "state"
},
{
"id": "e91cf682",
"type": "state"
},
{
"id": "423dca4a",
"type": "state"
},
{
"id": "83beb47d",
"type": "state"
},
{
"id": "ebe21a45",
"type": "state"
},
{
"id": "1c35c2f8",
"type": "state"
}
],
"lastCriticalChange": 1789952579,
"maturity": 0.3287615934521973,
"maturity": 0.32876187638753257,
"perimeterResets": [
1714033799,
1714550603,
1715408795,
1715746175,
1716300911,
1716620627,
1716722231,
1716827831,
1716958835,
1717148087,
1717481351,
1717663871,
1717750463,
1718023547,
1718237363,
1719502583,
1719806771,
1719903815,
1720099223,
1720874075,
1721133959,
1721270315,
1721356979,
1721688299,
1722645791,
1724115575,
1724793467,
1725474371,
1726511747,
1726878323,
1729065323,
1729728863,
1730452835,
1730549099,
1731025967,
1731216107,
1734921911,
1735049951,
1735951931,
1736970023,
1739429867,
1740626843,
1746111707,
1747097243,
1747268711,
1747362983,
1747578311,
1748146475,
1748432039,
1748550023,
1748997623,
1749700235,
1749804049,
1750785371,
1751494331,
1752076931,
1752542435,
1753275179,
1754913371,
1755136523,
1755283775,
1756244927,
1756842743,
1764720995,
1764814439,
1768829555,
1770777907,
1771084331,
1771445567,
1772638115,
1774964687,
1775138543,
1776172415,
1776370439,
1777562051,
1780627823,
1782120275,
1782357335,
1782568835,
1782739115,
1783141271,
1783672091,
1785761183,
1789654379,
1789952579
],
"projectClockStart": 1789952579,
"score": 33,
"windowSeconds": 74248377
"windowSeconds": 74248381
}
+1 -1
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+16 -2
+1 -1
{
"baseTimestamp": 1790592851,
"baseTimestamp": 1790851757,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "6b9ec1ab",
"date": "Thu, 01 Oct 2026 11:11:05 GMT",
"timestamp": 1790851757,
"description": "Proposal 69 (1,000 TORN to Mr Anon) was defeated (~163k for vs ~458k TORN against). The same proposer resubmitted it as proposal 70 (voting active, ends 2026-10-06) with a new verified Proposal contract (eth:0x04C2eb6Df3bF6032b8e07a03Fc9a5Ca424414483): 1,000 TORN split into 500 TORN to abusedotch and 500 TORN to JJ (Mr Anon's share, redirected as repayment). It only transfers TORN from governance, no protocol parameters or contracts are changed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] {\n +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior.\n values.proposalCount:\n- 69\n+ 70\n }\n```"
}
]
},
{
"id": "8e20f4e4",
"date": "Mon, 28 Sep 2026 13:34:46 GMT",
"timestamp": 1790592851,
"description": "New proposal on DAO to reward Mr Anon with 1000 TORN for taking down fradulent `tornado.cash` frontend. This is a legit proposal that originates from Tornado Cash DAO tg channel.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] {\n +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior.\n values.proposalCount:\n- 68\n+ 69\n }\n```"
}
]
},
{
"id": "24f9ce54",
"date": "Fri, 21 Aug 2026 10:26:51 GMT",
"timestamp": 1787307944,
"description": "New proposal to update DAO-controled tornado cash frontend: https://github.com/tornado-dao/classic-ui/compare/e312df5a4f6caaa7e93f1b5960c603d8dd7ec67a...17c54dae9ad91bb3c6d62a7860df6cd365ab76d4. It replaces RPC queries with Graph queries, sources proposal states from the onchain data, changes source link from Codeberg to GitHub and adds a phishing website notice board for tornado.cash.\n\nSol verified that the published CID matches the changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] {\n +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior.\n values.proposalCount:\n- 67\n+ 68\n }\n```"
}
]
},
{
"id": "e912d5f9",
"date": "Fri, 03 Jul 2026 08:58:07 GMT",
"timestamp": 1783068981,
"description": "Manually verified the Tornado Cash MiMC hasher against the pinned Tornado circomlib MiMC sponge generator and deployment bytecode.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract MiMCHasher (eth:0x83584f83f26aF4eDDA9CBe8C730bc87C364b28fe) [N/A] {\n +++ description: MiMC hasher used by newer Tornado pool generations for commitment-tree operations, manually verified against the pinned Tornado circomlib generator.\n unverified:\n- true\n description:\n- \"Unverified MiMC hasher used by newer Tornado pool generations for commitment-tree operations. If this contract were malicious or had a backdoor, all pools using it would be compromised.\"\n+ \"MiMC hasher used by newer Tornado pool generations for commitment-tree operations, manually verified against the pinned Tornado circomlib generator.\"\n sourceHashes:\n+ [\"0x96acbaf2288d4cc44cf8e9634da42d922960c005a6982e0b54a84823be2776f2\"]\n references:\n+ [{\"text\":\"Tornado Cash hasher build script\",\"href\":\"https://github.com/tornadocash/tornado-core/blob/master/scripts/compileHasher.js\"},{\"text\":\"Source Code\",\"href\":\"https://github.com/tornadocash/circomlib/blob/c372f14d324d57339c88451834bf2824e73bbdbc/src/mimcsponge_gencontract.js\"}]\n }\n```"
}
]
},
{
"id": "36401cab",
"date": "Thu, 25 Jun 2026 12:45:24 GMT",
"timestamp": 1782391445,
"description": "New proposal, (yet) unverified and malicious, see https://x.com/pcaversaccio/status/2070125180261896246 .",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] {\n +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior.\n values.proposalCount:\n- 66\n+ 67\n }\n```"
}
]
},
{
"id": "901152f6",
"date": "Tue, 12 May 2026 10:06:35 GMT",
"timestamp": 1777548282,
"description": "Config: use the new flattener implementation. Also cleaned up spammy disco",
"isHighSeverity": false,
"changeCount": 45,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract cTornado (eth:0x03893a7c7463AE47D46bc7f091665f1893656003) [tornado-cash/cTornado]\n +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Tornado (eth:0x07687e702b410Fa43f4cB4Af7FA097918ffD2730) [tornado-cash/ERC20Tornado]\n +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawVerifier (eth:0x09193888b3f38C82dEdfda55259A82C0E7De875E) [tornado-cash/WithdrawVerifier]\n +++ description: Verifier contract for Tornado anonymity-mining withdrawal proofs.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_Eth_01 (eth:0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc) [tornado-cash/TornadoCash_Eth_01]\n +++ description: Legacy fixed-denomination ETH mixer for 0.1 ETH deposits. This older pool generation keeps an operator role that can replace the withdrawal verifier and, for this instance, perform a one-time state migration.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0x169AD27A470D064DEDE56a2D3ff727986b15D52B) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Tornado (eth:0x178169B423a011fff22B9e3F3abeA13414dDD0F1) [tornado-cash/ERC20Tornado]\n +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0x22aaA7720ddd5388A3c0A3333430953C68f1849b) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Tornado (eth:0x23773E65ed146A459791799d01336DB287f25334) [tornado-cash/ERC20Tornado]\n +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract cTornado (eth:0x2717c5e28cf931547B621a5dddb772Ab6A35B701) [tornado-cash/cTornado]\n +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoVault (eth:0x2F50508a8a3D323B91336FA3eA6ae50E55f32185) [tornado-cash/TornadoVault]\n +++ description: Vault that escrows locked TORN on behalf of governance users and serves withdrawals initiated by the governance contract.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoTreesV1 (eth:0x43a3bE4Ae954d9869836702AFd10393D3a7Ea417) [tornado-cash/TornadoTreesV1]\n +++ description: Legacy Tornado Trees contract that records deposit and withdrawal leaves from TornadoProxyV1 and maintains the roots later consumed by migration and mining logic.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_eth (eth:0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936) [tornado-cash/TornadoCash_eth]\n +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract Proposal (eth:0x4B6C07B8940a7602fE4332AFa915b366e56eAce5) [tornado-cash/Proposal]\n +++ description: One-off governance proposal payload that deployed the newer Tornado Trees and proxy wiring, migrated legacy tree state, and disabled old mineable instances on the legacy proxy.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoTreesV2 (eth:0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce) [tornado-cash/TornadoTreesV2]\n +++ description: Upgradeable batch-based Tornado Trees contract that reuses legacy tree state, queues new leaves from the newer proxy, and accepts batched root updates proven by a verifier.\n```\n\n```diff\n+ Status: CREATED\n contract RelayerRegistry (eth:0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2) [tornado-cash/RelayerRegistry]\n +++ description: Upgradeable registry that tracks registered relayers, their worker addresses, and their staked TORN balances used to service withdrawals.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoStakingRewards (eth:0x5B3f656C80E8ddb9ec01Dd9018815576E9238c29) [tornado-cash/TornadoStakingRewards]\n +++ description: Upgradeable staking rewards contract that holds relayer stake, distributes burn-derived rewards to locked TORN holders, and lets governance recover TORN from the contract.\n```\n\n```diff\n+ Status: CREATED\n contract RewardSwap (eth:0x5cab7692D4E94096462119ab7bF57319726Eed2A) [tornado-cash/RewardSwap]\n +++ description: Liquidity schedule that pays out TORN rewards for anonymity mining. Only the Miner contract can draw from it or adjust the reward weight.\n```\n\n```diff\n+ Status: CREATED\n contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade]\n +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior.\n```\n\n```diff\n+ Status: CREATED\n contract FeeManager (eth:0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7) [tornado-cash/FeeManager]\n +++ description: Upgradeable fee manager that derives relayer burn fees for each Tornado instance from registry settings and Uniswap TWAP data.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Tornado (eth:0x610B717796ad172B316836AC95a2ffad065CeaB4) [tornado-cash/ERC20Tornado]\n +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract DepositTree (eth:0x6234c4C2734D2B246AE074492F402D8f58ff3226) [N/A]\n +++ description: Unverified merkle tree instance that stores legacy Tornado deposit leaves for TornadoTreesV1.\n```\n\n```diff\n+ Status: CREATED\n contract TreeUpdateVerifier (eth:0x653477c392c16b0765603074f157314Cc4f40c32) [tornado-cash/TreeUpdateVerifier]\n +++ description: Verifier contract for Tornado mining account-tree update proofs.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoProxyV2 (eth:0x722122dF12D4e14e13Ac3b6895a86e84145b6967) [tornado-cash/TornadoProxyV2]\n +++ description: Newer immutable Tornado proxy that routes deposits and withdrawals to supported pool instances and records them in the upgraded Tornado Trees contract.\n```\n\n```diff\n+ Status: CREATED\n contract Miner (eth:0x746Aebc06D2aE31B71ac51429A19D54E797878E9) [tornado-cash/Miner]\n +++ description: Mining and reward-distribution contract for Tornado anonymity mining. It verifies reward and withdrawal proofs, maintains account roots, and routes TORN rewards through the swap contract.\n```\n\n```diff\n+ Status: CREATED\n contract TORN (eth:0x77777FeDdddFfC19Ff86DB637967013e6C6A116C) [tornado-cash/TORN]\n +++ description: TORN governance token contract. Transfers start paused and can later be toggled by governance, which also controls the paused-transfer allowlist and token rescue functions.\n```\n\n```diff\n+ Status: CREATED\n contract MiMCHasher (eth:0x83584f83f26aF4eDDA9CBe8C730bc87C364b28fe) [N/A]\n +++ description: Unverified MiMC hasher used by newer Tornado pool generations for commitment-tree operations.\n```\n\n```diff\n+ Status: CREATED\n contract RewardVerifier (eth:0x88fd245fEdeC4A936e700f9173454D1931B4C307) [tornado-cash/RewardVerifier]\n +++ description: Verifier contract for Tornado anonymity-mining reward proofs.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoProxyV1 (eth:0x905b63Fff465B9fFBF41DeA908CEb12478ec7601) [tornado-cash/TornadoProxyV1]\n +++ description: Legacy immutable Tornado proxy that routes deposits and withdrawals to pool instances and records them in the legacy Tornado Trees contract.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_eth (eth:0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF) [tornado-cash/TornadoCash_eth]\n +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_eth (eth:0xA160cdAB225685dA1d56aa342Ad8841c3b53f291) [tornado-cash/TornadoCash_eth]\n +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract InstanceRegistry (eth:0xB20c66C4DE72433F3cE747b58B86830c459CA911) [tornado-cash/InstanceRegistry]\n +++ description: Upgradeable registry of supported Tornado Cash pool instances and their mutable per-instance fee and routing configuration.\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Tornado (eth:0xbB93e510BbCD0B7beb5A853875f9eC60275CF498) [tornado-cash/ERC20Tornado]\n +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawalTree (eth:0xbFA347D89Ac54F7C2De2433458cb98A85fc03CEd) [N/A]\n +++ description: Unverified merkle tree instance that stores legacy Tornado withdrawal leaves for TornadoTreesV1.\n```\n\n```diff\n+ Status: CREATED\n contract Verifier (eth:0xce172ce1F20EC0B3728c9965470eaf994A03557A) [tornado-cash/Verifier]\n +++ description: Groth16 verifier contract used by Tornado Cash pool withdrawal proofs.\n```\n\n```diff\n+ Status: CREATED\n contract cTornado (eth:0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af) [tornado-cash/cTornado]\n +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract PoseidonHasher (eth:0xD82ed8786D7c69DC7e052F7A542AB047971E73d2) [N/A]\n +++ description: Unverified Poseidon hasher used by the legacy Tornado Trees merkle trees.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoRouter (eth:0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b) [tornado-cash/TornadoRouter]\n +++ description: Router contract that validates supported instances, forwards deposits and withdrawals, and burns relayer stake through the relayer registry during withdrawals.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0xd96f2B1c14Db8458374d9Aca76E26c3D18364307) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```\n\n```diff\n+ Status: CREATED\n contract BatchTreeUpdateVerifier (eth:0xEd3B00B651c4c7AF77c2fDdce4a388de84b507C6) [tornado-cash/BatchTreeUpdateVerifier]\n +++ description: Verifier contract for batched Tornado Trees root updates.\n```\n\n```diff\n+ Status: CREATED\n contract GasCompensationVault (eth:0xFA4C1f3f7D5dd7c12a9Adb82Cd7dDA542E3d59ef) [tornado-cash/GasCompensationVault]\n +++ description: Vault that escrows ETH for governance gas-compensation payouts and can return unused funds to governance.\n```\n\n```diff\n+ Status: CREATED\n contract TornadoCash_erc20 (eth:0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144) [tornado-cash/TornadoCash_erc20]\n +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced.\n```"
}
]
}
]
+1 -1
{
"clusteredEventCount": 0,
"contracts": [
{
"name": "Pool_50K_cDAI",
"address": "eth:0x03893a7c7463AE47D46bc7f091665f1893656003",
"isVerified": true,
"ossifyingSince": 1616155055,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_500K_cDAI",
"address": "eth:0x2717c5e28cf931547B621a5dddb772Ab6A35B701",
"isVerified": true,
"ossifyingSince": 1616135923,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_10_WBTC",
"address": "eth:0xbB93e510BbCD0B7beb5A853875f9eC60275CF498",
"isVerified": true,
"ossifyingSince": 1616135758,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_0.1_WBTC",
"address": "eth:0x178169B423a011fff22B9e3F3abeA13414dDD0F1",
"isVerified": true,
"ossifyingSince": 1616134868,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_1_WBTC",
"address": "eth:0x610B717796ad172B316836AC95a2ffad065CeaB4",
"isVerified": true,
"ossifyingSince": 1616123193,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_5M_cDAI",
"address": "eth:0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af",
"isVerified": true,
"ossifyingSince": 1616115450,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_100K_DAI",
"address": "eth:0x23773E65ed146A459791799d01336DB287f25334",
"isVerified": true,
"ossifyingSince": 1616115387,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_10K_DAI",
"address": "eth:0x07687e702b410Fa43f4cB4Af7FA097918ffD2730",
"isVerified": true,
"ossifyingSince": 1616114822,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Pool_1000_DAI",
"address": "eth:0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144",
"isVerified": true,
"ossifyingSince": 1589828193,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_100_DAI",
"address": "eth:0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3",
"isVerified": true,
"ossifyingSince": 1589828187,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_0.1_ETH",
"address": "eth:0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc",
"isVerified": true,
"ossifyingSince": 1589828161,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "Pool_100_ETH",
"address": "eth:0xA160cdAB225685dA1d56aa342Ad8841c3b53f291",
"isVerified": true,
"ossifyingSince": 1589828114,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_10_ETH",
"address": "eth:0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF",
"isVerified": true,
"ossifyingSince": 1589828075,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_1_ETH",
"address": "eth:0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936",
"isVerified": true,
"ossifyingSince": 1589828030,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_1000_USDT",
"address": "eth:0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f",
"isVerified": true,
"ossifyingSince": 1589828002,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_100_USDT",
"address": "eth:0x169AD27A470D064DEDE56a2D3ff727986b15D52B",
"isVerified": true,
"ossifyingSince": 1589827991,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_1000_USDC",
"address": "eth:0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D",
"isVerified": true,
"ossifyingSince": 1589827970,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_100_USDC",
"address": "eth:0xd96f2B1c14Db8458374d9Aca76E26c3D18364307",
"isVerified": true,
"ossifyingSince": 1589827926,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Pool_5K_cDAI",
"address": "eth:0x22aaA7720ddd5388A3c0A3333430953C68f1849b",
"isVerified": true,
"ossifyingSince": 1589827905,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "Verifier",
"address": "eth:0xce172ce1F20EC0B3728c9965470eaf994A03557A",
"isVerified": true,
"ossifyingSince": 1589278208,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MiMCHasher",
"address": "eth:0x83584f83f26aF4eDDA9CBe8C730bc87C364b28fe",
"isVerified": true,
"ossifyingSince": 1576523275,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1576528931,
1589351616,
1589827905
],
"criticalChangesPerYear": 0,
"criticalUpdates": [],
"lastCriticalChange": 1589828193,
"maturity": 0.9886846640984032,
"maturity": 0.9886846644718819,
"perimeterResets": [
1576523275,
1577296976,
1589278208,
1589827905,
1616114822
],
"projectClockStart": 1616155055,
"score": 99,
"windowSeconds": 94608000
}
+3 -3
+3 -3
{
"clusteredEventCount": 20,
"contracts": [
{
"name": "DisputeGameFactory",
"address": "eth:0x2F12d621a16e2d3285929C9996f478508951dFe4",
"isVerified": true,
"ossifyingSince": 1783362755,
"codeChangeCount": 5,
"stateChangeCount": 9
},
{
"name": "L1StandardBridge",
"address": "eth:0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA",
"isVerified": true,
"ossifyingSince": 1783362755,
"codeChangeCount": 6,
"stateChangeCount": 0
},
{
"name": "SuperchainConfig",
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"isVerified": true,
"ossifyingSince": 1782428747,
"codeChangeCount": 4,
"stateChangeCount": 0
},
{
"name": "OptimismPortal2",
"address": "eth:0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2",
"isVerified": true,
"ossifyingSince": 1770744623,
"codeChangeCount": 6,
"stateChangeCount": 2
},
{
"name": "AnchorStateRegistry",
"address": "eth:0x27Cf508E4E3Aa8d30b3226aC3b5Ea0e8bcaCAFF9",
"isVerified": true,
"ossifyingSince": 1770744623,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1CrossDomainMessenger",
"address": "eth:0x9A3D64E386C18Cb1d6d5179a9596A4B5736e98A6",
"isVerified": true,
"ossifyingSince": 1770744623,
"codeChangeCount": 6,
"stateChangeCount": 0
},
{
"name": "SystemConfig",
"address": "eth:0xc407398d063f942feBbcC6F80a156b47F3f1BDA6",
"isVerified": true,
"ossifyingSince": 1770744623,
"codeChangeCount": 7,
"stateChangeCount": 0
},
{
"name": "OpFoundationUpgradeSafe",
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"isVerified": true,
"ossifyingSince": 1769109083,
"codeChangeCount": 1,
"stateChangeCount": 1
},
{
"name": "SaferSafes",
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"isVerified": true,
"ossifyingSince": 1769109083,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "PermissionedDisputeGame",
"address": "eth:0x58bf355C5d4EdFc723eF89d99582ECCfd143266A",
"isVerified": true,
"ossifyingSince": 1766424179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "FaultDisputeGame",
"address": "eth:0x6dDBa09bc4cCB0D6Ca9Fc5350580f74165707499",
"isVerified": true,
"ossifyingSince": 1766424179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MIPS",
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"isVerified": true,
"ossifyingSince": 1762212215,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0x0bdbEc6bd35571F97f96f3ed21822a4f2e071A3c",
"isVerified": true,
"ossifyingSince": 1759437959,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DelayedWETH",
"address": "eth:0xe62B0279f6A466C5E1676f3ea955086300Bcd0Ac",
"isVerified": true,
"ossifyingSince": 1759437959,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Optimism Guardian Multisig",
"address": "eth:0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2",
"isVerified": true,
"ossifyingSince": 1753465706,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "ETHLockbox",
"address": "eth:0x08bA0023eD60C7Bd040716dD13C45fA0062df5C5",
"isVerified": true,
"ossifyingSince": 1753380731,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DeputyPauseModule",
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"isVerified": true,
"ossifyingSince": 1748963099,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PreimageOracle",
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"isVerified": true,
"ossifyingSince": 1740762647,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Unichain Multisig 2",
"address": "eth:0x9245d5D10AA8a842B31530De71EA86c0760Ca1b1",
"isVerified": true,
"ossifyingSince": 1738953155,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "L2CrossDomainMessenger",
"address": "unichain:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1730748360,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "unichain:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1730748360,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "unichain:0x4200000000000000000000000000000000000016",
"isVerified": true,
"ossifyingSince": 1730748360,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ProxyAdmin",
"address": "unichain:0x4200000000000000000000000000000000000018",
"isVerified": true,
"ossifyingSince": 1730748360,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x3B73Fa8d82f511A3caE17B5a26E4E1a2d5E2f2A4",
"isVerified": true,
"ossifyingSince": 1730748179,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x8098F676033A377b9Defe302e9fE6877cD63D575",
"isVerified": true,
"ossifyingSince": 1730748167,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessModule",
"address": "eth:0x4B4F1aF8d43C8c140D2355Fea663fC9f762067C2",
"isVerified": true,
"ossifyingSince": 1730141711,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x9343c452dec3251fe99D9Fd29b74c5b9CD1751a6",
"isVerified": true,
"ossifyingSince": 1730141663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessModule",
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"isVerified": true,
"ossifyingSince": 1717149791,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SuperchainProxyAdminOwner",
"address": "eth:0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A",
"isVerified": true,
"ossifyingSince": 1707420875,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Optimism Security Council",
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"isVerified": true,
"ossifyingSince": 1707420419,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SuperchainProxyAdmin",
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"isVerified": true,
"ossifyingSince": 1685377355,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1730748467,
1734645071,
1737130811,
1737658703,
1738943723,
1742397851,
1743612623,
1744485539,
1744615652,
1745543531,
1746698728,
1753378247,
1753465706,
1759437959,
1764092795,
1765898063,
1769109083,
1770744623,
1782428747,
1783362755
],
"criticalChangesPerYear": 10.490905411942936,
"criticalChangesPerYear": 10.490904713952773,
"criticalUpdates": [
{
"id": "f5d3d3f4",
"type": "code"
},
{
"id": "290b6c6d",
"type": "code"
},
{
"id": "2a2d7a74",
"type": "state"
},
{
"id": "ababb0b2",
"type": "code"
},
{
"id": "cbee75ee",
"type": "code"
},
{
"id": "7ac95a79",
"type": "code"
},
{
"id": "86db7e3e",
"type": "code"
},
{
"id": "58eb42e4",
"type": "state"
},
{
"id": "8f84154a",
"type": "state"
}
],
"lastCriticalChange": 1783362755,
"maturity": 0.6179587642773567,
"maturity": 0.617958804439192,
"perimeterResets": [
1685377355,
1705954799,
1707420419,
1716902219,
1717149791,
1729728743,
1730141663,
1730748167,
1734645071,
1737130811,
1737658703,
1738943723,
1740762647,
1742397851,
1743612623,
1744485539,
1744615652,
1745543531,
1746698728,
1748963099,
1753378247,
1753465706,
1759437959,
1762212215,
1764092795,
1764596735,
1765898063,
1766424179,
1769109083,
1770744623,
1782428747,
1783362755
],
"projectClockStart": 1783362755,
"score": 62,
"windowSeconds": 60120645
"windowSeconds": 60120649
}
+1 -1
+1 -1
{
"clusteredEventCount": 3,
"contracts": [
{
"name": "UniswapV3Factory",
"address": "eth:0x1F98431c8aD98523631AE4a59f267346ea31F984",
"isVerified": true,
"ossifyingSince": 1772781599,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "V3OpenFeeAdapter",
"address": "eth:0xf2371551Fe3937Db7c750f4DfABe5c2fFFdcBf5A",
"isVerified": true,
"ossifyingSince": 1771859579,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UniswapV3Pool_USDC_WETH_005",
"address": "eth:0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
"isVerified": true,
"ossifyingSince": 1766868719,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "UniswapV3Pool_WBTC_WETH_03",
"address": "eth:0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
"isVerified": true,
"ossifyingSince": 1766867915,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "GovernorBravo",
"address": "eth:0x408ED6354d4973f66138C91495F2f2FCbd8724C3",
"isVerified": true,
"ossifyingSince": 1706556011,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "Timelock",
"address": "eth:0x1a9C8182C09F50C8318d769245beA52c32BE35BC",
"isVerified": true,
"ossifyingSince": 1630165176,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "NonfungiblePositionManager",
"address": "eth:0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"isVerified": true,
"ossifyingSince": 1620156913,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "UNIToken",
"address": "eth:0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
"isVerified": true,
"ossifyingSince": 1600107086,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1623463819,
1630165176,
1706556011,
1766867591,
1772781599
],
"criticalChangesPerYear": 1,
"criticalUpdates": [],
"lastCriticalChange": 1772781599,
"maturity": 0.7359540356502788,
"maturity": 0.7359540484230429,
"perimeterResets": [
1600107086,
1620156420,
1620250931,
1623463819,
1629421922,
1630165176,
1706556011,
1766867591,
1771859579,
1772781599
],
"projectClockStart": 1772781599,
"score": 74,
"windowSeconds": 94608000
}
+1 -1
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -19
+16 -16
{
"ethereum": {
"roles": [],
"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:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"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:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Xlayer Multisig",
"name": "Xlayer Multisig",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * AnchorStateRegistry [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * L1ERC721Bridge_neutered [via: ProxyAdmin]\n * L1StandardBridge_neutered [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n* Can upgrade **with 1h delay**\n * DisputeGameFactory [via: TimelockController with 1h delay → ProxyAdmin]\n* Can interact with DisputeGameFactory\n * set the dispute game implementation and initial bond for any game type **with 1h delay** [via: TimelockController with 1h delay]\n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]\n* Can interact with TimelockController\n * cancel queued transactions \n * manage all access control roles **with 1h delay** [via: TimelockController with 1h delay]\n * propose transactions ",
"accounts": [
{
"address": "eth:0xC290bE56089BCC83c6993583ce2cF51a7951D45A",
"type": "Contract",
"isVerified": true,
"name": "0xC290…D45A",
"url": "https://etherscan.io/address/0xC290bE56089BCC83c6993583ce2cF51a7951D45A"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"type": "EOA",
"isVerified": true,
"name": "EOA 5",
"url": "#EOA-5"
},
{
"address": "eth:0xD3C6821DE67A5c0345EC5A41e4C83739f7043972",
"type": "EOA",
"isVerified": true,
"name": "0xD3C6…3972",
"url": "https://etherscan.io/address/0xD3C6821DE67A5c0345EC5A41e4C83739f7043972"
},
{
"address": "eth:0x11CAA37c9e9Da2621bB45Af77cB7debEE3881d2E",
"type": "EOA",
"isVerified": true,
"name": "0x11CA…1d2E",
"url": "https://etherscan.io/address/0x11CAA37c9e9Da2621bB45Af77cB7debEE3881d2E"
}
],
"discoveryDrivenData": true
},
{
"id": "AgglayerManager",
"name": "AgglayerManager",
"accounts": [
{
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"type": "Contract",
"isVerified": true,
"name": "0x5132…7aB2",
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
}
],
"chain": "ethereum",
"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* Can upgrade **with no delay**\n * AggchainECDSAMultisig ",
"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": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayOlder\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": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x491619874b866c3cDB7C8553877da223525ead01",
"address": "eth:0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"type": "EOA",
"isVerified": true,
"name": "0x4916…ad01",
"url": "https://etherscan.io/address/0x491619874b866c3cDB7C8553877da223525ead01",
"name": "0xa90B…B5eA",
"url": "https://etherscan.io/address/0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sole address that can force batches ",
"description": "* Can interact with AggchainECDSAMultisig\n * replace the aggchainSigners and the signature threshold (which sign the state transitions of this aggchain), switch to the default signers of the AgglayerGateway, upgrade the aggchain to a newer rollup type of the same aggchain type registered in the AgglayerManager, set the aggchain metadata manager and transfer the aggchainManager role \n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"address": "eth:0x491619874b866c3cDB7C8553877da223525ead01",
"type": "EOA",
"isVerified": true,
"name": "0x610D…c102",
"url": "https://etherscan.io/address/0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"name": "0x4916…ad01",
"url": "https://etherscan.io/address/0x491619874b866c3cDB7C8553877da223525ead01",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"description": "* Can interact with AggchainECDSAMultisig\n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"address": "eth:0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"type": "EOA",
"isVerified": true,
"name": "0x9824…e459",
"url": "https://etherscan.io/address/0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"name": "0x610D…c102",
"url": "https://etherscan.io/address/0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"address": "eth:0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"type": "EOA",
"isVerified": true,
"name": "0xa90B…B5eA",
"url": "https://etherscan.io/address/0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"name": "0x9824…e459",
"url": "https://etherscan.io/address/0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"type": "EOA",
"isVerified": true,
"name": "0x6eE7…C6aA",
"url": "https://etherscan.io/address/0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "Member of Xlayer Multisig.\n* Can upgrade **with no delay**\n * SuperchainConfig [via: OwnerContract → ProxyAdmin]\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system \n* Can interact with AccessManager\n * Allowed to add or remove proposers and challengers, and transfer ownership of the AccessManager ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "eth:0x736E68Af2CbF2aB0E46E4310fE5Ae568b3642FF6",
"type": "EOA",
"isVerified": true,
"name": "0x736E…2FF6",
"url": "https://etherscan.io/address/0x736E68Af2CbF2aB0E46E4310fE5Ae568b3642FF6",
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with AccessManager\n * Allowed to challenge or delete state roots proposed by a Proposer \n* Can interact with PermissionedDisputeGame\n * Allowed to challenge or delete state roots proposed by a Proposer ",
"discoveryDrivenData": true
},
{
"id": "EOA-8",
"name": "EOA 8",
"accounts": [
{
"address": "eth:0xE43944421681170648E10007f73816e04F74394F",
"type": "EOA",
"isVerified": true,
"name": "0xE439…394F",
"url": "https://etherscan.io/address/0xE43944421681170648E10007f73816e04F74394F",
"displayName": "EOA 8"
}
],
"chain": "ethereum",
"description": "* Can interact with AccessManager\n * Allowed to post new state roots of the current layer to the host chain \n* Can interact with PermissionedDisputeGame\n * Allowed to post new state roots of the current layer to the host chain ",
"discoveryDrivenData": true
}
]
}
}
+2 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x2B0ee28D4D51bC9aDde5E58E295873F61F4a0507",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1711785755,
"transactionHash": "0x35215d1a6f4ad41bedfbfc481d53b9d508864a6ace025f243264978e1a755f81",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1736257283,
"transactionHash": "0x9d23f56225d22a2a1b82c2aa6122b1a29896686b30bb1f3def0189043699d46f",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1754397707,
"transactionHash": "0xab579dbf426db0badfaef925504105088f3300b51f1362a4084c57d7e13c0fb1",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the X Layer 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**: AgglayerManager, EOA 4\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"description": "System contract defining the X Layer 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**: AgglayerManager, EOA 1\n * **aggchainManager**: EOA 1\n * **aggchainSigners**: EOA 3\n * **forceBatchAddress**: EOA 2",
"upgradableBy": [
{
"name": "AgglayerManager",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2B0ee28D4D51bC9aDde5E58E295873F61F4a0507#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x5065809Af286321a05fBF85713B5D5De7C8f0433",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xfCA51bf5bDc5aC16B86F859d6BEe90cfdF6fEb72"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xee63dC4B835b2790A171fd0149566B1D51E5ae73"
]
},
{
"timestamp": 1764577007,
"transactionHash": "0xdfa2991d716c87991504d3a2e76fd06bc0c7cd2db5d2ce83d910aaf184123487",
"implementations": [
"eth:0xfCA51bf5bDc5aC16B86F859d6BEe90cfdF6fEb72"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig\n * **batcherHash**: EOA 3\n * **owner**: EOA 5",
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig\n * **batcherHash**: EOA 4\n * **owner**: EOA 5",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5065809Af286321a05fBF85713B5D5De7C8f0433#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0x64057ad1DdAc804d0D26A7275b193D9DACa19993",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xa0fEfC3A457F6A1aE2d81FC172D6dE090a9F4033"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xa0fEfC3A457F6A1aE2d81FC172D6dE090a9F4033"
]
}
],
"description": "Central message and gas token (dOKB) bridge of the OP stack part of this deployment. It finalizes withdrawals against the currently respected OP Succinct Lite dispute game and allows forced transactions.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x64057ad1DdAc804d0D26A7275b193D9DACa19993#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0x9D4c8FAEadDdDeeE1Ed0c92dAbAD815c2484f675",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE8b516B3Bf9A6593696462953d98991202f890Ee"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig\n * **owner**: TimelockController; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "1h"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9D4c8FAEadDdDeeE1Ed0c92dAbAD815c2484f675#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": "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": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xF94B553F3602a03931e5D10CaB343C0968D793e3",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF94B553F3602a03931e5D10CaB343C0968D793e3#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0x000590BB65ab1864a7AD46d6B957cC9a4F2C149d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the OPSuccinctFaultDisputeGame. Variant for chains using OPSuccinct (SP1) games instead of Cannon, which omits Cannon-specific cross-contract fields (vm, oracle, weth, challengePeriod, absolutePrestate from game).\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x000590BB65ab1864a7AD46d6B957cC9a4F2C149d#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x1B8A252A71bC8997d3871aF420895B5845212fC6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1B8A252A71bC8997d3871aF420895B5845212fC6#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x305D1C0EED9a0291686f3BfDf1F5E54aaeeF80e4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x305D1C0EED9a0291686f3BfDf1F5E54aaeeF80e4#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Xlayer Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x62e1Aaeba9A8AA4654980653dB4B21FC82C61c15",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x62e1Aaeba9A8AA4654980653dB4B21FC82C61c15#code"
},
{
"name": "L1ERC721Bridge_neutered",
"isVerified": true,
"address": "eth:0x85d37236f063C687d056b3604CBEe4B60d124858",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xFbd06fCb2a023d89a7ae9BeE89d157C5264cf42b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xFbd06fCb2a023d89a7ae9BeE89d157C5264cf42b"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x85d37236f063C687d056b3604CBEe4B60d124858#code"
},
{
"name": "OPSuccinctFaultDisputeGame",
"isVerified": true,
"address": "eth:0x8841FA06099FEdfE7DB6962926C6A281e9E1e607",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Logic of the dispute game. When a state root is proposed, a dispute game contract is deployed. Challengers can use such contracts to challenge the proposed state root.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8841FA06099FEdfE7DB6962926C6A281e9E1e607#code"
},
{
"name": "AccessManager",
"isVerified": true,
"address": "eth:0x98BA64d8c8Dd33bD75F2154214BFd849d0D5c17B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract managing access control for proposers and challengers in OPSuccinct.\n* Roles:\n * **challengers**: EOA 7\n * **owner**: EOA 5\n * **proposers**: EOA 8",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x98BA64d8c8Dd33bD75F2154214BFd849d0D5c17B#code"
},
{
"name": "L1StandardBridge_neutered",
"isVerified": true,
"address": "eth:0xAecF995ABf9E7eDE7ae0CE65E60622C9eD84823a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x2978527d5D1372C32fEdC182FDE7559c0471d051"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "This OP stack bridge contract has been modified to disallow ETH and ERC-20 bridging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xAecF995ABf9E7eDE7ae0CE65E60622C9eD84823a#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC6901aBf8D39079d6b028dA550BB643f10840552",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: OwnerContract",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC6901aBf8D39079d6b028dA550BB643f10840552#code"
},
{
"name": "OwnerContract",
"isVerified": true,
"address": "eth:0xe58C365Da30c746204022e61482bBE828cAA9091",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A minimal contract that lets its owner send arbitrary calls and delegatecalls.\n* Roles:\n * **owner**: EOA 5",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe58C365Da30c746204022e61482bBE828cAA9091#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xE8b516B3Bf9A6593696462953d98991202f890Ee",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE8b516B3Bf9A6593696462953d98991202f890Ee#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xEeDa796a23bc98726e47934ca9B54fDDa5a608e8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n* Roles:\n * **challenger**: EOA 7\n * **proposer**: EOA 8",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEeDa796a23bc98726e47934ca9B54fDDa5a608e8#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0xFa3A5834D9990B94045C7b3229547FF101D552d6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1h.\n* Roles:\n * **canceller**: Xlayer Multisig\n * **defaultAdmin**: TimelockController; ultimately Xlayer Multisig\n * **proposer**: Xlayer Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFa3A5834D9990B94045C7b3229547FF101D552d6#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"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
},
{
"name": "SP1VerifierGatewayOlder",
"isVerified": true,
"address": "eth:0x397A5f7f3dBd538f23DE225B51f532c34448dA9B",
"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/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5",
"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/0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508",
"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/0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1712620800,
"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": [
"OKB"
]
},
"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": "Prepare:\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.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"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": "Prepare:\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 tag 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.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"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.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\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 tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\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 riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
},
{
"title": "Aggregation program of OP Succinct Lite",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client in fault dispute proof mode. Data availability layer is set to Ethereum blobs.",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "notVerified",
"hash": "0x00d9be2980d484ba29aaa1e0d27648b8182df8616a4ec85c3c2b528b29d1a085"
},
{
"title": "Range program of OP Succinct Lite",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks in fault dispute proof mode. Data availability layer is set to Ethereum blobs.",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "notVerified",
"hash": "0x464b1e81672b12e60eb509f54a13aaa877abafda1a015a9339285a381e4146fc"
}
],
"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:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
]
}
+1 -1
{
"baseTimestamp": 1787644553,
"baseTimestamp": 1790850812,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+15 -1
+1 -1
{
"baseTimestamp": 1790080832,
"baseTimestamp": 1790851379,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "0f767d21",
"date": "Thu, 01 Oct 2026 11:11:08 GMT",
"timestamp": 1790851379,
"description": "A Safe that is one of the signers of ZamaGovMultisigA (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) lowered its own threshold from 3/5 to 2/5.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe] {\n +++ description: None\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"2 of 5 (40%)\"\n }\n```"
}
]
},
{
"id": "08457d02",
"date": "Thu, 17 Sep 2026 07:51:47 GMT",
"timestamp": 1789631397,
"description": "Add 17 new confidential wrappers (WBTC, AUSD, PENDLE and 14 Morpho vault shares)",
"isHighSeverity": true,
"changeCount": 327,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConfidentialSteakUSDTWrapper (eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789152239\n sinceBlock:\n+ 25956032\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:43:59.000Z\",\"0xe9f33dc7a110fea67894ef7f3ef9254918eaabeb7ad01facde7cefb240395b4d\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x34822f7ff3c28eeffe2100070c17282c346ff85a1dff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beef003c68896c7d2c3c60d363e8d71a49ab2bf9000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016436f6e666964656e7469616c20737465616b5553445400000000000000000000000000000000000000000000000000000000000000000000000000000000000a63737465616b555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20737465616b55534454222c2273796d626f6c223a2263737465616b55534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620737465616b5553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential steakUSDT\\\",\\\"symbol\\\":\\\"csteakUSDT\\\",\\\"description\\\":\\\"Confidential wrapper of steakUSDT shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":14680995207,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential steakUSDT\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"csteakUSDT\",\"underlying\":\"eth:0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDCpWrapper (eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150751\n sinceBlock:\n+ 25955908\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:19:11.000Z\",\"0xd55cc3a9346ae5156efdfbbb3d628e8d93de08f419e3f0ec55ae90bde92e28c0\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x644c44341fb497f2c95372332a363de4c13716dae4ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000005dc53a23adc9f2bed98de6f59f7f309a7c71ff2b000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553444370000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553444370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553444370222c2273796d626f6c223a226361726d5553444370222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344437020736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential armUSDCp\\\",\\\"symbol\\\":\\\"carmUSDCp\\\",\\\"description\\\":\\\"Confidential wrapper of armUSDCp shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":44322139,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential armUSDCp\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"carmUSDCp\",\"underlying\":\"eth:0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialRoxUSDCyWrapper (eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789154375\n sinceBlock:\n+ 25956208\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T19:19:35.000Z\",\"0x7a7eadb1e667732e52a0064b3a1f253a562fb35d34d1bc96663bbdf0f95a8f1a\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x1e6c1758ea30006c2f61217e9871a6078eabde730dff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000e0181090c22579b6a217f1522cbf8c9f1f0c1965000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c20726f7855534443790000000000000000000000000000000000000000000000000000000000000000000000000000000000000963726f785553444379000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20726f785553444379222c2273796d626f6c223a2263726f785553444379222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620726f78555344437920736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential roxUSDCy\\\",\\\"symbol\\\":\\\"croxUSDCy\\\",\\\"description\\\":\\\"Confidential wrapper of roxUSDCy shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":2439415333,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential roxUSDCy\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"croxUSDCy\",\"underlying\":\"eth:0xE0181090c22579B6A217f1522cbf8c9f1F0C1965\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialBbqUSDCWrapper (eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153067\n sinceBlock:\n+ 25956100\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:57:47.000Z\",\"0x889469791190aaf6a60a02c423bd1080bf1dd4bfb768f778521e3ca927690d59\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x758c540d42b12937c09fd38fa132bee98db9dd9d0eff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beeff2c5bf38f90e3482a8b19f12e5a6d2fca757000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014436f6e666964656e7469616c20626271555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000008636262715553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2062627155534443222c2273796d626f6c223a226362627155534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66206262715553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential bbqUSDC\\\",\\\"symbol\\\":\\\"cbbqUSDC\\\",\\\"description\\\":\\\"Confidential wrapper of bbqUSDC shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":1956111260,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential bbqUSDC\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cbbqUSDC\",\"underlying\":\"eth:0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDTpWrapper (eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153331\n sinceBlock:\n+ 25956122\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T19:02:11.000Z\",\"0x46e9abc4237bb9560dc0595f6f18dd84cc984a09adfac882e44c84b37fcb23f0\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x560fcb18c119c407d71736cdabda00a98dc7b5307bff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000bf29043164660c60a2a72cd15ffe2304e87b6838000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553445470000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553445470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553445470222c2273796d626f6c223a226361726d5553445470222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344547020736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential armUSDTp\\\",\\\"symbol\\\":\\\"carmUSDTp\\\",\\\"description\\\":\\\"Confidential wrapper of armUSDTp shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":18928591,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential armUSDTp\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"carmUSDTp\",\"underlying\":\"eth:0xBf29043164660C60A2a72Cd15FFe2304e87B6838\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialFAUSDeWrapper (eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148387\n sinceBlock:\n+ 25955712\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T17:39:47.000Z\",\"0x7eef71a0892e61b5b1db77cc9443cf2951497ef28c483823b22b69bf623c5f24\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x2f395b4b3182fbeb1513ac72de45fd8382496e4788ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000032401b9fb79065bc15949de0bd43927492f02f0c000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c20664155534465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007636641555344650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20664155534465222c2273796d626f6c223a2263664155534465222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662066415553446520736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential fAUSDe\\\",\\\"symbol\\\":\\\"cfAUSDe\\\",\\\"description\\\":\\\"Confidential wrapper of fAUSDe shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":120155535,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential fAUSDe\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cfAUSDe\",\"underlying\":\"eth:0x32401B9fb79065Bc15949DE0BD43927492f02F0C\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDCsWrapper (eth:0x77F8207ee451441336538bA07a2F425780dED8DB) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789151411\n sinceBlock:\n+ 25955963\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:30:11.000Z\",\"0x96d24e2718e693259e6f30d476fc2a1157018ee8b4978f224807e2ecb06f6c56\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x04eede51a52f5c474b858c4dec93e3f8ddb87fba80ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000a2eaad0d586cf9fd73bb2c09cf6a7e3e187d68cd000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553444373000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553444373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553444373222c2273796d626f6c223a226361726d5553444373222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344437320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential armUSDCs\\\",\\\"symbol\\\":\\\"carmUSDCs\\\",\\\"description\\\":\\\"Confidential wrapper of armUSDCs shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":48148590,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential armUSDCs\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"carmUSDCs\",\"underlying\":\"eth:0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialBbqUSDTWrapper (eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789152695\n sinceBlock:\n+ 25956070\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:51:35.000Z\",\"0x015d053c281a8ebb13d7170b1f91cdbac616e0aff901335a9cdb542dd15137dd\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x4c174f25773bdd4f4283b52e5a6e86343af1338f0fff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000beeff07d991c04cd640de9f15c08ba59c4fedeb7000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014436f6e666964656e7469616c20626271555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000008636262715553445400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2062627155534454222c2273796d626f6c223a226362627155534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66206262715553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential bbqUSDT\\\",\\\"symbol\\\":\\\"cbbqUSDT\\\",\\\"description\\\":\\\"Confidential wrapper of bbqUSDT shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":528600765,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential bbqUSDT\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cbbqUSDT\",\"underlying\":\"eth:0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialPENDLEWrapper (eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150991\n sinceBlock:\n+ 25955928\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:23:11.000Z\",\"0x81bc67cd541d90df6904fd05608b64880b98be74fb5c1c0f5e4f17a0ec779561\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xba6c9ebe37b031712a8c7bc4ad41ca77a160d6ab93ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000808507121b80c02388fad14726482e061b8da827000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c2050454e444c450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076350454e444c450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2050454e444c45222c2273796d626f6c223a226350454e444c45222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662050454e444c4520736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential PENDLE\\\",\\\"symbol\\\":\\\"cPENDLE\\\",\\\"description\\\":\\\"Confidential wrapper of PENDLE shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":22973360000,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential PENDLE\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cPENDLE\",\"underlying\":\"eth:0x808507121B80c02388fAd14726482e061B8da827\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract Safe (eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0) [GnosisSafe] {\n +++ description: None\n values.$members.2:\n- \"eth:0x8a686b039c0323e990Be80991a16bdaAb78113AC\"\n+ \"eth:0xFd23FcEFC76B5fCe924d0D460D9AE4a0e1CF0B99\"\n }\n```\n\n```diff\n contract ConfidentialPAPYWrapper (eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789151975\n sinceBlock:\n+ 25956010\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:39:35.000Z\",\"0xeb2532285d2ac5d8939481a8bfa78ddd8fc0418d031cfc525d97bf7201939a66\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x2982980665e6d3df2f508ec3225920cf36877b15caff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000b344e331a3cda61d329fb3cca2be5942da87c418000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef300000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c205041505900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056350415059000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2050415059222c2273796d626f6c223a226350415059222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66205041505920736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential PAPY\\\",\\\"symbol\\\":\\\"cPAPY\\\",\\\"description\\\":\\\"Confidential wrapper of PAPY shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":310251261912,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential PAPY\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cPAPY\",\"underlying\":\"eth:0xB344e331A3cDa61D329fb3Cca2Be5942da87c418\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialFcUSDTWrapper (eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789388567\n sinceBlock:\n+ 25975670\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-14T12:22:47.000Z\",\"0xac60b0c2440232297fb1e4b7aabe445e32b69cc56d0d7be02bef6f4bba219ff9\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xa7bea747da47fb3d7e6e2afda103a240e2e974e913ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000b48c056c5608ba2ee4cd94af2bf4b1f25295bd7e000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013436f6e666964656e7469616c20666355534454000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007636663555344540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20666355534454222c2273796d626f6c223a2263666355534454222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662066635553445420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential fcUSDT\\\",\\\"symbol\\\":\\\"cfcUSDT\\\",\\\"description\\\":\\\"Confidential wrapper of fcUSDT shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":1680592832924,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential fcUSDT\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cfcUSDT\",\"underlying\":\"eth:0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialRoxcUSDCWrapper (eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789153955\n sinceBlock:\n+ 25956174\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T19:12:35.000Z\",\"0x3ef21251bb814e05e1ad9812ad70d000318e223d8655c395944d1ca345984f7a\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xf3c25fec6e0e39fa9bb6dafe9cbc5e21e3da59e23dff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000c207d3f66537d7f66456808379a0e560cf20da36000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c20726f7863555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000963726f786355534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c20726f786355534443222c2273796d626f6c223a2263726f786355534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f6620726f78635553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential roxcUSDC\\\",\\\"symbol\\\":\\\"croxcUSDC\\\",\\\"description\\\":\\\"Confidential wrapper of roxcUSDC shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":7942254635408,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential roxcUSDC\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"croxcUSDC\",\"underlying\":\"eth:0xc207d3f66537D7F66456808379A0E560cF20Da36\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.26:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.31:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.36:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.39:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\"}\n directlyReceivedPermissions.40:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\"}\n directlyReceivedPermissions.41:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\"}\n directlyReceivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\"}\n directlyReceivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\"}\n directlyReceivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\"}\n directlyReceivedPermissions.49:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\"}\n directlyReceivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\"}\n directlyReceivedPermissions.52:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\"}\n directlyReceivedPermissions.55:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\"}\n directlyReceivedPermissions.56:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\"}\n directlyReceivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\"}\n directlyReceivedPermissions.60:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\"}\n directlyReceivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\"}\n directlyReceivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\"}\n directlyReceivedPermissions.69:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\"}\n directlyReceivedPermissions.73:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\"}\n directlyReceivedPermissions.76:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract ConfidentialPendleUSDCWrapper (eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150499\n sinceBlock:\n+ 25955887\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:14:59.000Z\",\"0x245c01d53b1793bf5bcdcc33260534472552aeb287fa76e0330648a25385f7f1\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0x0c1aa706cc1144ed21d09130a4f9078a921fbd5033ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000055c1b6e461a6334b567baf0feb5d728715446f05000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017436f6e666964656e7469616c2070656e646c6555534443000000000000000000000000000000000000000000000000000000000000000000000000000000000b6370656e646c655553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ae646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2070656e646c6555534443222c2273796d626f6c223a226370656e646c6555534443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662070656e646c655553444320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential pendleUSDC\\\",\\\"symbol\\\":\\\"cpendleUSDC\\\",\\\"description\\\":\\\"Confidential wrapper of pendleUSDC shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":501767205337,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential pendleUSDC\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"cpendleUSDC\",\"underlying\":\"eth:0x55C1B6e461a6334B567bAF0FEb5D728715446f05\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialArmUSDTsWrapper (eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789150187\n sinceBlock:\n+ 25955861\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T18:09:47.000Z\",\"0x0126561c5f1b610e7f7dac5a364b5e6122bf5c3cb86f56908b94a94893df33b5\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xd1389d02871d3a639bc4d6aba33b056ab38002446aff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000500ae64100d7dbdb640531085c2f5d40cdc8930d000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d5553445473000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d5553445473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d5553445473222c2273796d626f6c223a226361726d5553445473222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d555344547320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential armUSDTs\\\",\\\"symbol\\\":\\\"carmUSDTs\\\",\\\"description\\\":\\\"Confidential wrapper of armUSDTs shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":21141620,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential armUSDTs\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"carmUSDTs\",\"underlying\":\"eth:0x500aE64100D7DbDb640531085C2F5d40cDC8930D\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.5:\n+ \"eth:0x8aA8D71520d88a1Ed2B4257348134b94e00A9978\"\n+++ description: Number of addresses currently listed as multisig members.\n+++ severity: HIGH\n values.addresslistLength:\n- 5\n+ 6\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.26:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.28:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.33:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.41:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.46:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.47:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.53:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.54:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.58:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.59:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.66:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.71:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.75:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.78:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n contract ConfidentialWBTCWrapper (eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148087\n sinceBlock:\n+ 25955687\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T17:34:47.000Z\",\"0x2542e4587e213e5d97c9589fb98ce80648043a69f8e55417b045677f64bac13e\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xb293c90de6003b4312a23ada60e8ae0e519e32ee59ff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef300000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c205742544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2057425443222c2273796d626f6c223a226357425443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66205742544320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential WBTC\\\",\\\"symbol\\\":\\\"cWBTC\\\",\\\"description\\\":\\\"Confidential wrapper of WBTC shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":2455315,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential WBTC\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":100,\"symbol\":\"cWBTC\",\"underlying\":\"eth:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.26:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.28:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.33:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.41:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"description\":\"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.43:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.45:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.46:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.47:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.51:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.53:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.54:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.57:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.58:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.59:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.62:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.64:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.66:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.71:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.75:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.78:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n contract ConfidentialAUSDWrapper (eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789146719\n sinceBlock:\n+ 25955573\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T17:11:59.000Z\",\"0x696d006e217f5ccda05c1bf61a575622009037f45ec832dac617dbce7edaf677\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xda30806eba9dd325b0ab4aa4b31b25b773035efd6bff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000efe302beaa2b3e6e1b18d08d69a9012a000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000260e816d97f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011436f6e666964656e7469616c204155534400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056341555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2041555344222c2273796d626f6c223a226341555344222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f66204155534420736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential AUSD\\\",\\\"symbol\\\":\\\"cAUSD\\\",\\\"description\\\":\\\"Confidential wrapper of AUSD shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0xe816d97f\",\"inferredTotalSupply\":196279400000,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential AUSD\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1,\"symbol\":\"cAUSD\",\"underlying\":\"eth:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract ConfidentialTokenWrappersRegistry (eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0) [zama/ConfidentialTokenWrappersRegistry] {\n +++ description: Registry for Zama confidential token wrappers.\n values.getTokenConfidentialTokenPairs.9:\n+ {\"tokenAddress\":\"eth:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a\",\"confidentialTokenAddress\":\"eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.10:\n+ {\"tokenAddress\":\"eth:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\"confidentialTokenAddress\":\"eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.11:\n+ {\"tokenAddress\":\"eth:0x32401B9fb79065Bc15949DE0BD43927492f02F0C\",\"confidentialTokenAddress\":\"eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.12:\n+ {\"tokenAddress\":\"eth:0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91\",\"confidentialTokenAddress\":\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.13:\n+ {\"tokenAddress\":\"eth:0x500aE64100D7DbDb640531085C2F5d40cDC8930D\",\"confidentialTokenAddress\":\"eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.14:\n+ {\"tokenAddress\":\"eth:0x55C1B6e461a6334B567bAF0FEb5D728715446f05\",\"confidentialTokenAddress\":\"eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.15:\n+ {\"tokenAddress\":\"eth:0x5dc53a23AdC9f2Bed98de6F59F7F309a7c71FF2B\",\"confidentialTokenAddress\":\"eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.16:\n+ {\"tokenAddress\":\"eth:0x808507121B80c02388fAd14726482e061B8da827\",\"confidentialTokenAddress\":\"eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.17:\n+ {\"tokenAddress\":\"eth:0xA2EAaD0D586cF9FD73bb2c09cF6A7E3e187D68cd\",\"confidentialTokenAddress\":\"eth:0x77F8207ee451441336538bA07a2F425780dED8DB\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.18:\n+ {\"tokenAddress\":\"eth:0xB344e331A3cDa61D329fb3Cca2Be5942da87c418\",\"confidentialTokenAddress\":\"eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.19:\n+ {\"tokenAddress\":\"eth:0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9\",\"confidentialTokenAddress\":\"eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.20:\n+ {\"tokenAddress\":\"eth:0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7\",\"confidentialTokenAddress\":\"eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.21:\n+ {\"tokenAddress\":\"eth:0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757\",\"confidentialTokenAddress\":\"eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.22:\n+ {\"tokenAddress\":\"eth:0xBf29043164660C60A2a72Cd15FFe2304e87B6838\",\"confidentialTokenAddress\":\"eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.23:\n+ {\"tokenAddress\":\"eth:0xc207d3f66537D7F66456808379A0E560cF20Da36\",\"confidentialTokenAddress\":\"eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.24:\n+ {\"tokenAddress\":\"eth:0xE0181090c22579B6A217f1522cbf8c9f1F0C1965\",\"confidentialTokenAddress\":\"eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f\",\"isValid\":true}\n values.getTokenConfidentialTokenPairs.25:\n+ {\"tokenAddress\":\"eth:0xb48C056C5608bA2Ee4cD94AF2bF4b1F25295Bd7e\",\"confidentialTokenAddress\":\"eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F\",\"isValid\":true}\n values.getTokenConfidentialTokenPairsLength:\n- 9\n+ 26\n }\n```\n\n```diff\n contract ConfidentialArmcWBTCWrapper (eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n template:\n+ \"zama/ConfidentialWrapper\"\n sourceHashes:\n+ [\"0x7df5501f3f5ffd35e0c61153fcd76f37533ab73a80adf20a7a19b30c246faea3\",\"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"]\n description:\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n deployerAddress:\n+ \"eth:0xe02e3b1cbEc07FC8D03B2eD15ddCe743403A013b\"\n sinceTimestamp:\n+ 1789148987\n sinceBlock:\n+ 25955762\n values:\n+ {\"$admin\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"$implementation\":\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"$pastUpgrades\":[[\"2026-09-11T17:49:47.000Z\",\"0xd938d016e57611121abc327202b921dc60afe8d505b7eaee1f0dd7dd67eca127\",[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\"]]],\"$upgradeCount\":1,\"blockedUsers\":[],\"confidentialProtocolId\":1,\"confidentialTotalSupply\":\"0xdd80ab784134afca1c9b4e212234cbd1efc5af6adeff00000000000000010500\",\"constructorArgs\":[\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\",\"0x6e690fe60000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000003d5eccb62974178236a768a7ef14d3ce468fbe91000000000000000000000000b6d69d5f334d8b97b194617b53c6ab62f8681ef30000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015436f6e666964656e7469616c2061726d6357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000096361726d6357425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d65223a22436f6e666964656e7469616c2061726d6357425443222c2273796d626f6c223a226361726d6357425443222c226465736372697074696f6e223a22436f6e666964656e7469616c2077726170706572206f662061726d635742544320736869656c64696e6720697420696e746f206120636f6e666964656e7469616c20746f6b656e227d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"],\"contractURI\":\"data:application/json;utf8,{\\\"name\\\":\\\"Confidential armcWBTC\\\",\\\"symbol\\\":\\\"carmcWBTC\\\",\\\"description\\\":\\\"Confidential wrapper of armcWBTC shielding it into a confidential token\\\"}\",\"decimals\":6,\"fheAcl\":\"eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\"fheCoprocessor\":\"eth:0xD82385dADa1ae3E969447f20A3164F6213100e75\",\"fheKmsVerifier\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"getUnderlyingDenyListSelector\":\"0x00000000\",\"inferredTotalSupply\":245032,\"maxTotalSupply\":\"18446744073709551615\",\"name\":\"Confidential armcWBTC\",\"observers\":[],\"owner\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\",\"paused\":false,\"pauser\":\"eth:0x0000000000000000000000000000000000000000\",\"pendingOwner\":\"eth:0x0000000000000000000000000000000000000000\",\"rate\":1000000000000,\"symbol\":\"carmcWBTC\",\"underlying\":\"eth:0x3d5EcCb62974178236A768A7ef14D3ce468Fbe91\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n fieldMeta:\n+ {\"owner\":{\"severity\":\"HIGH\",\"description\":\"Current owner of the wrapper.\",\"type\":\"PERMISSION\"},\"pendingOwner\":{\"severity\":\"HIGH\",\"description\":\"Pending owner for a two-step ownership transfer.\",\"type\":\"PERMISSION\"},\"underlying\":{\"description\":\"ERC-20 token escrowed by this wrapper.\"},\"getUnderlyingDenyListSelector\":{\"severity\":\"HIGH\",\"description\":\"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\",\"type\":\"RISK_PARAMETER\"},\"blockedUsers\":{\"severity\":\"HIGH\",\"description\":\"Wrapper-local denylist reconstructed from UserBlocked and UserUnblocked events.\",\"type\":\"PERMISSION\"},\"observers\":{\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"},\"pauser\":{\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"},\"paused\":{\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"},\"fheAcl\":{\"description\":\"Zama ACL contract used by the confidential token stack to check which accounts/contracts may use encrypted handles.\"},\"fheCoprocessor\":{\"description\":\"Zama FHE coprocessor/executor contract that receives encrypted-operation requests and stores encrypted-result handles.\"},\"fheKmsVerifier\":{\"description\":\"Zama KMS verifier contract used to verify threshold decryption/signature material returned by the offchain KMS.\"}}\n implementationNames:\n+ {\"eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f\":\"ERC1967Proxy\",\"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD\":\"ConfidentialWrapper\"}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```"
}
]
},
{
"id": "4697bd9a",
"date": "Thu, 27 Aug 2026 12:39:40 GMT",
"timestamp": 1787834146,
"description": "All nine confidential token wrappers were upgraded to a shared new implementation named `ConfidentialWrapper` (eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8). Compared to the previous `ConfidentialWrapperV3`, the upgrade adds two subsystems:\n\n1. Observers: the owner can add/remove observer accounts that receive a wildcard, non-expiring user-decryption delegation over all wrapper-owned encrypted handles, i.e. they can decrypt every confidential balance and transfer amount of the wrapper.\n2. Pausing: an owner-set pauser address can pause wrapping, unwrapping, unwrap finalization and confidential transfers; only the owner can unpause.",
"isHighSeverity": true,
"changeCount": 171,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConfidentialSteakcUSDCWrapper (eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.2:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialXAUTWrapper (eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0xfbac3951\"}\n+ \"0xfbac3951\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialZAMAWrapper (eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialBRONWrapper (eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialTGBPWrapper (eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0x97f735d5\"}\n+ \"0x97f735d5\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ConfidentialUSDTWrapper (eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0x59bf1abe\"}\n+ \"0x59bf1abe\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.12.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.17.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n directlyReceivedPermissions.18.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n }\n```\n\n```diff\n contract ConfidentialBbqTGBPWrapper (eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.2:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 2\n+ 3\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.14.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.19.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.20.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n }\n```\n\n```diff\n contract ConfidentialWETHWrapper (eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":false,\"selector\":\"0x00000000\"}\n+ \"0x00000000\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.1.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.4.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.5.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.6.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.7.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.8.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.14.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.19.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n receivedPermissions.20.description:\n- \"block and unblock users, and transfer ownership.\"\n+ \"block and unblock users, add and remove observers (wildcard decryption access to all balances of this wrapper), set the pauser and the underlying denylist selector, unpause, and transfer ownership.\"\n }\n```\n\n```diff\n contract ConfidentialUSDCWrapper (eth:0xe978F22157048E5DB8E5d07971376e86671672B2) [zama/ConfidentialWrapper] {\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\n template:\n- \"zama/ConfidentialWrapperV3\"\n+ \"zama/ConfidentialWrapper\"\n sourceHashes.1:\n- \"0xc6ef75f9a2275b9cfb58b0322dfb55b63e1630022b171af50f1851ee8052447b\"\n+ \"0x111b5cc66fc29cac57ed685c50a509014181cbf98122b5fd89c0449eea3fab5f\"\n description:\n- \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\"\n+ \"ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, optional underlying-token denylist checks, owner-managed observers with wildcard decryption access, and pausing.\"\n values.$implementation:\n- \"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5\"\n+ \"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"\n values.$pastUpgrades.3:\n+ [\"2026-08-25T15:59:35.000Z\",\"0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0\",[\"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8\"]]\n values.$upgradeCount:\n- 3\n+ 4\n+++ description: Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\n+++ severity: HIGH\n values.getUnderlyingDenyListSelector:\n- {\"isSet\":true,\"selector\":\"0xfe575a87\"}\n+ \"0xfe575a87\"\n+++ description: Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\n+++ severity: HIGH\n values.observers:\n+ []\n+++ description: Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\n values.paused:\n+ false\n+++ description: Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\n values.pauser:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n fieldMeta.getUnderlyingDenyListSelector.description:\n- \"Underlying-token denylist hook used by the wrapper. If enabled, the wrapper calls this selector on the underlying token before restricted operations.\"\n+ \"Underlying-token denylist hook used by the wrapper. If enabled (non-zero), the wrapper calls this selector on the underlying token before restricted operations.\"\n fieldMeta.observers:\n+ {\"severity\":\"HIGH\",\"description\":\"Accounts holding a wildcard user-decryption delegation over all wrapper-owned encrypted handles. Observers can decrypt every confidential balance and transfer amount of this wrapper, so adding one changes its privacy guarantees.\",\"type\":\"PERMISSION\"}\n fieldMeta.pauser:\n+ {\"description\":\"Address allowed to pause the wrapper (zero address means pausing is disabled). Only the owner can unpause.\",\"type\":\"PERMISSION\"}\n fieldMeta.paused:\n+ {\"description\":\"Whether wrapping, unwrapping, unwrap finalization and confidential transfers are currently halted.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5:\n- \"ConfidentialWrapperV3\"\n implementationNames.eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8:\n+ \"ConfidentialWrapper\"\n }\n```"
}
]
},
{
"id": "45f1347a",
"date": "Tue, 25 Aug 2026 08:55:02 GMT",
"timestamp": 1787648016,
"description": "Add multisig signer.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x9402c42dB162d5a0927c032136f40Cc9C71853F2\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 11 (36%)\"\n }\n```"
}
]
},
{
"id": "07be036e",
"date": "Wed, 12 Aug 2026 12:58:00 GMT",
"timestamp": 1786539392,
"description": "Zama FHEVM host-chain upgrade (the Ethereum-side counterpart of the 2026-08-07 Gateway upgrade that moved KMS management off the Gateway): ZamaGovMultisigB executed a DAO (ACL owner) proposal that upgraded four host contracts and initialized two new ones in a single transaction. Governance is unchanged — everything below remains controlled by the Aragon DAO without a timelock.\n\n- KMSVerifier v0.2.0 -> v0.3.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD/eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4)): all KMS context management (signer sets, thresholds, context create/destroy) is removed from the verifier and moved to the new ProtocolConfig contract. The KMSVerifier is now a stateless proof checker whose signer- and threshold-reads delegate to ProtocolConfig. Public decryption proofs can still select any non-destroyed context via extraData v1.\n- New ProtocolConfig v0.1.0 (proxy eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4, impl eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7): ACL-owner-governed registry of KMS nodes (signer + tx-sender + metadata) and contexts, now with four separate per-context thresholds: publicDecryption (7), userDecryption (9), kmsGen and mpc. exactly one context is live. the ACL owner can now retune the thresholds of any live context — including the current one — in place, mirroring GatewayConfig v0.6.0 on the Gateway.\n- New KMSGeneration v0.1.0 (proxy eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa, impl eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940): FHE key- and CRS-generation is now orchestrated onchain on Ethereum (previously not orchestrated onchain at all after being removed from the Gateway KMSGeneration v0.5.0). The ACL owner triggers keygen/crsgen and can abort them; KMS nodes respond with EIP-712 signatures that reach consensus at the ProtocolConfig kmsGen threshold.\n- ACL v0.3.0 -> v0.4.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6/eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418)): adds wildcard user-decryption delegation — a user can delegate user decryption of their handles across all app contracts at once\n- FHEVMExecutor v0.3.0 -> v0.4.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5/eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5)): adds two n-ary encrypted operations, `fheSum` (sum over up to 100/60 ciphertexts depending on width) and `fheIsIn` (encrypted set membership), with per-element ACL checks on inputs.\n- HCULimit v0.2.0 -> v0.3.0 ([implementation diff](https://disco.l2beat.com/diff/eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442/eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837)): adds HCU pricing for the new fheSum/fheIsIn operations and a guard reserving the zero transient-storage slot for the per-transaction HCU accumulator (a handle of 0x0 can no longer read/write it). Limits themselves are unchanged (empty reinitializer).",
"isHighSeverity": true,
"changeCount": 160,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit_v0_3_0] {\n +++ description: Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests. v0.3.0 adds pricing for the fheSum and fheIsIn operations.\n template:\n- \"zama/ZamaHCULimit_v0_2_0\"\n+ \"zama/ZamaHCULimit_v0_3_0\"\n sourceHashes.1:\n- \"0xc52e1b93c97602e6da1f1925e14fc5454426a778875655ec17910be5e217b98e\"\n+ \"0x7ca7880da7a551111a41d9a1673890e2a6c1dd27c3cdf51a82f893b410b2d038\"\n description:\n- \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\"\n+ \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests. v0.3.0 adds pricing for the fheSum and fheIsIn operations.\"\n values.$implementation:\n- \"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"\n+ \"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837\"\n values.$pastUpgrades.3:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"HCULimit v0.2.0\"\n+ \"HCULimit v0.3.0\"\n implementationNames.eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442:\n- \"HCULimit\"\n implementationNames.eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837:\n+ \"HCULimit\"\n }\n```\n\n```diff\n EOA (eth:0x41b19EB4585450db79ac03ba9503106EC7895905) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier_v0_3_0] {\n +++ description: Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Since v0.3.0 it is a stateless proof checker: KMS signer sets and thresholds are read from the ProtocolConfig contract, and confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any explicitly selected non-destroyed KMS context.\n template:\n- \"zama/ZamaKMSVerifier_v0_2_0\"\n+ \"zama/ZamaKMSVerifier_v0_3_0\"\n sourceHashes.1:\n- \"0xa40292fe461810a065f80e305f6b85ab3ca2cfd416dc965d4791a111554cf638\"\n+ \"0x83222b4971c6b79adbd52cb7d500d84b7d2d59886f828b6a1cdc128dcd2bb9d1\"\n description:\n- \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\"\n+ \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Since v0.3.0 it is a stateless proof checker: KMS signer sets and thresholds are read from the ProtocolConfig contract, and confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any explicitly selected non-destroyed KMS context.\"\n values.$implementation:\n- \"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"\n+ \"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4\"\n values.$pastUpgrades.3:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.createdKmsContexts:\n- []\n values.getVersion:\n- \"KMSVerifier v0.2.0\"\n+ \"KMSVerifier v0.3.0\"\n values.initialKmsContextId:\n- \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n values.initialKmsContextSigners:\n- [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: ProtocolConfig contract that stores the KMS contexts (signer sets and thresholds) this verifier reads during proof verification. Referenced as a compile-time constant without a getter.\n values.protocolConfig:\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n fieldMeta.aclOwner.severity:\n- \"HIGH\"\n fieldMeta.aclOwner.description:\n- \"Owner of the Zama ACL contract. This account can create a new KMS signer context that immediately becomes the default verifier authority, and can destroy any non-current context.\"\n+ \"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSVerifier upgrades. Context and threshold management moved to ProtocolConfig in v0.3.0.\"\n fieldMeta.getKmsSigners.severity:\n- \"HIGH\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signers in the current context. Permission coverage is also indexed through initialKmsContextSigners and createdKmsContexts so superseded contexts remain visible.\"\n+ \"KMS signers in the current context, read through from ProtocolConfig where they are indexed for permissions and monitoring.\"\n fieldMeta.initialKmsContextId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.initialKmsContextSigners:\n- {\"severity\":\"HIGH\",\"description\":\"Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContexts:\n- {\"severity\":\"HIGH\",\"description\":\"Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\",\"type\":\"PERMISSION\"}\n fieldMeta.getThreshold.severity:\n- \"HIGH\"\n fieldMeta.getThreshold.description:\n- \"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retained contexts keep their own immutable thresholds.\"\n+ \"Minimum number of unique valid KMS signatures required to accept a public decryption result, read through from the ProtocolConfig public-decryption threshold of the current context.\"\n fieldMeta.getCurrentKmsContextId.severity:\n- \"HIGH\"\n fieldMeta.getCurrentKmsContextId.description:\n- \"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\"\n+ \"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed context, including for ciphertexts created after that context was superseded.\"\n fieldMeta.protocolConfig:\n+ {\"description\":\"ProtocolConfig contract that stores the KMS contexts (signer sets and thresholds) this verifier reads during proof verification. Referenced as a compile-time constant without a getter.\",\"type\":\"EXTERNAL\"}\n implementationNames.eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD:\n- \"KMSVerifier\"\n implementationNames.eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4:\n+ \"KMSVerifier\"\n }\n```\n\n```diff\n EOA (eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.15.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n directlyReceivedPermissions.16:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier authority, destroy non-current contexts, and retune the per-context thresholds (public decryption, user decryption, key generation, MPC) of any live context including the current one. A malicious context or lowered threshold can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.22:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.36:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.42:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\"}\n }\n```\n\n```diff\n EOA (eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier authority, destroy non-current contexts, and retune the per-context thresholds (public decryption, user decryption, key generation, MPC) of any live context including the current one. A malicious context or lowered threshold can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n EOA (eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL_v0_4_0] {\n +++ description: Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensus. Since v0.4.0 users can delegate user decryption of their handles across all app contracts at once via a wildcard delegation.\n template:\n- \"zama/ZamaACL_v0_3_0\"\n+ \"zama/ZamaACL_v0_4_0\"\n sourceHashes.1:\n- \"0x47f47986a3024b31fa3caee357720f4fba4ea3fae419ff53eebe1a66e87d69ef\"\n+ \"0xa69c606dd333427d22d0b664b3c7b39118934dd95a2b7b37c737e37b39bba7e5\"\n description:\n- \"Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensus.\"\n+ \"Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensus. Since v0.4.0 users can delegate user decryption of their handles across all app contracts at once via a wildcard delegation.\"\n values.$implementation:\n- \"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"\n+ \"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418\"\n values.$pastUpgrades.4:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"ACL v0.3.0\"\n+ \"ACL v0.4.0\"\n+++ description: Sentinel contract address that a user can pass to delegateForUserDecryption to delegate user decryption of their handles across all app contracts at once. The wildcard does not bypass per-handle allowances.\n values.WILDCARD_DELEGATION_ADDRESS:\n+ \"eth:0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF\"\n fieldMeta.owner.description:\n- \"Owner of the ACL and host-contract owner checked by onlyACLOwner in the Zama verifier and helper contracts.\"\n+ \"Owner of the ACL and host-contract owner checked by onlyACLOwner in the Zama verifier and helper contracts, including ProtocolConfig and KMSGeneration.\"\n fieldMeta.WILDCARD_DELEGATION_ADDRESS:\n+ {\"description\":\"Sentinel contract address that a user can pass to delegateForUserDecryption to delegate user decryption of their handles across all app contracts at once. The wildcard does not bypass per-handle allowances.\"}\n implementationNames.eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6:\n- \"ACL\"\n implementationNames.eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418:\n+ \"ACL\"\n }\n```\n\n```diff\n contract ProtocolConfig (eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4) [zama/ZamaProtocolConfig] {\n +++ description: Ethereum host-chain registry of KMS node sets, per-context thresholds, and context lifecycle, introduced in the v0.3.0 KMSVerifier upgrade. A KMS context snapshots node transaction senders and signers; the four per-context thresholds (public decryption, user decryption, key generation, MPC) can be retuned by the ACL owner for any live context, including the current one. A newly created context becomes current immediately; older contexts remain selectable for public decryption proofs until destroyed.\n name:\n- \"EmptyUUPSProxy\"\n+ \"ProtocolConfig\"\n sourceHashes.1:\n- \"0xc71891567f1a766aa3a25d1830c5362e3bcf7682574b11b20a51401acb718db4\"\n+ \"0x3ded50e4089de288e1a23ff043bc49ad1ab743d9c4d68dff679355192bc0edbd\"\n values.$implementation:\n- \"eth:0xC94790325C61A7D98e90d835ea89777d64b17492\"\n+ \"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7\"\n values.$pastUpgrades.1:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for all ProtocolConfig administration.\n+++ severity: HIGH\n values.aclOwner:\n+ \"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"\n+++ description: KMS contexts created after the ProtocolConfig migration, reconstructed from NewKmsContext and KmsContextDestroyed events with their node sets and creation thresholds. The context created by initializeFromMigration does not emit this event and is indexed through the live getters and project overrides. Thresholds can be retuned per context after creation.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: KMS signers from contexts created after the ProtocolConfig migration. They remain authorized for public decryption proofs that select their context until the ACL owner destroys that context.\n+++ severity: HIGH\n values.createdKmsContextSigners:\n+ []\n+++ description: KMS transaction senders from contexts created after the ProtocolConfig migration. They remain authorized to submit key- and CRS-generation responses for their context until the ACL owner destroys that context.\n values.createdKmsContextTxSenders:\n+ []\n+++ description: KMS node transaction-sender addresses in the current context. These accounts submit key- and CRS-generation responses to the Ethereum KMSGeneration contract.\n values.currentKmsTxSenders:\n+ [\"eth:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890\",\"eth:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB\",\"eth:0x4eC7200E392B97913cbD6d8160B011406EB019F1\",\"eth:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236\",\"eth:0x74a1E2e87a4026b7B8b5252c747E514159515e9a\",\"eth:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D\",\"eth:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04\",\"eth:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0\",\"eth:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340\",\"eth:0xC105B5933446658D226582f7A112F49a70b54364\",\"eth:0xbcF4943A856497FB2345409D35f4d1eae9A0363E\",\"eth:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D\",\"eth:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC\"]\n+++ description: KMS contexts destroyed by the ACL owner. Destroyed contexts are invalid: their per-context getters revert and public decryption proofs can no longer select them.\n+++ severity: HIGH\n values.destroyedKmsContexts:\n+ []\n+++ description: Identifier of the current KMS context, used by verifiers when a proof does not explicitly select a historical context.\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Minimum number of KMS responses from the current context required to reach consensus on key- and CRS-generation results in KMSGeneration.\n values.getKmsGenThreshold:\n+ 7\n+++ description: KMS signer addresses in the current context. Their signatures are accepted by the Ethereum KMSVerifier for public decryption results and by KMSGeneration for key- and CRS-generation responses. Signers from other live contexts remain authorized for proofs that select their context until that context is destroyed.\n+++ severity: HIGH\n values.getKmsSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: MPC threshold recorded for the current context. The KMS SDK derives its effective MPC threshold from the nodes it knows about instead of reading this value.\n values.getMpcThreshold:\n+ 4\n+++ description: Minimum number of KMS signatures from the current context required to accept a public decryption result. Retunable in place by the ACL owner without rotating the context.\n+++ severity: HIGH\n values.getPublicDecryptionThreshold:\n+ 7\n+++ description: Minimum number of KMS signatures from the current context required for user decryption verification. Retunable in place by the ACL owner without rotating the context.\n+++ severity: HIGH\n values.getUserDecryptionThreshold:\n+ 9\n values.getVersion:\n+ \"ProtocolConfig v0.1.0\"\n+++ description: Live public-decryption threshold of the migrated context, retunable in place by the ACL owner. It remains security-critical after future rotations while the context is live. This call reverts once the context is destroyed; remove the field then.\n+++ severity: HIGH\n values.migratedKmsContextPublicDecryptionThreshold:\n+ 7\n+++ description: Live KMS signer set of the migrated context. Node membership is immutable, so these signers remain authorized for proofs selecting this context after future rotations. This call reverts once the context is destroyed; remove the field then.\n+++ severity: HIGH\n values.migratedKmsContextSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n+++ description: Live user-decryption threshold of the migrated context, retunable in place by the ACL owner. This call reverts once the context is destroyed; remove the field then.\n values.migratedKmsContextUserDecryptionThreshold:\n+ 9\n errors:\n- {\"migratedKmsContextPublicDecryptionThreshold\":\"Processing error occurred.\",\"migratedKmsContextSigners\":\"Processing error occurred.\",\"migratedKmsContextUserDecryptionThreshold\":\"Processing error occurred.\",\"proxiableUUID\":\"Processing error occurred.\"}\n fieldMeta.aclOwner:\n+ {\"severity\":\"HIGH\",\"description\":\"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for all ProtocolConfig administration.\",\"type\":\"PERMISSION\"}\n fieldMeta.getKmsSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signer addresses in the current context. Their signatures are accepted by the Ethereum KMSVerifier for public decryption results and by KMSGeneration for key- and CRS-generation responses. Signers from other live contexts remain authorized for proofs that select their context until that context is destroyed.\",\"type\":\"PERMISSION\"}\n fieldMeta.currentKmsTxSenders:\n+ {\"description\":\"KMS node transaction-sender addresses in the current context. These accounts submit key- and CRS-generation responses to the Ethereum KMSGeneration contract.\",\"type\":\"PERMISSION\"}\n fieldMeta.getPublicDecryptionThreshold:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retunable in place by the ACL owner without rotating the context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThreshold:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures from the current context required for user decryption verification. Retunable in place by the ACL owner without rotating the context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getKmsGenThreshold:\n+ {\"description\":\"Minimum number of KMS responses from the current context required to reach consensus on key- and CRS-generation results in KMSGeneration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMpcThreshold:\n+ {\"description\":\"MPC threshold recorded for the current context. The KMS SDK derives its effective MPC threshold from the nodes it knows about instead of reading this value.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"description\":\"Identifier of the current KMS context, used by verifiers when a proof does not explicitly select a historical context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts created after the ProtocolConfig migration, reconstructed from NewKmsContext and KmsContextDestroyed events with their node sets and creation thresholds. The context created by initializeFromMigration does not emit this event and is indexed through the live getters and project overrides. Thresholds can be retuned per context after creation.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signers from contexts created after the ProtocolConfig migration. They remain authorized for public decryption proofs that select their context until the ACL owner destroys that context.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContextTxSenders:\n+ {\"description\":\"KMS transaction senders from contexts created after the ProtocolConfig migration. They remain authorized to submit key- and CRS-generation responses for their context until the ACL owner destroys that context.\",\"type\":\"PERMISSION\"}\n fieldMeta.destroyedKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts destroyed by the ACL owner. Destroyed contexts are invalid: their per-context getters revert and public decryption proofs can no longer select them.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0xC94790325C61A7D98e90d835ea89777d64b17492:\n- \"EmptyUUPSProxy\"\n implementationNames.eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7:\n+ \"ProtocolConfig\"\n template:\n+ \"zama/ZamaProtocolConfig\"\n description:\n+ \"Ethereum host-chain registry of KMS node sets, per-context thresholds, and context lifecycle, introduced in the v0.3.0 KMSVerifier upgrade. A KMS context snapshots node transaction senders and signers; the four per-context thresholds (public decryption, user decryption, key generation, MPC) can be retuned by the ACL owner for any live context, including the current one. A newly created context becomes current immediately; older contexts remain selectable for public decryption proofs until destroyed.\"\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_4_0] {\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.4.0 adds the n-ary encrypted operations fheSum and fheIsIn (encrypted set membership) over bounded ciphertext collections.\n template:\n- \"zama/ZamaFHEVMExecutor_v0_3_0\"\n+ \"zama/ZamaFHEVMExecutor_v0_4_0\"\n sourceHashes.1:\n- \"0xf475718e9125acfc2f69d3c9cca8cedb9a15c644da7490f7f5fe0ae2690a77cc\"\n+ \"0x8521799e0a57218bcbd587c2f46222a266bbcbe2f27780cc0bf6ed66eb9cda1f\"\n description:\n- \"FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\"\n+ \"FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.4.0 adds the n-ary encrypted operations fheSum and fheIsIn (encrypted set membership) over bounded ciphertext collections.\"\n values.$implementation:\n- \"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"\n+ \"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"\n values.$pastUpgrades.4:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"FHEVMExecutor v0.3.0\"\n+ \"FHEVMExecutor v0.4.0\"\n implementationNames.eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5:\n- \"FHEVMExecutor\"\n implementationNames.eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n EOA (eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n EOA (eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.5:\n- {\"permission\":\"interact\",\"from\":\"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\"description\":\"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.17.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership.\"\n receivedPermissions.18:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"create KMS contexts with arbitrary node sets and thresholds that immediately become the default verifier authority, destroy non-current contexts, and retune the per-context thresholds (public decryption, user decryption, key generation, MPC) of any live context including the current one. A malicious context or lowered threshold can attest an inflated unwrap amount and drain pooled wrapper backing.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.24:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"trigger and abort FHE key and CRS generation rounds executed by the KMS nodes.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.38:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\",\"description\":\"upgrade the ProtocolConfig implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.44:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"description\":\"upgrade the KMSGeneration implementation.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n }\n```\n\n```diff\n EOA (eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f) {\n +++ description: None\n receivedPermissions.0.description:\n- \"sign public decryption results accepted by the KMSVerifier.\"\n+ \"sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration.\"\n receivedPermissions.0.from:\n- \"eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03\"\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n }\n```\n\n```diff\n contract KMSGeneration (eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa) [zama/ZamaKMSGeneration] {\n +++ description: Orchestrates FHE key and CRS generation on the Ethereum host chain, taking over the workflows removed from the Gateway KMSGeneration in v0.5.0. The ACL owner triggers and aborts generations; KMS node transaction senders registered in ProtocolConfig submit EIP-712-signed responses that activate a key or CRS once the ProtocolConfig key-generation threshold is reached.\n name:\n- \"EmptyUUPSProxy\"\n+ \"KMSGeneration\"\n sourceHashes.1:\n- \"0xc71891567f1a766aa3a25d1830c5362e3bcf7682574b11b20a51401acb718db4\"\n+ \"0x265ec46d9bb4498caf973d6a60d3cbbe1f3ceff12597fcd3140bdff9e6322f76\"\n values.$implementation:\n- \"eth:0xC94790325C61A7D98e90d835ea89777d64b17492\"\n+ \"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940\"\n values.$pastUpgrades.1:\n+ [\"2026-08-10T11:50:47.000Z\",\"0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78\",[\"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940\"]]\n values.$upgradeCount:\n- 1\n+ 2\n+++ description: Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSGeneration administration.\n values.aclOwner:\n+ \"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"\n+++ description: EIP-712 domain against which KMS key- and CRS-generation response signatures are verified.\n values.eip712Domain:\n+ {\"fields\":\"0x0f\",\"name\":\"KMSGeneration\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]}\n+++ description: Identifier of the currently active CRS generated through this contract.\n values.getActiveCrsId:\n+ \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n+++ description: Identifier of the currently active FHE key generated through this contract.\n values.getActiveKeyId:\n+ \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getCrsCounter:\n+ \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n values.getKeyCounter:\n+ \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getVersion:\n+ \"KMSGeneration v0.1.0\"\n+++ description: ProtocolConfig contract providing the KMS node set and the key-generation consensus threshold. Referenced as a compile-time constant without a getter.\n values.protocolConfig:\n+ \"eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.eth:0xC94790325C61A7D98e90d835ea89777d64b17492:\n- \"EmptyUUPSProxy\"\n implementationNames.eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940:\n+ \"KMSGeneration\"\n template:\n+ \"zama/ZamaKMSGeneration\"\n description:\n+ \"Orchestrates FHE key and CRS generation on the Ethereum host chain, taking over the workflows removed from the Gateway KMSGeneration in v0.5.0. The ACL owner triggers and aborts generations; KMS node transaction senders registered in ProtocolConfig submit EIP-712-signed responses that activate a key or CRS once the ProtocolConfig key-generation threshold is reached.\"\n fieldMeta:\n+ {\"protocolConfig\":{\"description\":\"ProtocolConfig contract providing the KMS node set and the key-generation consensus threshold. Referenced as a compile-time constant without a getter.\",\"type\":\"EXTERNAL\"},\"aclOwner\":{\"description\":\"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner for KMSGeneration administration.\",\"type\":\"PERMISSION\"},\"getActiveKeyId\":{\"description\":\"Identifier of the currently active FHE key generated through this contract.\"},\"getActiveCrsId\":{\"description\":\"Identifier of the currently active CRS generated through this contract.\"},\"eip712Domain\":{\"description\":\"EIP-712 domain against which KMS key- and CRS-generation response signatures are verified.\"}}\n category:\n+ {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract EmptyUUPSProxy (eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmptyUUPSProxy (eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa) [N/A]\n +++ description: None\n```"
}
]
},
{
"id": "5b83a932",
"date": "Fri, 07 Aug 2026 12:57:23 GMT",
"timestamp": 1786107356,
"description": "Zama Gateway upgrade: a larger upgrade that touches key generation and is only half deployed.\n\n- Decryption v0.4.0 -> v0.5.0: requests now pin a KMS context at request time and responses must reference the pinned context\n- GatewayConfig v0.5.0 -> v0.6.0: the owner can now destroy non-current KMS contexts (immediately invalidating them for decryption), retune thresholds of any live context (context-scoped events), and disable/enable/remove host chains. Coprocessor updates now require InputVerification to be paused.\n- KMSGeneration v0.4.0 -> v0.5.0: now view-only; all key/CRS/PRSS/resharing workflows were removed from the gateway after their move to Ethereum (getActiveKeyId/getActiveCrsId are gone).\n- InputVerification v0.3.0 -> v0.4.0 and CiphertextCommits v0.3.0 -> v0.4.0: minor; both now reject requests/handles from disabled host chains, and CiphertextCommits dropped its KMSGeneration reference.\n- a Polygon host chain (chainId 137) is now registered in GatewayConfig.",
"isHighSeverity": true,
"changeCount": 133,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (zama:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption_v0_5_0] {\n +++ description: Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each request pins a KMS context at request time (explicitly through extraData or the then-current context) and rejects unknown or destroyed contexts; responses must reference the pinned context. Requests recorded before v0.5.0 fall back to the context declared by each response. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\n template:\n- \"zama/Decryption_v0_4_0\"\n+ \"zama/Decryption_v0_5_0\"\n sourceHashes.1:\n- \"0xcd821ac822a19a355acde1dd7ce435e2a6e16e21017756b899c058ee64552e28\"\n+ \"0x1dd2af26cc2be12ff30232e8df9c95ec66fcbc987f40372ad56a9d8f1073260c\"\n description:\n- \"Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\"\n+ \"Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each request pins a KMS context at request time (explicitly through extraData or the then-current context) and rejects unknown or destroyed contexts; responses must reference the pinned context. Requests recorded before v0.5.0 fall back to the context declared by each response. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\"\n values.$implementation:\n- \"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"\n+ \"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8\"\n values.$pastUpgrades.4:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"Decryption v0.4.0\"\n+ \"Decryption v0.5.0\"\n fieldMeta.gatewayMultichainACL.description:\n- \"MultichainACL contract containing the gateway-side host-chain ACL mirror. The upgraded Decryption contract no longer checks it onchain and relies on KMS nodes to enforce ACL state.\"\n+ \"MultichainACL contract containing the gateway-side host-chain ACL mirror. Decryption does not check it onchain and relies on KMS nodes to enforce ACL state.\"\n fieldMeta.gatewayKmsTxSenders.description:\n- \"KMS transaction-sender addresses configured in the current GatewayConfig context. Historical context senders can also submit responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n+ \"KMS transaction-sender addresses configured in the current GatewayConfig context. Senders from other live contexts can still submit responses to requests that pinned their context; destroying a context revokes this. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsSigners.description:\n- \"KMS signer addresses configured in the current GatewayConfig context. Historical context signers can also sign responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n+ \"KMS signer addresses configured in the current GatewayConfig context. Signers from other live contexts can still sign responses to requests that pinned their context; destroying a context revokes this. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsContextId.description:\n- \"Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\"\n+ \"Current GatewayConfig KMS context, pinned by new requests whose extraData is empty or starts with version 0. The pin is stored per request, so a later rotation does not change the context or thresholds used to answer a pending request. Requests recorded before v0.5.0 have no pin and fall back to the context declared by each response.\"\n fieldMeta.gatewayPublicDecryptionThreshold.description:\n- \"Minimum matching-signature count for the current context. Public responses are grouped by a digest containing raw extraData; identical empty or version 0 extraData can accumulate responses across a context rotation while the last response selects the threshold checked.\"\n+ \"Minimum matching-signature count for public decryption consensus in the current context. Each request is answered under the threshold of its pinned context, which the GatewayConfig owner can retune per context.\"\n fieldMeta.gatewayUserDecryptionThreshold.description:\n- \"Minimum response count for the current context. User response counts are stored per request rather than per context, so valid shares submitted under different contexts can be combined and the last response selects the threshold checked.\"\n+ \"Minimum response count for user decryption consensus in the current context. Each request is answered under the threshold of its pinned context, which the GatewayConfig owner can retune per context.\"\n implementationNames.zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0:\n- \"Decryption\"\n implementationNames.zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8:\n+ \"Decryption\"\n }\n```\n\n```diff\n contract KMSGeneration (zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3) [zama/KMSGeneration_v0_5_0] {\n +++ description: View-only gateway contract retaining historical queries for previously generated FHE keys and CRS materials. All state-changing key-generation, CRS-generation, PRSS, and key-resharing workflows were removed in v0.5.0 after their move to Ethereum.\n template:\n- \"zama/KMSGeneration\"\n+ \"zama/KMSGeneration_v0_5_0\"\n sourceHashes.1:\n- \"0x24b946dbf9b33a087ddcfba5bef6adfb4fb85c47ee48d0f3d35487b5a76900dc\"\n+ \"0x19abe2dec360556cd7dd3bbf0197f56dcaf76dc5889859f0e18046a971c70498\"\n description:\n- \"Gateway contract that orchestrates FHE key generation, CRS generation, PRSS initialization, and key resharing through threshold KMS responses.\"\n+ \"View-only gateway contract retaining historical queries for previously generated FHE keys and CRS materials. All state-changing key-generation, CRS-generation, PRSS, and key-resharing workflows were removed in v0.5.0 after their move to Ethereum.\"\n values.$implementation:\n- \"zama:0x3d345DFc156381E6060Cdf652cDf7f92DF94fAFF\"\n+ \"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.gatewayKmsGenThreshold:\n- 7\n values.gatewayKmsSigners:\n- [\"zama:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"zama:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"zama:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"zama:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"zama:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"zama:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"zama:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"zama:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"zama:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"zama:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"zama:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"zama:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"zama:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n values.gatewayKmsTxSenders:\n- [\"zama:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890\",\"zama:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB\",\"zama:0x4eC7200E392B97913cbD6d8160B011406EB019F1\",\"zama:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236\",\"zama:0x74a1E2e87a4026b7B8b5252c747E514159515e9a\",\"zama:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D\",\"zama:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04\",\"zama:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0\",\"zama:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340\",\"zama:0xC105B5933446658D226582f7A112F49a70b54364\",\"zama:0xbcF4943A856497FB2345409D35f4d1eae9A0363E\",\"zama:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D\",\"zama:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC\"]\n values.getActiveCrsId:\n- \"2261564242916331941866620800950935700259179388000792266395655937654553313281\"\n values.getActiveKeyId:\n- \"1809251394333065553493296640760748560207343510400633813116524750123642650625\"\n values.getVersion:\n- \"KMSGeneration v0.4.0\"\n+ \"KMSGeneration v0.5.0\"\n fieldMeta.gatewayConfig.description:\n- \"GatewayConfig contract used as the source of truth for the gateway owner, KMS set, and KMS generation threshold.\"\n+ \"GatewayConfig contract used as the source of truth for the gateway owner and for resolving KMS node storage URLs in historical material queries.\"\n fieldMeta.gatewayOwner.description:\n- \"Owner of GatewayConfig. This account authorizes KMSGeneration upgrades and can trigger key, CRS, PRSS, and key-resharing workflows.\"\n+ \"Owner of GatewayConfig. This account authorizes KMSGeneration upgrades.\"\n fieldMeta.gatewayKmsTxSenders:\n- {\"severity\":\"HIGH\",\"description\":\"KMS transaction-sender addresses configured in GatewayConfig. These accounts may submit preprocessing keygen, keygen, and CRS generation responses.\",\"type\":\"PERMISSION\"}\n fieldMeta.gatewayKmsSigners:\n- {\"severity\":\"HIGH\",\"description\":\"KMS signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether key and CRS generation responses reach threshold.\",\"type\":\"PERMISSION\"}\n fieldMeta.gatewayKmsGenThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of matching KMS responses required before key or CRS generation reaches consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getActiveKeyId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the active FHE key generated through KMS consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getActiveCrsId:\n- {\"severity\":\"HIGH\",\"description\":\"Identifier of the active CRS generated through KMS consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.eip712Domain.description:\n- \"EIP-712 domain used when validating KMS signatures over key-generation and CRS-generation responses.\"\n+ \"EIP-712 domain retained from the KMS generation workflows removed in v0.5.0.\"\n implementationNames.zama:0x3d345DFc156381E6060Cdf652cDf7f92DF94fAFF:\n- \"KMSGeneration\"\n implementationNames.zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076:\n+ \"KMSGeneration\"\n }\n```\n\n```diff\n EOA (zama:0x41b19EB4585450db79ac03ba9503106EC7895905) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x4eC7200E392B97913cbD6d8160B011406EB019F1) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] {\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"start KMS key generation, CRS generation, PRSS initialization, and key resharing.\",\"role\":\".gatewayOwner\"}\n receivedPermissions.5.description:\n- \"create KMS contexts that immediately become current, update current thresholds and other gateway configuration, transfer ownership, and unpause gateway workflow contracts. Historical KMS contexts cannot be removed in this version.\"\n+ \"create KMS contexts that immediately become current, destroy historical KMS contexts, update thresholds of any live context, manage coprocessors, custodians and host chains, transfer ownership, and unpause gateway workflow contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x74a1E2e87a4026b7B8b5252c747E514159515e9a) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x7C17BE232e5968BDa9516478B798b9E90D013fCC) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbcF4943A856497FB2345409D35f4d1eae9A0363E) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xC105B5933446658D226582f7A112F49a70b54364) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification] {\n +++ description: Gateway contract that receives encrypted input verification requests from registered and enabled host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n sourceHashes.1:\n- \"0x52c38ce781ecef28b118222541c9b079f2ae7d6402452584e620e84ca347875f\"\n+ \"0x58bb055397e294a46ebccbc53c94bb2494bf05acd7ad77f2fb7cc46b3ef1eb92\"\n values.$implementation:\n- \"zama:0xA08c4367eB984945da2dad5BF7d94D1B2863197A\"\n+ \"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"InputVerification v0.3.0\"\n+ \"InputVerification v0.4.0\"\n implementationNames.zama:0xA08c4367eB984945da2dad5BF7d94D1B2863197A:\n- \"InputVerification\"\n implementationNames.zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821:\n+ \"InputVerification\"\n }\n```\n\n```diff\n EOA (zama:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits] {\n +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material. Digests referencing unregistered or disabled host chains are rejected.\n sourceHashes.1:\n- \"0x70a834887489420cb7ea7044739bcc74d735be01e262a27ea23132992d21a898\"\n+ \"0xa3aa22a184258ca16a5d83ce495ae0d307d4c5ec9fda8a7622d4f95728f4af03\"\n values.$implementation:\n- \"zama:0xC92f2dc7eF79728ed32e745020EF463270217e78\"\n+ \"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"\n values.$pastUpgrades.3:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"CiphertextCommits v0.3.0\"\n+ \"CiphertextCommits v0.4.0\"\n implementationNames.zama:0xC92f2dc7eF79728ed32e745020EF463270217e78:\n- \"CiphertextCommits\"\n implementationNames.zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622:\n+ \"CiphertextCommits\"\n }\n```\n\n```diff\n EOA (zama:0xdC472efa1642D5afB684aAaa546E22FB24AAB965) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_6_0] {\n +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner.\n template:\n- \"zama/GatewayConfig_v0_5_0\"\n+ \"zama/GatewayConfig_v0_6_0\"\n sourceHashes.1:\n- \"0x1089121569189032b8cee0dae0c71eedecf7757f712a6d14ef684915093c6747\"\n+ \"0xe903576aaecdd97c5036c6bc029149a11b44484c78d9c6b0d802a882d4744597\"\n description:\n- \"Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\"\n+ \"Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; the owner can create new contexts, retune the thresholds of any live context, and destroy non-current contexts, which immediately invalidates them for decryption. Registered host chains can be disabled, re-enabled, or removed by the owner.\"\n values.$implementation:\n- \"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"\n+ \"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"\n values.$pastUpgrades.4:\n+ [\"2026-08-06T17:11:04.000Z\",\"0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c\",[\"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"]]\n values.$upgradeCount:\n- 4\n+ 5\n+++ description: Registered host chains and their host-chain FHEVMExecutor and ACL endpoints. Returned addresses belong to the listed host chain, not to the gateway chain; Ethereum entries are exposed as formatted cross-chain references in ethereumHostChains.\n values.getHostChains.1:\n+ {\"chainId\":137,\"fhevmExecutorAddress\":\"zama:0xAB0075E77fe06083f52bdf10e2ccDB3712483057\",\"aclAddress\":\"zama:0x6737F17e31cf26a1b62fb0362acC5a16CB156F49\",\"name\":\"polygon\",\"website\":\"https://polygonscan.com\"}\n values.getVersion:\n- \"GatewayConfig v0.5.0\"\n+ \"GatewayConfig v0.6.0\"\n+++ description: KMS contexts destroyed by the owner. Destroyed contexts are invalid: their per-context getters revert, new requests cannot pin them, and pending requests pinned to them can no longer reach consensus.\n+++ severity: HIGH\n values.destroyedKmsContexts:\n+ []\n+++ description: Registered host chains currently disabled by the owner. Gateway workflows reject requests and ciphertext handles referencing disabled chains; a chain must be disabled before it can be removed.\n+++ severity: HIGH\n values.disabledHostChains:\n+ []\n fieldMeta.owner.description:\n- \"Owner of GatewayConfig. This account creates KMS contexts, changes the current context's thresholds, manages coprocessors, custodians and host chains, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately, while all older contexts remain selectable by Decryption.\"\n+ \"Owner of GatewayConfig. This account creates and destroys KMS contexts, changes the thresholds of any live context, manages coprocessors, custodians and host chains (including disabling and removing them), transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately; older contexts remain selectable by Decryption requests until destroyed.\"\n fieldMeta.inputVerification.description:\n- \"InputVerification workflow contract paused and unpaused by GatewayConfig.\"\n+ \"InputVerification workflow contract paused and unpaused by GatewayConfig. Coprocessor set and threshold updates require this contract to be paused first.\"\n fieldMeta.ethereumHostChains.description:\n- \"Ethereum host-chain endpoints registered in GatewayConfig, derived from getHostChains entries with chainId 1. These are the L1 FHEVMExecutor and ACL contracts whose state is used by the Gateway workflows.\"\n+ \"Ethereum host-chain endpoints registered in GatewayConfig, derived from getHostChains entries with chainId 1. These are the L1 FHEVMExecutor and ACL contracts whose state is used by the Gateway workflows. Disabled-but-not-removed chains still appear here; see disabledHostChains.\"\n fieldMeta.getKmsTxSenders.description:\n- \"KMS transaction-sender addresses in the current Gateway context. Historical context senders remain authorized for Decryption responses that explicitly select their context; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n+ \"KMS transaction-sender addresses in the current Gateway context. Senders from other live contexts remain authorized for Decryption requests that pinned their context until the context is destroyed; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signer addresses in the current Gateway context. Historical context signers remain authorized for explicitly selected Decryption responses; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n+ \"KMS signer addresses in the current Gateway context. Signers from other live contexts remain authorized for Decryption requests that pinned their context until the context is destroyed; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.createdKmsContexts.description:\n- \"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\"\n+ \"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Contexts stay selectable by Decryption requests until destroyed (see destroyedKmsContexts). Thresholds can be retuned per context after creation; current values must be read through context-specific getters or project overrides.\"\n fieldMeta.createdKmsContextTxSenders.description:\n- \"KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\"\n+ \"KMS transaction senders from contexts created after migration. They remain authorized for Decryption requests that pinned their context until the owner destroys that context.\"\n fieldMeta.createdKmsContextSigners.description:\n- \"KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\"\n+ \"KMS signers from contexts created after migration. They remain authorized for Decryption requests that pinned their context until the owner destroys that context.\"\n fieldMeta.getMpcThreshold.description:\n- \"MPC threshold for KMS key material generation in the current context.\"\n+ \"MPC threshold for KMS key material generation in the current context. The owner can retune it per context.\"\n fieldMeta.getCurrentKmsContextId.description:\n- \"Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\"\n+ \"Identifier of the context pinned by new Decryption requests whose extraData is empty or starts with version 0. Version 1 request extraData can explicitly pin any live context; responses must match the pinned context.\"\n fieldMeta.getPublicDecryptionThresholdForContext.description:\n- \"Minimum number of KMS signatures required for public decryption consensus in the current context.\"\n+ \"Minimum number of KMS signatures required for public decryption consensus in the current context. The owner can retune it per context.\"\n fieldMeta.getUserDecryptionThresholdForContext.description:\n- \"Minimum number of KMS shares required for user decryption consensus in the current context.\"\n+ \"Minimum number of KMS shares required for user decryption consensus in the current context. The owner can retune it per context.\"\n fieldMeta.getKmsGenThreshold.description:\n- \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context.\"\n+ \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context. Consumed by the Ethereum-side KMS generation since gateway KMSGeneration v0.5.0.\"\n fieldMeta.getCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus.\"\n+ \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates require InputVerification to be paused first.\"\n fieldMeta.destroyedKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts destroyed by the owner. Destroyed contexts are invalid: their per-context getters revert, new requests cannot pin them, and pending requests pinned to them can no longer reach consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.disabledHostChains:\n+ {\"severity\":\"HIGH\",\"description\":\"Registered host chains currently disabled by the owner. Gateway workflows reject requests and ciphertext handles referencing disabled chains; a chain must be disabled before it can be removed.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00:\n- \"GatewayConfig\"\n implementationNames.zama:0x1950aD98e834f6c07553365196d4CddeD179c536:\n+ \"GatewayConfig\"\n }\n```\n\n```diff\n EOA (zama:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"sign KMS key-generation and CRS-generation material accepted by KMSGeneration.\",\"role\":\".gatewayKmsSigners\"}\n receivedPermissions.2.description:\n- \"sign KMS decryption, key-generation, and CRS-generation material accepted by gateway contracts.\"\n+ \"sign KMS decryption material accepted by gateway contracts.\"\n }\n```\n\n```diff\n EOA (zama:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236) {\n +++ description: None\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3\",\"description\":\"submit KMS key-generation and CRS-generation responses to KMSGeneration.\",\"role\":\".gatewayKmsTxSenders\"}\n receivedPermissions.2.description:\n- \"submit KMS decryption, key-generation, and CRS-generation responses to gateway contracts.\"\n+ \"submit KMS decryption responses to gateway contracts.\"\n }\n```"
}
]
},
{
"id": "012462c7",
"date": "Tue, 04 Aug 2026 13:19:56 GMT",
"timestamp": 1785844532,
"description": "ZamaGovMultisigB executed a proposal rotating two ZamaGovMultisigA members while preserving its 9-of-17 threshold.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.5:\n- \"eth:0x32f3D0D7E20Ca11Cad21f32Dad91506ea89f5897\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.6:\n- \"eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.15:\n+ \"eth:0xc49376C4D044011eEce6eE69eFAe06f0Cc2bd008\"\n+++ description: Current multisig members reconstructed from MembersAdded and MembersRemoved events.\n values.$members.16:\n+ \"eth:0x27B1c34F2aeEc91F9704BD1CE288E5c667F29045\"\n }\n```\n\n```diff\n- Status: DELETED\n contract Safe (eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "3a509885",
"date": "Thu, 23 Jul 2026 14:09:37 GMT",
"timestamp": 1784815701,
"description": "The Safe signer set changed from 2-of-3 to 3-of-5, removing two signers and adding four.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n EOA (eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450)\n +++ description: None\n```\n\n```diff\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x5e4f2616AA570d60EC6D7BBF08D070fb81353553\"\n values.$members.1:\n+ \"eth:0x1E3eafD783D47c36dC5CD529721E6cc16456Cc0F\"\n values.$members.1:\n- \"eth:0x7df0Fe803832BB3Ca8906a6e49968C2421C1aE9B\"\n+ \"eth:0x0BBc1d7ceB10a0a00dD3aeBcA37e85D60d4a1103\"\n values.$members.2:\n- \"eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450\"\n+ \"eth:0xFa4902732675Ee16a508487E4fDcb910fFb00A20\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "a657d096",
"date": "Mon, 13 Jul 2026 09:17:17 GMT",
"timestamp": 1783927795,
"description": "Introduces KMS signer set rotation on Ethereum and the Gateway: each signer set is called a context and is valid and retains all permissions until specifically invalidated ('destroyed'). HCULimit adds per-transaction and per-block caps plus a bypass whitelist.",
"isHighSeverity": true,
"changeCount": 112,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit_v0_2_0] {\n +++ description: Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\n template:\n- \"zama/ZamaHCULimit\"\n+ \"zama/ZamaHCULimit_v0_2_0\"\n sourceHashes.1:\n- \"0xb4b32e3ee98a51750d9ec0af3a9c599dbb6e097cdf4f55f37e198a75f0f2e5eb\"\n+ \"0xc52e1b93c97602e6da1f1925e14fc5454426a778875655ec17910be5e217b98e\"\n description:\n- \"Tracks and enforces homomorphic computation unit limits for FHEVM operation requests.\"\n+ \"Tracks and enforces per-transaction and per-block homomorphic computation unit limits for FHEVM operation requests.\"\n values.$implementation:\n- \"eth:0x4E4329F10f7EE88a5dDB13716B8bE00c077CBeb6\"\n+ \"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"\n values.$pastUpgrades.2:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getVersion:\n- \"HCULimit v0.1.0\"\n+ \"HCULimit v0.2.0\"\n+++ description: Callers that bypass the global per-block HCU cap, reconstructed from whitelist events.\n+++ severity: HIGH\n values.blockHCUWhitelist:\n+ []\n+++ description: Maximum HCU consumed by non-whitelisted callers in one block.\n+++ severity: HIGH\n values.getGlobalHCUCapPerBlock:\n+ 281474976710655\n+++ description: Maximum sequential HCU depth allowed in one transaction.\n+++ severity: HIGH\n values.getMaxHCUDepthPerTx:\n+ 5000000\n+++ description: Maximum total HCU allowed in one transaction.\n+++ severity: HIGH\n values.getMaxHCUPerTx:\n+ 20000000\n fieldMeta.getGlobalHCUCapPerBlock:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum HCU consumed by non-whitelisted callers in one block.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMaxHCUDepthPerTx:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum sequential HCU depth allowed in one transaction.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getMaxHCUPerTx:\n+ {\"severity\":\"HIGH\",\"description\":\"Maximum total HCU allowed in one transaction.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.blockHCUWhitelist:\n+ {\"severity\":\"HIGH\",\"description\":\"Callers that bypass the global per-block HCU cap, reconstructed from whitelist events.\",\"type\":\"PERMISSION\"}\n fieldMeta.getBlockMeter:\n+ {\"description\":\"HCU consumed by non-whitelisted callers in the current block.\"}\n implementationNames.eth:0x4E4329F10f7EE88a5dDB13716B8bE00c077CBeb6:\n- \"HCULimit\"\n implementationNames.eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442:\n+ \"HCULimit\"\n }\n```\n\n```diff\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier_v0_2_0] {\n +++ description: Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\n template:\n- \"zama/ZamaKMSVerifier\"\n+ \"zama/ZamaKMSVerifier_v0_2_0\"\n sourceHashes.1:\n- \"0xe6773e8f1549070f8e0fcae01d4bcf98332a43c1b6f2d4eca1a108295c327d8e\"\n+ \"0xa40292fe461810a065f80e305f6b85ab3ca2cfd416dc965d4791a111554cf638\"\n description:\n- \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers use it before accepting decrypted values.\"\n+ \"Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers accept a decrypted value when it is signed by the threshold of the current or any retained non-destroyed KMS context.\"\n values.$implementation:\n- \"eth:0x8210A6c69FAc2e9856C7a19Ee70b26cFa3A4F0E2\"\n+ \"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"\n values.$pastUpgrades.2:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.getVersion:\n- \"KMSVerifier v0.1.0\"\n+ \"KMSVerifier v0.2.0\"\n+++ description: Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\n+++ severity: HIGH\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\n+++ severity: HIGH\n values.initialKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\n+++ severity: HIGH\n values.initialKmsContextSigners:\n+ [\"eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f\",\"eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965\",\"eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3\",\"eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f\",\"eth:0x41b19EB4585450db79ac03ba9503106EC7895905\",\"eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921\",\"eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D\",\"eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8\",\"eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f\",\"eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58\",\"eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC\",\"eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385\",\"eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb\"]\n fieldMeta.aclOwner.description:\n- \"Owner of the Zama ACL contract. This account is authorized by onlyACLOwner to rotate the KMS signer set and threshold.\"\n+ \"Owner of the Zama ACL contract. This account can create a new KMS signer context that immediately becomes the default verifier authority, and can destroy any non-current context.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signers accepted by KMSVerifier. The threshold number of these signers must sign public decryption results for the Gateway Decryption EIP-712 domain before wrappers accept the decrypted values.\"\n+ \"KMS signers in the current context. Permission coverage is also indexed through initialKmsContextSigners and createdKmsContexts so superseded contexts remain visible.\"\n fieldMeta.getThreshold.description:\n- \"Minimum number of configured KMS signer signatures required to accept a public decryption result.\"\n+ \"Minimum number of KMS signatures from the current context required to accept a public decryption result. Retained contexts keep their own immutable thresholds.\"\n fieldMeta.initialKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the first v0.2 KMS context created from the source-defined context counter during initialization or migration.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.initialKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"Signers in the first v0.2 KMS context. This code-defined context remains authorized for public decryption proofs after later rotations unless the ACL owner explicitly destroys it.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"Non-destroyed KMS contexts created after the v0.2 migration, reconstructed from context creation and destruction events. Each context is an immutable signer and threshold snapshot that can attest results for any ciphertext handle; it is not scoped to ciphertext age or key ID.\",\"type\":\"PERMISSION\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the context used when proof extraData is empty or starts with version 0. Version 1 extraData can explicitly select any non-destroyed historical context, including for ciphertexts created after that context was superseded.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.eth:0x8210A6c69FAc2e9856C7a19Ee70b26cFa3A4F0E2:\n- \"KMSVerifier\"\n implementationNames.eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD:\n+ \"KMSVerifier\"\n }\n```\n\n```diff\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO] {\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n directlyReceivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\"}\n directlyReceivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n directlyReceivedPermissions.14.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n receivedPermissions.16.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL_v0_3_0] {\n +++ description: Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensus.\n template:\n- \"zama/ZamaACL\"\n+ \"zama/ZamaACL_v0_3_0\"\n sourceHashes.1:\n- \"0x5f835dee1c2a2676dc34ff636b1df73f1fe8b58073069d0a8df7687cd834f35f\"\n+ \"0x47f47986a3024b31fa3caee357720f4fba4ea3fae419ff53eebe1a66e87d69ef\"\n values.$implementation:\n- \"eth:0x96B171e4f8eCda0FFdD128b319Fa185b14f99D76\"\n+ \"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"ACL v0.2.0\"\n+ \"ACL v0.3.0\"\n implementationNames.eth:0x96B171e4f8eCda0FFdD128b319Fa185b14f99D76:\n- \"ACL\"\n implementationNames.eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6:\n+ \"ACL\"\n }\n```\n\n```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_3_0] {\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\n template:\n- \"zama/ZamaFHEVMExecutor\"\n+ \"zama/ZamaFHEVMExecutor_v0_3_0\"\n sourceHashes.1:\n- \"0xc3b56811670be45b7f1aac864be6855e3875c8e449c2fe3cbb540143f0dacddb\"\n+ \"0xf475718e9125acfc2f69d3c9cca8cedb9a15c644da7490f7f5fe0ae2690a77cc\"\n values.$implementation:\n- \"eth:0xde3624dA8d9c45B57674cA0AcAC40630682211bb\"\n+ \"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:34:11.000Z\",\"0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224\",[\"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"FHEVMExecutor v0.2.0\"\n+ \"FHEVMExecutor v0.3.0\"\n fieldMeta.getHCULimitAddress.description:\n- \"HCULimit contract used to account for homomorphic computation units consumed by encrypted operations.\"\n+ \"HCULimit contract used to account for homomorphic computation units consumed by encrypted operations for the original external caller.\"\n fieldMeta.getHandleVersion.description:\n- \"Current ciphertext handle version emitted by the executor.\"\n+ \"Current ciphertext handle version emitted by the executor. Version 1 result handles include operation-specific domain separation and block context in their derivation.\"\n implementationNames.eth:0xde3624dA8d9c45B57674cA0AcAC40630682211bb:\n- \"FHEVMExecutor\"\n implementationNames.eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig] {\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2\",\"description\":\"change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit.\",\"role\":\".aclOwner\",\"via\":[{\"address\":\"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3\"}]}\n receivedPermissions.4.description:\n- \"set the KMS signer set and signature threshold used for public decryption verification.\"\n+ \"create KMS signer contexts with arbitrary signer sets and thresholds, and destroy non-current contexts. A malicious context can attest an inflated unwrap amount and drain pooled wrapper backing.\"\n receivedPermissions.16.description:\n- \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and update Zama verifier signer sets and thresholds.\"\n+ \"transfer ACL ownership, unpause the ACL, block or unblock accounts, manage PauserSet membership, and create or destroy KMSVerifier signer contexts.\"\n }\n```\n\n```diff\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption_v0_4_0] {\n +++ description: Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\n template:\n- \"zama/Decryption\"\n+ \"zama/Decryption_v0_4_0\"\n sourceHashes.1:\n- \"0xd2e9269a1dc3580af2eaa84178722c052767a5d174734ececeddeea5bacd1929\"\n+ \"0xcd821ac822a19a355acde1dd7ce435e2a6e16e21017756b899c058ee64552e28\"\n description:\n- \"Gateway contract that orchestrates public and user decryption requests, checks mirrored host-chain ACL state, collects KMS responses, and emits results once the configured KMS threshold is reached. Ethereum KMSVerifier verifies public decryption results against this contract's EIP-712 domain.\"\n+ \"Gateway contract that orchestrates public and user decryption requests and checks committed ciphertext material. Each response independently selects a KMS context through extraData, or uses the context current when the response executes; requests do not store a context. KMS nodes enforce host-chain ACL state offchain, and Ethereum KMSVerifier verifies public results against this contract's EIP-712 domain.\"\n values.$implementation:\n- \"zama:0xe691cE3d7a71E2eC9E96AF5bdD263FfEB124F8dE\"\n+ \"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:15:40.000Z\",\"0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217\",[\"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getVersion:\n- \"Decryption v0.3.0\"\n+ \"Decryption v0.4.0\"\n+++ description: Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\n+++ severity: HIGH\n values.gatewayKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n fieldMeta.gatewayMultichainACL.description:\n- \"MultichainACL contract containing the gateway-side ACL mirror checked before public or user decryptions are accepted.\"\n+ \"MultichainACL contract containing the gateway-side host-chain ACL mirror. The upgraded Decryption contract no longer checks it onchain and relies on KMS nodes to enforce ACL state.\"\n fieldMeta.gatewayKmsTxSenders.description:\n- \"KMS transaction-sender addresses configured in GatewayConfig. These accounts may submit signed public decryption results and user decryption shares.\"\n+ \"KMS transaction-sender addresses configured in the current GatewayConfig context. Historical context senders can also submit responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayKmsSigners.description:\n- \"KMS signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether public decryption results and user decryption shares reach threshold.\"\n+ \"KMS signer addresses configured in the current GatewayConfig context. Historical context signers can also sign responses when response extraData explicitly selects their retained context. Post-migration contexts are indexed on GatewayConfig; migration-created membership requires a project override because no creation event was emitted.\"\n fieldMeta.gatewayPublicDecryptionThreshold.description:\n- \"Minimum number of matching KMS signatures required before a public decryption result is emitted.\"\n+ \"Minimum matching-signature count for the current context. Public responses are grouped by a digest containing raw extraData; identical empty or version 0 extraData can accumulate responses across a context rotation while the last response selects the threshold checked.\"\n fieldMeta.gatewayUserDecryptionThreshold.description:\n- \"Minimum number of KMS shares required before a user decryption request is considered threshold-reached.\"\n+ \"Minimum response count for the current context. User response counts are stored per request rather than per context, so valid shares submitted under different contexts can be combined and the last response selects the threshold checked.\"\n fieldMeta.gatewayKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Current GatewayConfig KMS context used by responses whose extraData is empty or starts with version 0. Requests do not bind this value, so a rotation can change the context used to answer an already pending request.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0xe691cE3d7a71E2eC9E96AF5bdD263FfEB124F8dE:\n- \"Decryption\"\n implementationNames.zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0:\n+ \"Decryption\"\n }\n```\n\n```diff\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe] {\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n receivedPermissions.5.description:\n- \"update KMS, coprocessor, custodian, host-chain, and threshold configuration, transfer GatewayConfig ownership, and unpause gateway workflow contracts.\"\n+ \"create KMS contexts that immediately become current, update current thresholds and other gateway configuration, transfer ownership, and unpause gateway workflow contracts. Historical KMS contexts cannot be removed in this version.\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_5_0] {\n +++ description: Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\n template:\n- \"zama/GatewayConfig\"\n+ \"zama/GatewayConfig_v0_5_0\"\n sourceHashes.1:\n- \"0x40662103941fd76e1fc3b63e38f9036b39d3394d96fe2c46db9640bcbbc76d4b\"\n+ \"0x1089121569189032b8cee0dae0c71eedecf7757f712a6d14ef684915093c6747\"\n description:\n- \"Central configuration contract for the Zama Gateway. It stores the KMS, coprocessor, custodian, host-chain, pauser, and consensus-threshold configuration used by the gateway workflow contracts.\"\n+ \"Central configuration contract for the Zama Gateway. A KMS context snapshots node transaction senders, signers, and workflow thresholds; historical contexts remain stored and selectable by Decryption because this version has no context-destruction function.\"\n values.$implementation:\n- \"zama:0xDa97dfc327349F7C1333610C80cc20971eD0eb0f\"\n+ \"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"\n values.$pastUpgrades.3:\n+ [\"2026-07-10T08:15:40.000Z\",\"0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217\",[\"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.getPublicDecryptionThreshold:\n- 7\n values.getUserDecryptionThreshold:\n- 9\n values.getVersion:\n- \"GatewayConfig v0.4.0\"\n+ \"GatewayConfig v0.5.0\"\n+++ description: KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\n+++ severity: HIGH\n values.createdKmsContexts:\n+ []\n+++ description: KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\n+++ severity: HIGH\n values.createdKmsContextSigners:\n+ []\n+++ description: KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\n+++ severity: HIGH\n values.createdKmsContextTxSenders:\n+ []\n+++ description: Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\n+++ severity: HIGH\n values.getCurrentKmsContextId:\n+ \"3166189940082864718613269121331309980362851143201109172953918312716374638593\"\n+++ description: Minimum number of KMS signatures required for public decryption consensus in the current context.\n+++ severity: HIGH\n values.getPublicDecryptionThresholdForContext:\n+ 7\n+++ description: Minimum number of KMS shares required for user decryption consensus in the current context.\n+++ severity: HIGH\n values.getUserDecryptionThresholdForContext:\n+ 9\n fieldMeta.owner.description:\n- \"Owner of GatewayConfig. This account manages KMS nodes, coprocessors, custodians, host chains, consensus thresholds, ownership, and gateway unpausing.\"\n+ \"Owner of GatewayConfig. This account creates KMS contexts, changes the current context's thresholds, manages coprocessors, custodians and host chains, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately, while all older contexts remain selectable by Decryption.\"\n fieldMeta.getKmsTxSenders.description:\n- \"KMS transaction-sender addresses registered for this gateway. These accounts submit KMS responses to gateway contracts.\"\n+ \"KMS transaction-sender addresses in the current Gateway context. Historical context senders remain authorized for Decryption responses that explicitly select their context; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getKmsSigners.description:\n- \"KMS signer addresses registered for this gateway. Thresholds over these signers secure public and user decryption, key generation, and CRS generation.\"\n+ \"KMS signer addresses in the current Gateway context. Historical context signers remain authorized for explicitly selected Decryption responses; post-migration contexts are indexed here and the migrated context is indexed on Decryption.\"\n fieldMeta.getMpcThreshold.description:\n- \"MPC threshold for KMS key material generation.\"\n+ \"MPC threshold for KMS key material generation in the current context.\"\n fieldMeta.getPublicDecryptionThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures required for public decryption consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThreshold:\n- {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS shares required for user decryption consensus.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getKmsGenThreshold.description:\n- \"Minimum number of KMS signatures required for key and CRS generation consensus.\"\n+ \"Minimum number of KMS signatures required for key and CRS generation consensus in the current context.\"\n fieldMeta.createdKmsContexts:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS contexts created after migration, reconstructed from UpdateKmsContext events with their node set and creation thresholds. Nodes remain authorized for Decryption indefinitely; later threshold-update events do not identify a context, so final historical thresholds must be read through context-specific getters or project overrides.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.createdKmsContextTxSenders:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS transaction senders from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\",\"type\":\"PERMISSION\"}\n fieldMeta.createdKmsContextSigners:\n+ {\"severity\":\"HIGH\",\"description\":\"KMS signers from contexts created after migration. They remain authorized for Decryption responses that select their context because GatewayConfig has no context-destruction function.\",\"type\":\"PERMISSION\"}\n fieldMeta.getCurrentKmsContextId:\n+ {\"severity\":\"HIGH\",\"description\":\"Identifier of the context used when a Decryption response has empty or version 0 extraData. Version 1 responses can explicitly select any historical context, and requests do not store or bind a context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getPublicDecryptionThresholdForContext:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS signatures required for public decryption consensus in the current context.\",\"type\":\"RISK_PARAMETER\"}\n fieldMeta.getUserDecryptionThresholdForContext:\n+ {\"severity\":\"HIGH\",\"description\":\"Minimum number of KMS shares required for user decryption consensus in the current context.\",\"type\":\"RISK_PARAMETER\"}\n implementationNames.zama:0xDa97dfc327349F7C1333610C80cc20971eD0eb0f:\n- \"GatewayConfig\"\n implementationNames.zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00:\n+ \"GatewayConfig\"\n }\n```"
}
]
},
{
"id": "6378d3a6",
"date": "Mon, 29 Jun 2026 15:21:07 GMT",
"timestamp": 1782746392,
"description": "Initial discovery.",
"isHighSeverity": false,
"changeCount": 37,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract ZamaGovMemberDAO (eth:0x31bBD7a242A38372DE92CA304fE29C12C90A382C) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract HCULimit (eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2) [zama/ZamaHCULimit]\n +++ description: Tracks and enforces homomorphic computation unit limits for FHEVM operation requests.\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x4202860Fa6afAF3e2977cD139Ac693a05e4f9450)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialSteakcUSDCWrapper (eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Staking (Coprocessor) (eth:0x7147485b892158f2B875f7aC5Ea48A9937C66AE8) [zama/ProtocolStaking]\n +++ description: Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialXAUTWrapper (eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract KMSVerifier (eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03) [zama/ZamaKMSVerifier]\n +++ description: Ethereum host-chain verifier for public decryption results produced through the Zama Gateway Decryption contract. Confidential token wrappers use it before accepting decrypted values.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialZAMAWrapper (eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialBRONWrapper (eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x97E18544e156724E4076945F10c288ecBBC94e54) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialTGBPWrapper (eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialUSDTWrapper (eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract DAO (eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3) [zama/ZamaDAO]\n +++ description: Aragon DAO that stores governance state and executes proposal action batches.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialBbqTGBPWrapper (eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract PauserSet (eth:0xbBfE1680b4a63ED05f7F80CE330BED7C992A586C) [zama/ZamaPauserSet]\n +++ description: Maintains the pauser account set used in pause-control checks.\n```\n\n```diff\n+ Status: CREATED\n contract ZamaGovMultisigB (eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F) [zama/Multisig]\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n```\n\n```diff\n+ Status: CREATED\n contract ACL (eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6) [zama/ZamaACL]\n +++ description: Ethereum host-chain access-control registry for encrypted handles, storing handle allowances and delegation state for ciphertext references. Its public-decryption and user-delegation events are mirrored into the Gateway MultichainACL by coprocessor consensus.\n```\n\n```diff\n+ Status: CREATED\n contract InputVerifier (eth:0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2) [zama/ZamaInputVerifier]\n +++ description: Ethereum host-chain verifier for encrypted input attestations produced by the Zama Gateway InputVerification contract. The FHEVMExecutor calls it before accepting user-provided ciphertext handles.\n```\n\n```diff\n+ Status: CREATED\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor]\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialWETHWrapper (eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract ZamaGovMultisigA (eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f) [zama/Multisig]\n +++ description: Aragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xE53e32a669357Ab0360103d8f294812B914AF9e4) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialUSDCWrapper (eth:0xe978F22157048E5DB8E5d07971376e86671672B2) [zama/ConfidentialWrapperV3]\n +++ description: ERC-20 wrapper that escrows an underlying token and issues confidential balances. It supports encrypted transfers, wrapping, unwrapping, local blocking, and optional underlying-token denylist checks.\n```\n\n```diff\n+ Status: CREATED\n contract Staking (KMS) (eth:0xe9b176CCaA8840DC3b3567bb83e2cD2a6c36F4Ab) [zama/ProtocolStaking]\n +++ description: Staking contract that escrows ZAMA, issues non-transferable staked voting tokens, and mints protocol rewards to eligible stakers at a configurable reward rate.\n```\n\n```diff\n+ Status: CREATED\n contract ConfidentialTokenWrappersRegistry (eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0) [zama/ConfidentialTokenWrappersRegistry]\n +++ description: Registry for Zama confidential token wrappers.\n```\n\n```diff\n+ Status: CREATED\n contract MultichainACL (zama:0x055d9FD50a612A9027716ec8db663E7D68562468) [zama/MultichainACL]\n +++ description: Gateway-side ACL mirror that records coprocessor consensus for host-chain public decryption permissions, account handle allowances, and delegated user-decryption access. For Ethereum, it mirrors ACL events emitted by the L1 ACL contract registered in GatewayConfig.\n```\n\n```diff\n+ Status: CREATED\n contract Decryption (zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24) [zama/Decryption]\n +++ description: Gateway contract that orchestrates public and user decryption requests, checks mirrored host-chain ACL state, collects KMS responses, and emits results once the configured KMS threshold is reached. Ethereum KMSVerifier verifies public decryption results against this contract's EIP-712 domain.\n```\n\n```diff\n+ Status: CREATED\n contract KMSGeneration (zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3) [zama/KMSGeneration]\n +++ description: Gateway contract that orchestrates FHE key generation, CRS generation, PRSS initialization, and key resharing through threshold KMS responses.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayPauserSet (zama:0x571ecb596fCc5c840DA35CbeCA175580db50ac1b) [zama/GatewayPauserSet]\n +++ description: Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE) [GnosisSafe]\n +++ description: Gateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n```\n\n```diff\n+ Status: CREATED\n contract ProtocolPayment (zama:0x7E179E45E5fe0a21015Be25185363B4F2F2F7e89) [zama/ProtocolPayment]\n +++ description: Gateway fee contract that charges ZAMA fees for encrypted input verification, public decryption, and user decryption requests, then forwards the collected fees to the configured fee burner sender.\n```\n\n```diff\n+ Status: CREATED\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification]\n +++ description: Gateway contract that receives encrypted input verification requests from registered host chains, collects coprocessor responses, and emits a threshold-signed attestation once coprocessor consensus is reached. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n```\n\n```diff\n+ Status: CREATED\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits]\n +++ description: Gateway contract that stores ciphertext and SNS ciphertext digests after coprocessor consensus, allowing decryption requests to reference committed ciphertext material.\n```\n\n```diff\n+ Status: CREATED\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig]\n +++ description: Central configuration contract for the Zama Gateway. It stores the KMS, coprocessor, custodian, host-chain, pauser, and consensus-threshold configuration used by the gateway workflow contracts.\n```"
}
]
}
]
+4 -2
+4 -2
{
"creator": "Polygon Labs",
"projectsForTvs": [
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1679868000,
"untilTimestamp": 1764716400
},
{
"projectId": "silicon",
"sinceTimestamp": 1724796000
"sinceTimestamp": 1724796000,
"untilTimestamp": 1790114400
},
{
"projectId": "ternoa",
"sinceTimestamp": 1738105200
},
{
"projectId": "penchain",
"sinceTimestamp": 1749938400
"sinceTimestamp": 1749938400,
"untilTimestamp": 1777586400
},
{
"projectId": "wirex",
"sinceTimestamp": 1724796000
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1709679600
},
{
"projectId": "gpt",
"sinceTimestamp": 1724450400
},
{
"projectId": "witness",
"sinceTimestamp": 1719871200
}
],
"proofSystemInfo": "## Description\n\nzkProver is a STARK proving system designed to implement the zkEVM component of Polygon zkEVM. It proves the execution of EVM transactions in a zkVM running on [zkASM](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/#zero-knowledge-assembly) ISA. zkProver allows recursive STARK aggregation as well as the final wrap in a [Fflonk](https://hecmas.github.io/events/2023fflonk/) SNARK for efficient onchain verification. zkProver onchain verifier targets 128 bits of security.\n\n## Proof system\n\nzkProver toolkit introduces two new domain specific languages: zkASM and PIL. zkASM is the instruction language of the internal zkVM, and the execution of EVM transactions is proven with a specific zkASM program called [ROM](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/main-state-machine/#the-rom). PIL is a language for creating circuits, conceptually similar to [circom](https://docs.circom.io).\n\nzkProver is based on [eSTARK paper](https://eprint.iacr.org/2023/474), meaning that it implements a FRI-based STARK with AIR arithmetization extended with additional arguments. It also [provides tools](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/stark-recursion/composition-recursion-aggregation/#setup-phase) to automatically generate circom arithmetic circuits for verifying the STARK proof, which plays an essential role in proof compression and recursive proving. \n\n### Polynomial Identity Language (PIL)\n\nThe polynomial constraints that define circuits within zkProver are specified using a language called [polynomial identity language](https://github.com/0xPolygon/pilcom) (PIL). PIL supports complicated and powerful polynomial constraints, like [permutation](https://docs.polygon.technology/tools/zkevm/spec/pil/permutation-arguments/), [inclusion](https://docs.polygon.technology/tools/zkevm/spec/pil/inclusion-arguments/) and [connection](https://docs.polygon.technology/tools/zkevm/spec/pil/connection-arguments/) arguments. PIL was designed to be applicable in other zk tools as well. The next iteration of PIL called PIL2 could be found [here](https://github.com/0xPolygonHermez/pil2-compiler).\n\n### State machine\n\nzkProver state machine (zkVM) consists of [13 separate state machines](https://github.com/0xPolygon/zkevm-prover/tree/main/src/sm) specified in PIL, including [main SM](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/main-state-machine/), [arithmetic SM](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/arithmetic-sm/), [binary SM](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/binary-sm/), etc. Each state machine creates its own execution trace, which is connected to the rest using connection argument. The state machine has access to EVM state trie, EVM memory and the ROM program that implements verification of EVM transactions in zkASM language. \n\n### Recursion circuits\n\n[Proving architecture](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/stark-recursion/proving-architecture/) of zkProver consists of several stages. Compression stage reduces the size of STARK proofs of zkEVM batch execution for efficiency of further computations. Normalization stage prepares for aggregation by correctly aligning public inputs across several batches. Aggregation stage repeatedly joins pairs of STARK proofs to produce a single proof of multiple zkEVM batches. Final STARK stage changes the field over which the proof is generated to prepare for the SNARK wrap. Finally, SNARK stage produces a Fflonk proof to be posted onchain.\n\nEach recursion step uses a circom R1CS arithmetic circuit to verify input PIL-STARK proofs (see [here](https://docs.polygon.technology/tools/zkevm/architecture/zkprover/stark-recursion/composition-recursion-aggregation/#stark-to-circuit-or-s2c-sub-process)). The proof of verification is a PIL-STARK that is generated on the Plonkish arithmetization of this circom circuit.",
"techStack": {
"zkVM": [
{
"id": "PIL-STARK",
"type": "STARK",
"name": "PIL-STARK",
"description": "zkVM STARK proving system that works with Polynomial Identity Language (PIL) developed by Polygon Zero team."
},
{
"id": "ZkASM",
"type": "ISA",
"name": "zkASM",
"description": "Instruction language for Polygon zkEVM virtual machine."
},
{
"id": "Goldilocks",
"type": "Field",
"name": "Goldilocks",
"description": "Prime field of order p = 2**64 - 2**32 + 1."
}
],
"finalWrap": [
{
"id": "Snarkjs",
"type": "Fflonk",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Fflonk improvement over standard Plonk proving system written in JS."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Snarkjs",
"type": "Fflonk",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Fflonk improvement over standard Plonk proving system written in JS."
},
"id": "PolygonZkEVM",
"name": "Polygon zkEVM",
"participantCount": 55,
"risk": "yellow",
"shortDescription": "Trusted setup for KZG commitments over BN254 curve used by Polygon zkEVM, includes 55 participants. Is a subset of Perpetual Powers of Tau ceremony.",
"longDescription": "Ceremony uses 54 first contributions from the [Perpetual Powers of Tau ceremony](https://github.com/privacy-scaling-explorations/perpetualpowersoftau)\nand adds one more contribution to the total of 55 participants.\n\n- Ceremony used: [https://github.com/privacy-scaling-explorations/perpetualpowersoftau?tab=readme-ov-file](https://github.com/privacy-scaling-explorations/perpetualpowersoftau?tab=readme-ov-file)\n- Public announcement: [https://medium.com/coinmonks/announcing-the-perpetual-powers-of-tau-ceremony-to-benefit-all-zk-snark-projects-c3da86af8377](https://medium.com/coinmonks/announcing-the-perpetual-powers-of-tau-ceremony-to-benefit-all-zk-snark-projects-c3da86af8377)\n- Final data and verification steps in this repo: [https://github.com/iden3/snarkjs/tree/master?tab=readme-ov-file](https://github.com/iden3/snarkjs/tree/master?tab=readme-ov-file)"
}
],
"verifierHashes": [
{
"hash": "0x28ddf3744fb9b64bc428bee318e026bee0cf210e23ff5932f645e32aa916c28f",
"proofSystem": {
"id": "Snarkjs",
"type": "Fflonk",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Fflonk improvement over standard Plonk proving system written in JS."
},
"name": "zkProver Fflonk verifier Wirex",
"knownDeployments": [
{
"address": "eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81"
}
],
"verificationStatus": "notVerified",
"description": "Custom verifier ID: SHA256 hash of the following values from the verifier smart contract, abi packed in the same order they are defined: verification key data, omegas, verifier preprocessed inputs (all values from k1 to X2y2)."
},
{
"hash": "0x237bc5d6efad6d844534c4a45f5f19fa86344615ac00054821915c219e9abd81",
"name": "zkProver Fflonk v8.0.0-fork.12",
"sourceLink": "https://github.com/0xPolygon/zkevm-proverjs/tree/v8.0.0-fork.12",
"proofSystem": {
"id": "Snarkjs",
"type": "Fflonk",
"name": "Snarkjs",
"description": "Circom / iden3 implementation of Fflonk improvement over standard Plonk proving system written in JS."
},
"knownDeployments": [
{
"address": "eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The verification steps are based on [this guide](https://github.com/agglayer/agglayer-contracts/blob/b9a795523317eca29319f3dca56f7199a117fb78/verifyMainnetDeployment/verifyMainnetProofVerifier.md).\n\n1. Get a machine with at least 512GB of RAM and 32 cores (e.g. r6a.16xlarge aws instance). This guide assumes Ubuntu 22.04 LTS OS.\n\n2. Do basic OS preparation\n\n```jsx\nsudo apt update\nsudo apt install -y tmux git curl jq\nsudo apt install -y build-essential libomp-dev libgmp-dev nlohmann-json3-dev libpqxx-dev nasm libgrpc++-dev libprotobuf-dev grpc-proto libsodium-dev uuid-dev libsecp256k1-dev\n```\n\n3. Tweak the OS to accept high amount of memory\n\n```jsx\necho \"vm.max_map_count=655300\" | sudo tee -a /etc/sysctl.conf\nsudo sysctl -w vm.max_map_count=655300\nexport NODE_OPTIONS=\"--max-old-space-size=230000\"\n```\n\n4. Install node, npm, python deps\n\n```jsx\ncurl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh\nsudo bash nodesource_setup.sh\nsudo apt install -y nodejs\nnode -v\napt install python3-pip\npip install z3-solver==4.13.0.0\n```\n\nThe version of node should be: 18 (e.g. 18.19.0 ) Note that hardhat will complain that this node version is not supported byt hardhat. It seems to be just a warning and `v24.8.0` produces the same contract bytecode, so maybe it can be ignored.\n\n5. Download and prepare circom\n\n```jsx\ncd ~\ngit clone https://github.com/iden3/circom.git\ncd circom\ngit checkout v2.1.8\ngit log --pretty=format:'%H' -n 1\n```\n\nThe hash of the commit should be: f0deda416abe91e5dd906c55507c737cd9986ab5.\n\n```jsx\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\ncd ~\ncd circom\ncargo build --release\ncargo install --path circom\nexport PATH=$PATH:~/.cargo/bin\necho 'PATH=$PATH:~/.cargo/bin' >> ~/.profile\ncircom --version\n```\n\nThe version of circom should be: 2.1.8.\n\n6. Prepare fast build constant tree tool and fflonk setup\n\n```jsx\ncd ~\ngit clone https://github.com/0xPolygonHermez/zkevm-prover.git\ncd zkevm-prover\ngit checkout v8.0.0-RC9\ngit submodule init\ngit submodule update\nsed -i -E 's|^(SRCS_BCT := .*./src/starkpil/stark_info\\.\\*)|\\1 ./tools/sm/sha256/sha256.cpp ./tools/sm/sha256/bcon/bcon_sha256.cpp|' Makefile\nmake -j bctree fflonk_setup\n```\n\n7. Prepare and launch setup (zkevm-proverjs). This step is quite long, it takes approximately 4.5 hours.\n\n```jsx\ncd ~\ngit clone https://github.com/0xPolygonHermez/zkevm-proverjs.git\ncd zkevm-proverjs\ngit checkout v8.0.0-fork.12\nrm -f package-lock.json\nsed -i -E 's|https://hermez\\.s3-eu-west-1\\.amazonaws\\.com/powersOfTau28_hez_final\\.ptau|https://storage.googleapis.com/zkevm/ptau/powersOfTau28_hez_final.ptau|g' package.json\nnpm install\ntmux -c \"npm run buildsetup --bctree=../zkevm-prover/build/bctree --fflonksetup=../zkevm-prover/build/fflonkSetup --mode=25\"\n```\n\nThe last step generates the `zkevm-proverjs_build_proof_build_final.fflonk.verifier.sol` file which contains the verification keys that can be checked against the onchain deployment.",
"description": "Custom verifier ID: SHA256 hash of the following values from the verifier smart contract, abi packed in the same order they are defined: verification key data, omegas, verifier preprocessed inputs (all values from k1 to X2y2)."
}
]
}
+1 -1
+1 -1
{
"clusteredEventCount": 46,
"contracts": [
{
"name": "Diamond",
"address": "eth:0x32400084C286CF3E17e7B677ea9583e60a000324",
"isVerified": true,
"ossifyingSince": 1786873007,
"codeChangeCount": 27,
"stateChangeCount": 26
},
{
"name": "EraDualVerifier",
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"isVerified": true,
"ossifyingSince": 1786713431,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EraVerifierPlonk",
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"isVerified": true,
"ossifyingSince": 1786713407,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EraVerifierFflonk",
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"isVerified": true,
"ossifyingSince": 1786713395,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProtocolUpgradeHandler",
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"isVerified": true,
"ossifyingSince": 1779262271,
"codeChangeCount": 2,
"stateChangeCount": 1
},
{
"name": "EraMultisigValidator",
"address": "eth:0xdC26B08F0335b68721F64001C38b05D0BC9B539d",
"isVerified": true,
"ossifyingSince": 1777553063,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "EmergencyUpgradeBoard",
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"isVerified": true,
"ossifyingSince": 1776678563,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SecurityCouncil",
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"isVerified": true,
"ossifyingSince": 1776678539,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x0D8d1be440f997bDB9CA44C0140fD12551f99BBB",
"isVerified": true,
"ossifyingSince": 1775666447,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkTokenGovernor",
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"isVerified": true,
"ossifyingSince": 1765211471,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "ZkToken",
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"isVerified": true,
"ossifyingSince": 1765195612,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "RollupDAManager",
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"isVerified": true,
"ossifyingSince": 1760604460,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "L1ERC20Bridge",
"address": "eth:0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 10,
"stateChangeCount": 0
},
{
"name": "BridgeHub",
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 6,
"stateChangeCount": 6
},
{
"name": "MessageRoot",
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 2,
"stateChangeCount": 0
},
{
"name": "L1AssetRouter",
"address": "eth:0x8829AD80E425C646DAB305381ff105169FeEcE56",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "L1NativeTokenVault",
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "ChainTypeManager",
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 6,
"stateChangeCount": 5
},
{
"name": "L1Nullifier",
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"isVerified": true,
"ossifyingSince": 1760519351,
"codeChangeCount": 6,
"stateChangeCount": 3
},
{
"name": "ValidatorTimelock",
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"isVerified": true,
"ossifyingSince": 1758289595,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ChainAssetHandler",
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"isVerified": true,
"ossifyingSince": 1758286391,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkProtocolGovernor",
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"isVerified": true,
"ossifyingSince": 1740742654,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "RollupL1DAValidator",
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"isVerified": true,
"ossifyingSince": 1739108915,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkTokenTimelockController",
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"isVerified": true,
"ossifyingSince": 1739000122,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Guardians",
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"isVerified": true,
"ossifyingSince": 1738855979,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"isVerified": true,
"ossifyingSince": 1738855967,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProtocolTimelockController",
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"isVerified": true,
"ossifyingSince": 1738853604,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "EraChainAdminProxy",
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"isVerified": true,
"ossifyingSince": 1722434735,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"isVerified": true,
"ossifyingSince": 1717520627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ZkTokenProxyAdmin",
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"isVerified": true,
"ossifyingSince": 1716317321,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"criticalChanges": [
1679594519,
1682366591,
1692180911,
1693297691,
1694083991,
1695403367,
1695724036,
1697818535,
1698402394,
1698856895,
1701721751,
1702029961,
1703159495,
1704797043,
1707143447,
1707380016,
1710167531,
1710285383,
1717520639,
1717674923,
1718011538,
1722934619,
1724658671,
1725887363,
1726227640,
1736352035,
1736520959,
1740742654,
1741679757,
1741779799,
1743408047,
1744806793,
1745001594,
1745588211,
1745843591,
1746028164,
1746446579,
1749803535,
1750343219,
1750722695,
1753709927,
1754091731,
1760519351,
1761146555,
1765195612,
1769183903,
1769897051,
1770391415,
1777553063,
1779262271,
1784915471,
1786208627,
1786873007
],
"criticalChangesPerYear": 15.333333333333334,
"criticalUpdates": [
{
"id": "0d60433d",
"type": "state"
},
{
"id": "8c1eeeb8",
"type": "state"
},
{
"id": "469b08ac",
"type": "state"
},
{
"id": "81da15da",
"type": "state"
},
{
"id": "77994965",
"type": "state"
},
{
"id": "cdbb5dce",
"type": "state"
},
{
"id": "54f097de",
"type": "state"
},
{
"id": "2f064657",
"type": "state"
},
{
"id": "e467f488",
"type": "state"
},
{
"id": "9dbc9655",
"type": "state"
},
{
"id": "ec59e2ee",
"type": "state"
},
{
"id": "6a5eae28",
"type": "state"
},
{
"id": "2ed0a950",
"type": "state"
},
{
"id": "3347bf90",
"type": "state"
},
{
"id": "88d8f58d",
"type": "state"
},
{
"id": "59f451bc",
"type": "state"
},
{
"id": "d7262d25",
"type": "state"
},
{
"id": "0819e8b8",
"type": "state"
},
{
"id": "42eff026",
"type": "state"
},
{
"id": "5a8ad8b1",
"type": "state"
},
{
"id": "6fa1ad76",
"type": "state"
},
{
"id": "0dff75a3",
"type": "state"
},
{
"id": "bff2a528",
"type": "state"
},
{
"id": "73803b6d",
"type": "state"
},
{
"id": "e4053ebe",
"type": "state"
},
{
"id": "702e5f55",
"type": "state"
},
{
"id": "8cabc948",
"type": "state"
},
{
"id": "70c29b00",
"type": "state"
},
{
"id": "5531704d",
"type": "state"
},
{
"id": "b0d171bf",
"type": "state"
},
{
"id": "7fc79d40",
"type": "state"
},
{
"id": "591f6152",
"type": "state"
},
{
"id": "35e6a989",
"type": "state"
},
{
"id": "fdc9ffaa",
"type": "state"
},
{
"id": "af5012ae",
"type": "state"
},
{
"id": "ee77660f",
"type": "state"
},
{
"id": "98f55b94",
"type": "state"
},
{
"id": "ded67cd2",
"type": "state"
},
{
"id": "61cc8b2a",
"type": "state"
}
],
"lastCriticalChange": 1786873007,
"maturity": 0.5376922724019064,
"maturity": 0.5376923057068222,
"perimeterResets": [
1676315375,
1679594519,
1682366591,
1692180911,
1693297691,
1694083991,
1695403367,
1695724036,
1697818535,
1698402394,
1698856895,
1701721751,
1702029961,
1703159495,
1704797043,
1707143447,
1707380016,
1710167531,
1710285383,
1716317321,
1717520627,
1717674923,
1718011538,
1722434735,
1722934619,
1723144920,
1724658671,
1725887363,
1726227640,
1736352035,
1736520959,
1738853604,
1739000122,
1739108879,
1740742654,
1741679757,
1741779799,
1743408047,
1744806793,
1745001594,
1745588211,
1745843591,
1746028164,
1746446579,
1749803535,
1750343219,
1750722695,
1753709927,
1754091731,
1758286391,
1760519351,
1761146555,
1765195612,
1769183903,
1769897051,
1770391415,
1770639008,
1775666447,
1776678539,
1777553063,
1779262271,
1784915471,
1785170172,
1786208627,
1786353960,
1786713395,
1786873007
],
"projectClockStart": 1786873007,
"score": 54,
"windowSeconds": 94608000
}