04aa433d (main)
and
1f5254ec (PR)
+15 -1
+1 -1
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "HubPoolStore",
"isVerified": true,
"address": "eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple data store used by the Universal_Adapter to store message calldata hashes. The content of this calldata can be proven by Ethereum zk light clients on remote chains and then executed to relay root bundles or arbitrary messages.\n",
"discoveryDrivenData": true
},
{
"name": "AcrossConfigStore",
"isVerified": true,
"address": "eth:0x3B03509645713718B78951126E0A6de6f10043f5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple, owner-controlled contract for storing protocol-wide, token-specific configuration data.\n* Roles:\n * **owner**: Across Multisig; ultimately OptimisticGovernor",
"discoveryDrivenData": true
},
{
"name": "AdapterStore",
"isVerified": true,
"address": "eth:0x42df4D71f35ffBD28ae217d52E83C1DA0007D63b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A helper contract for chain adapters on the hub chain that support OFT messaging. Handles token -> messenger mapping.\n* Roles:\n * **owner**: Across Multisig; ultimately OptimisticGovernor",
"discoveryDrivenData": true
},
{
"name": "Ethereum_SpokePool",
"isVerified": true,
"address": "eth:0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda"
],
"implementations": [
"eth:0x456Ac26E5ec083EE9889eBa0d1a0A582502B8e84"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1682355155,
"transactionHash": "0x411ae8360c51beff3d6034ea63f03c41e6cf8b031432391fc44bc4f5a1b908ef",
"implementations": [
"eth:0xA667498F46457548f1D3ad557340b95Fdb290148"
]
},
{
"timestamp": 1692663659,
"transactionHash": "0xceb5b11cd6c78b29d16d2c91bedcb4ec7467814fdce84a753f468c452c36c0d6",
"implementations": [
"eth:0x326510c1bf9d85Fb73d0AB8d20Aa5BbE9c7561e9"
]
},
{
"timestamp": 1696340927,
"transactionHash": "0x946dec56639129cadd298ce5a44341b6f361c5c632f5dea2a80d9cb023b836c6",
"implementations": [
"eth:0x5ab0A812327aD959dE664AEC8408Ef8c6ABe7184"
]
},
{
"timestamp": 1708538663,
"transactionHash": "0xf08778addb8376b0beb500bf569c6251eadc124e6aeeaf5f702ab1dbf576379f",
"implementations": [
"eth:0x90438AD3d81a0739ce1Cb20C73564682388c5FdD"
]
},
{
"timestamp": 1710769247,
"transactionHash": "0x3ebfeeedb62ab726a1cb350595df3d4b2212f2fda619ae08015d16f304fc8332",
"implementations": [
"eth:0xa4D3535f33549749Fb97fA42903AC80F6fb54af6"
]
},
{
"timestamp": 1715785919,
"transactionHash": "0xa604480755748d8162a3fb11442719682d473d868450e7460d9dd111a0b8903a",
"implementations": [
"eth:0x08C21b200eD06D2e32cEC91a770C3FcA8aD5F877"
]
},
{
"timestamp": 1725378503,
"transactionHash": "0xd3cfc5a7476fd33d3d3fdc2d77adac2bf6900945f9a5c5f35f65b6507dde381f",
"implementations": [
"eth:0x48Dcf75EA18233BA947E4480dCd70594720449C1"
]
},
{
"timestamp": 1738111451,
"transactionHash": "0x4d37ad20bb31cedba7434223e08229ca95fbfd32eaf2bcbd456af0d0a32bba8b",
"implementations": [
"eth:0xD576931ab0bDC3dfdc2c041d3C7b9d2ED0c6dd9a"
]
},
{
"timestamp": 1738939607,
"transactionHash": "0xbea88935fe99b6faba60ee273a5eb146cd6c2d12decfef8842c5c719a0009376",
"implementations": [
"eth:0x0190a2328e072Fc5a7fA00F6C9ae2a16c7F4E32a"
]
},
{
"timestamp": 1751304083,
"transactionHash": "0xa4cfc9525849a8a3052a587a29006303e9b16ce08fa096460bb6fe2017b1a3ef",
"implementations": [
"eth:0xFBc81a18EcDa8E6A91275cFDF5FC6d91A7C5AE80"
]
},
{
"timestamp": 1770055271,
"transactionHash": "0xce91ef569315a356ecbf8133df44de6a7f0cbbcc8f50433eb3ab5116d71a111f",
"implementations": [
"eth:0x5E5B726C81f43B953a62AD87E2835C85c4D9Dd3B"
]
},
{
"timestamp": 1786730555,
"transactionHash": "0x8149765132e15fb4f1dce1cab83f087ca099d778fee49191dff408069b734ad3",
"implementations": [
"eth:0x456Ac26E5ec083EE9889eBa0d1a0A582502B8e84"
]
}
],
"description": "The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers. Since the V5 upgrade, deposits tagged with a special message prefix can only be filled through the Across V5 Gateway, which authenticates the fill and identifies the relayer paying for it.\n* Roles:\n * **crossDomainAdmin**: HubPool; ultimately Across Multisig, OptimisticGovernor\n * **gateway**: Gateway",
"upgradableBy": [
{
"name": "OptimisticGovernor",
"delay": "2d"
},
{
"name": "Across Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "HubPool",
"isVerified": true,
"address": "eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n* Roles:\n * **owner**: Across Multisig; ultimately OptimisticGovernor",
"discoveryDrivenData": true
},
{
"name": "AcrossBondToken (ABT)",
"isVerified": true,
"address": "eth:0xee1DC6BCF1Ee967a350e9aC6CaaAA236109002ea",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A bond token wrapping ETH for usage in the Across protocol. Implements modified ERC20 logic to only allow permissioned proposers to use it as a bond for root bundle proposals.\n* Roles:\n * **owner**: Across Multisig; ultimately OptimisticGovernor\n * **proposers**: EOA 1",
"discoveryDrivenData": true
},
{
"name": "VotingV2",
"isVerified": true,
"address": "eth:0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Core smart contract for UMA's Data Verification Mechanism (DVM), serving as source of truth for disputed claims. UMA token holders collectively resolve price requests and earn rewards for correct participation. Commit- and reveal phases for the voting take 1d each.\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "Registry",
"isVerified": true,
"address": "eth:0x3e532e6222afe9Bcf02DCB87216802c75D5113aE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Registry for contracts that are allowed to call `requestPrice()` in the UMA voting contracts (ie. request dispute resolution by the UMA DVM).\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "Finder",
"isVerified": true,
"address": "eth:0x40f941E48A552bF496B154Af6bf55725f18D77c3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Maps interface names to contract addresses (UMA protocol contracts).\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "Store",
"isVerified": true,
"address": "eth:0x54f44eA3D2e7aA0ac089c4d8F7C93C27844057BF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "UMA protocol contract responsible for calculating and collecting regular and final fees for using the DVM.\n* Roles:\n * **owner**: GovernorV2\n * **withdrawer**: EOA 3",
"discoveryDrivenData": true
},
{
"name": "FixedSlashSlashingLibrary",
"isVerified": true,
"address": "eth:0x9a406ba5a99983250Fd663947b3c968D387ce5cd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Stores slashing parameters and calculates slashing amounts based on that (UMA protocol).\n",
"discoveryDrivenData": true
},
{
"name": "IdentifierWhitelist",
"isVerified": true,
"address": "eth:0xcF649d9Da4D1362C4DAEa67573430Bd6f945e570",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Keeps a list of whitelisted identifiers that are accepted by the UMA v3 protocol. Across uses the identifier `ACROSS-V2` for its disputes.\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "AddressWhitelist",
"isVerified": true,
"address": "eth:0xdBF90434dF0B98219f87d112F37d74B1D90758c7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A simple address whitelist for tokens that can be used as bonds and/or fees. This whitelist is checked and enforced by various smart contracts in the UMA ecosystem.\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "SkinnyOptimisticOracle",
"isVerified": true,
"address": "eth:0xeE3Afe347D5C74317041E2618C49534dAf887c24",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Validates bridge messages by allowing proposers to make bonded assertions about crosschain events. It enforces a challenge period during which any invalid claims can be disputed and escalated to UMA's Data Verification Mechanism (DVM) for resolution.\n",
"discoveryDrivenData": true
},
{
"name": "OptimisticOracleV3",
"isVerified": true,
"address": "eth:0xfb55F43fB9F48F63f9269DB7Dde3BbBe1ebDC0dE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Standard UMA optimistic oracle contract that allows anyone to make an arbitrary claim by posting a bond. The claim is considered true unless it is successfully disputed within a challenge window, with UMA's DVM acting as the final arbiter for disputes.\n* Roles:\n * **owner**: GovernorV2",
"discoveryDrivenData": true
},
{
"name": "Zora_Adapter",
"isVerified": true,
"address": "eth:0x024F2fC31CBDD8de17194b1892c834f98Ef5169b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Soneium_Adapter",
"isVerified": true,
"address": "eth:0x0c9d064523177dBB55CFE52b9D0c485FBFc35FD2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "HyperEVM_Adapter",
"isVerified": true,
"address": "eth:0x0ec70777Ac388774041dD5A1778Cdf3AF3134D2B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to HyperEVM. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "Redstone_Adapter",
"isVerified": true,
"address": "eth:0x188F8C95B7cfB7993B53a4F643efa687916f73fA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Avalance_Adapter",
"isVerified": true,
"address": "eth:0x1af659333172DC502bD71Cf5b889521C97751838",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "Scroll_Adapter",
"isVerified": true,
"address": "eth:0x2DA799c2223c6ffB595e578903AE6b95839160d8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Boba_Adapter",
"isVerified": true,
"address": "eth:0x33B0Ec794c15D6Cc705818E70d4CaCe7bCfB5Af3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Optimism_Adapter",
"isVerified": true,
"address": "eth:0x3562e309C6C79626E5F0Cf746FB5Bf4f6b8EebE5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Tempo_Adapter",
"isVerified": true,
"address": "eth:0x4577980eBFCC6fC8ff516aC06dA9e729c40cA57c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to Tempo. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "Ethereum_Adapter",
"isVerified": true,
"address": "eth:0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Polygon_Adapter",
"isVerified": true,
"address": "eth:0x537abE038C223066B50312474409924487D2E655",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Ink_Adapter",
"isVerified": true,
"address": "eth:0x545E43B6eC2f9a44CAa531298699Ff05958670B5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Linea_Adapter",
"isVerified": true,
"address": "eth:0x5A44A32c13e2C43416bFDE5dDF5DCb3880c42787",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Lens_Adapter",
"isVerified": true,
"address": "eth:0x5e0B7e20a77BDf11812837D30F1326068Bcf24Cf",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "BNBSmartChain_Adapter",
"isVerified": true,
"address": "eth:0x6f1C9d3bcDF51316E7b515a62C02F601500b084b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to Binance Smart Chain. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero.\n",
"discoveryDrivenData": true
},
{
"name": "Alephzero_Adapter",
"isVerified": true,
"address": "eth:0x6F4083304C2cA99B077ACE06a5DcF670615915Af",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Base_Adapter",
"isVerified": true,
"address": "eth:0x799BDC55d91864b14B2eD63A34DeF5d502AA897f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Unichain_Adapter",
"isVerified": true,
"address": "eth:0x8956eFa31572E1d7ed5c8e36772F214A57DFA0D1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "WorldChain_Adapter",
"isVerified": true,
"address": "eth:0x8bbdD67102D743b8533c1277a4ffdA04Dea158D1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Solana_Adapter",
"isVerified": true,
"address": "eth:0x9F788694934fD2Ed34D5340B9a76EB34f2bFD7B3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Adapter for Solana. Uses CCTP v1 AMB to relay root bundles to the Solana spokepool.\n",
"discoveryDrivenData": true
},
{
"name": "Tron_Adapter",
"isVerified": true,
"address": "eth:0xA1da1A70cc9F27F4aEDff1d515B1a0C47fb6c3Db",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to Tron. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "ZkSyncEra_Adapter",
"isVerified": true,
"address": "eth:0xA374585E6062517Ee367ee5044946A6fBe17724f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Plasma_Adapter",
"isVerified": true,
"address": "eth:0xb47fD69FE25878F4E43aAF2F9ad7D0A3A0B22363",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to Plasma Mainnet. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero.\n",
"discoveryDrivenData": true
},
{
"name": "Universal_Adapter",
"isVerified": true,
"address": "eth:0xbc5E82035e2C8d4B335Ccb751D6BF47e44Dec678",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "Arbitrum_Adapter",
"isVerified": true,
"address": "eth:0xc0b6d2f794cc787C71f2cA5ceCD57102C32379B3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Monad_Adapter",
"isVerified": true,
"address": "eth:0xC29a3Ba0fBf477F16Fd53d2C438Eade024FD8452",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "Universal_Adapter",
"isVerified": true,
"address": "eth:0xCA5f9960022078F3585a188e06F910eeC29c7eBD",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n",
"discoveryDrivenData": true
},
{
"name": "MegaETH_Adapter",
"isVerified": true,
"address": "eth:0xE1f04404b74F996A311F13aE291849fC153578Ac",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Lisk_Adapter",
"isVerified": true,
"address": "eth:0xF039AdCC74936F90fE175e8b3FE0FdC8b8E0c73b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Mode_Adapter",
"isVerified": true,
"address": "eth:0xf1B59868697f3925b72889ede818B9E7ba0316d0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
},
{
"name": "Blast_Adapter",
"isVerified": true,
"address": "eth:0xF2bEf5E905AAE0295003ab14872F811E914EdD81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n",
"discoveryDrivenData": true
}
],
"optimism": [
{
"name": "OP_SpokePool",
"isVerified": true,
"address": "oeth:0x6f26Bf09B1C792e3228e5467807a900A503c0281",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"oeth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"oeth:0x60674c53a4cC4ED350659C95fb8020B5AC61cA1D"
]
},
"chain": "optimism",
"pastUpgrades": [
{
"timestamp": 1682354696,
"transactionHash": "0xf09b511734ba603400579c64ce6eeb8286e4429e11ab45e2f36df22f0eb59add",
"implementations": [
"oeth:0x618C854204834e110eB77f092e7063d7Ae2855d8"
]
},
{
"timestamp": 1686315223,
"transactionHash": "0x28a173e69040f2f96ebcd4bf6b793c593bff7c2027a455905610119740e9564f",
"implementations": [
"oeth:0xEc88d3C08E2939562Ff8188B4e30A52236C3FF09"
]
},
{
"timestamp": 1692796375,
"transactionHash": "0x792f7cc7f232d7c3616149394b8a2903b8000a3b28ef74c5cc9100aff6ffed42",
"implementations": [
"oeth:0xFd7F000C26B7205c1A3f9b846F44Dc11Ff5E6eb8"
]
},
{
"timestamp": 1696340997,
"transactionHash": "0x14f1c15037cef66839ce570174aad27a4ea7f33a3e2496e36ba2bbb5b6650637",
"implementations": [
"oeth:0xC127c7A25e6D1e1999DF3dC1accddeF278A87303"
]
},
{
"timestamp": 1708538741,
"transactionHash": "0xe34f46235ddb8e21d5fd4f490565d2a39664fc9603c77b15322004a6e5320a3a",
"implementations": [
"oeth:0xE287AAd8F3B99e411f1939492565C7D3F0e77FeF"
]
},
{
"timestamp": 1708826605,
"transactionHash": "0xc0461376071132e3a21654c5f61a6d2ca2f3cebe1ec3ab263c67b91b07db4dcf",
"implementations": [
"oeth:0x2e69a3962E7fF2EEF0c98a76aC3B294b03Dc4C3D"
]
},
{
"timestamp": 1710769317,
"transactionHash": "0x284c45850a83457ea38a5d25e2c0630ac5161026e839f7b27a8c88bfe22456ad",
"implementations": [
"oeth:0x5226a5D010F24F0df089963E94ce88E4c87EB53b"
]
},
{
"timestamp": 1715794729,
"transactionHash": "0xaf6f0949809d1e81f126f9288e833e90eea180f5159a3637d53ad367b294e5ad",
"implementations": [
"oeth:0xAF0079c65Cf5D2f38472956032f5012Cce7b1ba4"
]
},
{
"timestamp": 1716294163,
"transactionHash": "0x59d665d6c0c49dd5486bcc6809b21f485816efa779338497e7e67542fd7a5871",
"implementations": [
"oeth:0x0fDF0fa7FEA145c6c141BCa763c0D4c2e906b3e1"
]
},
{
"timestamp": 1725378635,
"transactionHash": "0x216fb5f149aebdda4ca076d3c9bca9d36f85e307b510a425848b40bd8801f86a",
"implementations": [
"oeth:0xA084031BA301D874a24525450297c1D51b0BF8Bd"
]
},
{
"timestamp": 1738111589,
"transactionHash": "0x055412f01d41dc49be4c853395e79f5ee4e10e736fe5420b5992997b0dc27add",
"implementations": [
"oeth:0x1a4b76a1366c9BceCd187289882823410512d8EB"
]
},
{
"timestamp": 1738939687,
"transactionHash": "0xc530c24b7b6fd88197b9adb1ff44360bc12087aed26bffcf0c62ec0d789131bd",
"implementations": [
"oeth:0xF383FD9A49282C9e1C99eB07a819e27E0d7B956c"
]
},
{
"timestamp": 1751304215,
"transactionHash": "0x612d2761ea8d8df4a72d12724c4b0d26d5ff8b1c1f17fe81d1e3012ba746072e",
"implementations": [
"oeth:0xD51099ac551350Bf3198c69104B5dc4694b3a536"
]
},
{
"timestamp": 1759844157,
"transactionHash": "0xd68d8d6f62cdeb169f7c8b7cd6b8df87e45679f1fe8577bd03322fc1dceec71f",
"implementations": [
"oeth:0x21352B3495A6eE1Bd2921Bdb0a876FaDc3A9245E"
]
},
{
"timestamp": 1770053069,
"transactionHash": "0xe3918b151a7edd22c00b59843b61403cbe665d76f55b6c47db1c1bfbf8454174",
"implementations": [
"oeth:0x0966F5034261CC50926fB9D5C1603A5034Ffa81c"
]
},
{
"timestamp": 1786729917,
"transactionHash": "0x5ef940d028891d65c1ab1383d1cf63e514e1906c1a4f7483c1bdb6e2b9ca39bd",
"implementations": [
"oeth:0x60674c53a4cC4ED350659C95fb8020B5AC61cA1D"
]
}
],
"description": "The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers. Since the V5 upgrade, deposits tagged with a special message prefix can only be filled through the Across V5 Gateway, which authenticates the fill and identifies the relayer paying for it.\n* Roles:\n * **admin**: EOA 2\n * **crossDomainAdmin**: HubPool; ultimately Across Multisig, OptimisticGovernor\n * **gateway**: Gateway",
"upgradableBy": [
{
"name": "OptimisticGovernor",
"delay": "2d"
},
{
"name": "Across Multisig",
"delay": "no"
},
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
}
],
"discoveryDrivenData": true
}
]
},
"risks": []
},
"description": "Intent framework specialised on popular chains and assets, speed and security.",
"detailedDescription": "# Crosschain transfer flow\n\nThe user initiates a transfer (sometimes called an intent) by depositing into the local chain \"SpokePool\" contract. The deposit specifies the recipient, the destination chain, the amount, the input token, the output token, a fill deadline by which the destination chain transfer must complete, and an optional exclusivity window during which only a chosen relayer can fill. User funds remain in the SpokePool; the deposit's parameters are not persisted in contract storage but only captured in a FundsDeposited event log, which relayers index offchain to learn about deposits.\n\nRelayers fill a crosschain request by calling the destination chain's SpokePool. During the exclusivity window only the chosen relayer can fill; after it expires anyone can. No fill is accepted past the fill deadline. Funds go to the user and the relay hash is marked Filled in the SpokePool's fillStatuses mapping to prevent double-fills.\n\n# Across V5 Gateway executions\n\nDeposits tagged with a special message prefix commit to an execution in the new Gateway contract and can only be filled through it: regular fills and the slow-fill path are blocked for them, and unfilled V5 deposits are refunded on the origin chain after the fill deadline like any other deposit. A V5 user signs a Merkle tree of alternative execution paths (e.g. different destination chains or routes) instead of one fixed order. Any solver can then execute one of the committed paths through the Gateway, which pulls the user's funds via standing token approvals or signed permits (Permit2, EIP-3009, ERC-2612) and runs the committed steps, of which the bridge fill can be one among several (e.g. swaps). The destination SpokePool validates the fill against the user's committed bounds (recipient, output token, minimum output amount) and pulls the output tokens from the standing approvals of the solver, who is then repaid through the unchanged root bundle settlement. The Gateway can be upgraded without delay by a multisig, which puts standing token approvals to the Gateway (and, transitively, relayers' standing approvals to the SpokePools) at risk if it is compromised.\n\n# Relayer repayments\n\nWhen a crosschain transfer is fulfilled, the relayer specifies on which chain and to which address they want to be repaid. A whitelisted proposer periodically posts a \"root bundle\" to the HubPool containing how much the protocol owes to each relayer (relayer refunds) and the pool rebalances needed so that there is enough liquidity on each chain for the refunds to be paid. The correctness of these roots is crucial; otherwise relayers could lie about filling a transfer and capture user funds.\n\nRoot bundles settle in two levels:\n\n1. Optimistic (Across-native): the proposer bonds 0.45 ABT (a simple ETH wrapper, not to be confused with the ACX governance token) and the root sits in a challenge period of 30m. If unchallenged, the bundle executes; UMA is not involved in this happy path.\n2. Dispute escalation (UMA): anyone can call disputeRootBundle() within the challenge period by posting an equal counter-bond. The disputed bundle is discarded immediately so a new proposal can be submitted, while the dispute itself is escalated to UMA's optimistic oracle, which resolves via UMA token voting; the losing party loses their bond.\n\nFor chains with a canonical L1 to L2 messenger, tokens and admin / refund messages move from the HubPool to each SpokePool through that chain's canonical bridge via a per-chain adapter. For chains without one (BNB Smart Chain, HyperEVM, Plasma, Tempo, Tron, ...), Across uses universal adapters: the HubPool writes the message calldata into the HubPoolStore on Ethereum, and the destination chain reads it by verifying a storage proof against Ethereum's state through a light client contract on the destination. Tokens travel via LayerZero OFT, or via Circle CCTP for USDC.\n\nLPs can provide single-token liquidity to the HubPool to front relayer refunds across chains, earning yield from an LP fee captured on every transfer.",
"detailedDescription": "# Crosschain transfer flow\n\nThe user initiates a transfer (sometimes called an intent) by depositing into the local chain \"SpokePool\" contract. The deposit specifies the recipient, the destination chain, the amount, the input token, the output token, a fill deadline by which the destination chain transfer must complete, and an optional exclusivity window during which only a chosen relayer can fill. User funds remain in the SpokePool; the deposit's parameters are not persisted in contract storage but only captured in a FundsDeposited event log, which relayers index offchain to learn about deposits.\n\nRelayers fill a crosschain request by calling the destination chain's SpokePool. During the exclusivity window only the chosen relayer can fill; after it expires anyone can. No fill is accepted past the fill deadline. Funds go to the user and the relay hash is marked Filled in the SpokePool's fillStatuses mapping to prevent double-fills.\n\n# Across V5 Gateway executions\n\nDeposits tagged with a special message prefix commit to an execution in the new Gateway contract and can only be filled through it: regular fills and the slow-fill path are blocked for them, and unfilled V5 deposits are refunded on the origin chain after the fill deadline like any other deposit. A V5 user signs a Merkle tree of alternative execution paths (e.g. different destination chains or routes) instead of one fixed order. Any solver can then execute one of the committed paths through the Gateway, which pulls the user's funds via standing token approvals or signed permits (Permit2, EIP-3009, ERC-2612) and runs the committed steps, of which the bridge fill can be one among several (e.g. swaps). The Gateway forwards only the ETH supplied with the execution to the committed executor. The destination SpokePool validates the fill against the user's committed bounds (recipient, output token, minimum output amount) and pulls the output tokens from the standing approvals of the solver, who is then repaid through the unchanged root bundle settlement. The Gateway can be upgraded without delay by a multisig, which puts standing token approvals to the Gateway (and, transitively, relayers' standing approvals to the SpokePools) at risk if it is compromised.\n\n# Relayer repayments\n\nWhen a crosschain transfer is fulfilled, the relayer specifies on which chain and to which address they want to be repaid. A whitelisted proposer periodically posts a \"root bundle\" to the HubPool containing how much the protocol owes to each relayer (relayer refunds) and the pool rebalances needed so that there is enough liquidity on each chain for the refunds to be paid. The correctness of these roots is crucial; otherwise relayers could lie about filling a transfer and capture user funds.\n\nRoot bundles settle in two levels:\n\n1. Optimistic (Across-native): the proposer bonds 0.45 ABT (a simple ETH wrapper, not to be confused with the ACX governance token) and the root sits in a challenge period of 30m. If unchallenged, the bundle executes; UMA is not involved in this happy path.\n2. Dispute escalation (UMA): anyone can call disputeRootBundle() within the challenge period by posting an equal counter-bond. The disputed bundle is discarded immediately so a new proposal can be submitted, while the dispute itself is escalated to UMA's optimistic oracle, which resolves via UMA token voting; the losing party loses their bond.\n\nFor chains with a canonical L1 to L2 messenger, tokens and admin / refund messages move from the HubPool to each SpokePool through that chain's canonical bridge via a per-chain adapter. For chains without one (BNB Smart Chain, HyperEVM, Plasma, Tempo, Tron, ...), Across uses universal adapters: the HubPool writes the message calldata into the HubPoolStore on Ethereum, and the destination chain reads it by verifying a storage proof against Ethereum's state through a light client contract on the destination. Tokens travel via LayerZero OFT, or via Circle CCTP for USDC.\n\nLPs can provide single-token liquidity to the HubPool to front relayer refunds across chains, earning yield from an LP fee captured on every transfer.",
"intent": {
"color": "#1E88E5",
"intentModel": {
"value": "Intent framework",
"description": "Relayers compete to fill cross-chain transfer intents across supported chains and assets."
},
"userRecovery": {
"value": "Slow-fill fallback",
"description": "If no relayer fast-fills a deposit, Across can complete it through the protocol slow-fill path. This is not available for chains without an Ethereum canonical bridge adapter, nor for V5 Gateway deposits, which are instead refunded on the origin chain after the fill deadline expires."
},
"solverAccess": {
"value": "Permissionless",
"description": "Relayers compete to fill deposits and receive repayment."
},
"settlement": {
"value": "Optimistic",
"description": "Relayer repayment is settled through the Across system and can be escalated to token voting via UMA."
}
},
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "OptimisticGovernor",
"name": "OptimisticGovernor",
"accounts": [
{
"address": "eth:0x8692B776d1Ff0664177c90465038056Dc64f8991",
"type": "Contract",
"isVerified": true,
"name": "0x8692…8991",
"url": "https://etherscan.io/address/0x8692B776d1Ff0664177c90465038056Dc64f8991"
}
],
"chain": "ethereum",
"description": "Optimistic Governance module allowing for proposals by anyone with a bond of 2 WETH. They become executable if not challenged within 2d. The rules for proposals can be read directly from the contract values.\n* Can upgrade **with 2d delay**\n * Ethereum_SpokePool [via: Across Multisig with 2d delay → HubPool]\n * OP_SpokePool [via: Across Multisig with 2d delay → HubPool]\n* Can interact with AcrossConfigStore\n * update configuration values **with 2d delay** [via: Across Multisig with 2d delay]\n* Can interact with AdapterStore\n * set the token-to-messenger mappings that adapters use to route OFT cross-chain transfers **with 2d delay** [via: Across Multisig with 2d delay]\n* Can interact with Ethereum_SpokePool\n * relay and delete root bundles, pause the contract, manage routes, set the withdrawal recipient (crosschain rebalancing target) **with 2d delay** [via: Across Multisig with 2d delay → HubPool]\n* Can interact with OptimisticGovernor\n * set guard, avatar, target, delay, identifier, escalationManager, bond token and amount **with 2d delay** [via: Across Multisig with 2d delay]\n* Can interact with HubPool\n * pause the system, manage all fees, bonds and security parameters, manage tokens and chain support, and critical emergency actions like admin functions on remote SpokePools or deleting proposals (can steal funds) **with 2d delay** [via: Across Multisig with 2d delay]\n* Can interact with AcrossBondToken (ABT)\n * manage the proposer role **with 2d delay** [via: Across Multisig with 2d delay]\n* Can interact with OP_SpokePool\n * relay and delete root bundles, pause the contract, manage routes, set the withdrawal recipient (crosschain rebalancing target) **with 2d delay** [via: Across Multisig with 2d delay → HubPool]",
"discoveryDrivenData": true
},
{
"id": "Across Multisig",
"name": "Across Multisig",
"description": "A Multisig with 3/5 threshold. It uses the following modules: OptimisticGovernor (Optimistic Governance module allowing for proposals by anyone with a bond of 2 WETH. They become executable if not challenged within 2d. The rules for proposals can be read directly from the contract values).\n* Can upgrade **with no delay**\n * Ethereum_SpokePool [via: HubPool]\n * OP_SpokePool [via: HubPool]\n* Can interact with AcrossConfigStore\n * update configuration values \n* Can interact with AdapterStore\n * set the token-to-messenger mappings that adapters use to route OFT cross-chain transfers \n* Can interact with Ethereum_SpokePool\n * relay and delete root bundles, pause the contract, manage routes, set the withdrawal recipient (crosschain rebalancing target) [via: HubPool]\n* Can interact with OptimisticGovernor\n * set guard, avatar, target, delay, identifier, escalationManager, bond token and amount \n* Can interact with HubPool\n * pause the system, manage all fees, bonds and security parameters, manage tokens and chain support, and critical emergency actions like admin functions on remote SpokePools or deleting proposals (can steal funds) \n* Can interact with AcrossBondToken (ABT)\n * manage the proposer role \n* Can interact with OP_SpokePool\n * relay and delete root bundles, pause the contract, manage routes, set the withdrawal recipient (crosschain rebalancing target) [via: HubPool]",
"accounts": [
{
"address": "eth:0xB524735356985D2f267FA010D681f061DfF03715",
"type": "Contract",
"isVerified": true,
"name": "0xB524…3715",
"url": "https://etherscan.io/address/0xB524735356985D2f267FA010D681f061DfF03715"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x72b32C1a6A75CBAfAe36c0CA8e763946d370E766",
"type": "EOA",
"isVerified": true,
"name": "0x72b3…E766",
"url": "https://etherscan.io/address/0x72b32C1a6A75CBAfAe36c0CA8e763946d370E766"
},
{
"address": "eth:0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe",
"type": "EOA",
"isVerified": true,
"name": "0x8372…c5fe",
"url": "https://etherscan.io/address/0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe"
},
{
"address": "eth:0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9",
"type": "EOA",
"isVerified": true,
"name": "0x9962…65e9",
"url": "https://etherscan.io/address/0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9"
},
{
"address": "eth:0xcc400c09ecBAC3e0033e4587BdFAABB26223e37d",
"type": "EOA",
"isVerified": true,
"name": "0xcc40…e37d",
"url": "https://etherscan.io/address/0xcc400c09ecBAC3e0033e4587BdFAABB26223e37d"
},
{
"address": "eth:0x868CF19464e17F76D6419ACC802B122c22D2FD34",
"type": "EOA",
"isVerified": true,
"name": "0x868C…FD34",
"url": "https://etherscan.io/address/0x868CF19464e17F76D6419ACC802B122c22D2FD34"
}
],
"discoveryDrivenData": true
},
{
"id": "GovernorV2",
"name": "GovernorV2",
"accounts": [
{
"address": "eth:0x7b292034084A41B9D441B71b6E3557Edd0463fa8",
"type": "Contract",
"isVerified": true,
"name": "0x7b29…3fa8",
"url": "https://etherscan.io/address/0x7b292034084A41B9D441B71b6E3557Edd0463fa8"
}
],
"chain": "ethereum",
"description": "Central UMA governance contract. It executes administrative proposals that have been passed by UMA token holder votes.\n* Can interact with VotingV2\n * set critical administrative parameters like migrating to a new contract and requesting governance actions (`requestPrice()`) directly \n* Can interact with Registry\n * manage registered contracts \n* Can interact with Finder\n * manage address mappings \n* Can interact with ProposerV2\n * set the bond amount \n* Can interact with Store\n * set fees for disputes and manage all roles in the contract \n* Can interact with GovernorV2\n * manage all roles in the contract \n* Can interact with EmergencyProposer\n * remove and slash proposals, set the bond amount and the expiry time, manage the executor address \n* Can interact with IdentifierWhitelist\n * manage the whitelist \n* Can interact with AddressWhitelist\n * manage the addresses on the whitelist \n* Can interact with OptimisticOracleV3\n * set critical administrative parameters like default bonds, bond token, fees ",
"discoveryDrivenData": true
},
{
"id": "Across Gateway Multisig",
"name": "Across Gateway Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * Gateway ",
"accounts": [
{
"address": "eth:0x4c45F70B1d9a7A6D1984daccAd74D0E973B73F01",
"type": "Contract",
"isVerified": true,
"name": "0x4c45…3F01",
"url": "https://etherscan.io/address/0x4c45F70B1d9a7A6D1984daccAd74D0E973B73F01"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe",
"type": "EOA",
"isVerified": true,
"name": "0x8372…c5fe",
"url": "https://etherscan.io/address/0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe"
},
{
"address": "eth:0x2B9CAc7a18C70cBB6F6639571785b70a41B8AE03",
"type": "EOA",
"isVerified": true,
"name": "0x2B9C…AE03",
"url": "https://etherscan.io/address/0x2B9CAc7a18C70cBB6F6639571785b70a41B8AE03"
},
{
"address": "eth:0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9",
"type": "EOA",
"isVerified": true,
"name": "0x9962…65e9",
"url": "https://etherscan.io/address/0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9"
},
{
"address": "eth:0xe767C1fCbeC2F9B3a229B82bBC8aa21baC09BDB4",
"type": "EOA",
"isVerified": true,
"name": "0xe767…BDB4",
"url": "https://etherscan.io/address/0xe767C1fCbeC2F9B3a229B82bBC8aa21baC09BDB4"
},
{
"address": "eth:0x4851ec4e5A5B392328b825ecD94aF1cA93Fd609e",
"type": "EOA",
"isVerified": true,
"name": "0x4851…609e",
"url": "https://etherscan.io/address/0x4851ec4e5A5B392328b825ecD94aF1cA93Fd609e"
}
],
"discoveryDrivenData": true
},
{
"id": "Gateway",
"name": "Gateway",
"accounts": [
{
"address": "eth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707",
"type": "Contract",
"isVerified": true,
"name": "0x998d…e707",
"url": "https://etherscan.io/address/0x998d7c178A1F9607b47eA3A8e22426451b3ce707"
}
],
"chain": "ethereum",
"description": "Entry point for Across V5 intent executions. Anyone can submit a user-signed execution path: the Gateway pulls the depositor's funds via standing token approvals or signed permits (Permit2 witness permits, EIP-3009, ERC-2612, EIP-712 transfer authorizations), then calls the committed executor. While executing, it exposes the execution context (submitter, executor, step commitment) that the SpokePool trusts to authenticate V5 fills.\n* Can interact with Ethereum_SpokePool\n * authenticate fills of V5-tagged deposits: only calls from this contract's live execution context can fill them, and executor-mode fills pull the output tokens from the standing token approvals that the current submitter (relayer) granted to the SpokePool ",
"discoveryDrivenData": true
},
{
"id": "ProposerV2",
"name": "ProposerV2",
"accounts": [
{
"address": "eth:0x50efaC9619225d7fB4703C5872da978849B6E7cC",
"type": "Contract",
"isVerified": true,
"name": "0x50ef…E7cC",
"url": "https://etherscan.io/address/0x50efaC9619225d7fB4703C5872da978849B6E7cC"
}
],
"chain": "ethereum",
"description": "Token governance contract allowing anyone to create a UMA governance proposal for a bond of 5,000 UMA tokens.\n* Can interact with GovernorV2\n * propose governance actions ",
"discoveryDrivenData": true
},
{
"id": "UMA Multisig",
"name": "UMA Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can interact with EmergencyProposer\n * remove proposals, execute emergency proposals ",
"accounts": [
{
"address": "eth:0x8180D59b7175d4064bDFA8138A58e9baBFFdA44a",
"type": "Contract",
"isVerified": true,
"name": "0x8180…A44a",
"url": "https://etherscan.io/address/0x8180D59b7175d4064bDFA8138A58e9baBFFdA44a"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x363605C0bdE9F1F5053aDA30618d95dbFc109Bf5",
"type": "EOA",
"isVerified": true,
"name": "0x3636…9Bf5",
"url": "https://etherscan.io/address/0x363605C0bdE9F1F5053aDA30618d95dbFc109Bf5"
},
{
"address": "eth:0xcc400c09ecBAC3e0033e4587BdFAABB26223e37d",
"type": "EOA",
"isVerified": true,
"name": "0xcc40…e37d",
"url": "https://etherscan.io/address/0xcc400c09ecBAC3e0033e4587BdFAABB26223e37d"
},
{
"address": "eth:0x72b32C1a6A75CBAfAe36c0CA8e763946d370E766",
"type": "EOA",
"isVerified": true,
"name": "0x72b3…E766",
"url": "https://etherscan.io/address/0x72b32C1a6A75CBAfAe36c0CA8e763946d370E766"
},
{
"address": "eth:0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe",
"type": "EOA",
"isVerified": true,
"name": "0x8372…c5fe",
"url": "https://etherscan.io/address/0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe"
}
],
"discoveryDrivenData": true
},
{
"id": "EmergencyProposer",
"name": "EmergencyProposer",
"accounts": [
{
"address": "eth:0x91F1804aCaf87C2D34A34A70be1bb16bB85D6748",
"type": "Contract",
"isVerified": true,
"name": "0x91F1…6748",
"url": "https://etherscan.io/address/0x91F1804aCaf87C2D34A34A70be1bb16bB85D6748"
}
],
"chain": "ethereum",
"description": "Token governance contract allowing anyone to create a UMA governance proposal for a bond of 5,000,000 UMA tokens. This circumvents the UMA optimistic oracle but can only be executed or removed after 10d, and only by UMA Multisig.\n* Can interact with GovernorV2\n * can bypass the voting system and execute proposals immediately ",
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xf7bAc63fc7CEaCf0589F25454Ecf5C2ce904997c",
"type": "EOA",
"isVerified": true,
"name": "0xf7bA…997c",
"url": "https://etherscan.io/address/0xf7bAc63fc7CEaCf0589F25454Ecf5C2ce904997c",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AcrossBondToken (ABT)\n * propose new root bundles to the HubPool by posting an ABT bond. Proposals settle optimistically; only disputes (via `disputeRootBundle()`) escalate to UMA token voting ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x2bAaA41d155ad8a4126184950B31F50A1513cE25",
"type": "EOA",
"isVerified": true,
"name": "0x2bAa…cE25",
"url": "https://etherscan.io/address/0x2bAaA41d155ad8a4126184950B31F50A1513cE25",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Store\n * withdraw fees ",
"discoveryDrivenData": true
}
]
},
"optimism": {
"roles": [],
"actors": [
{
"id": "Gateway",
"name": "Gateway",
"accounts": [
{
"address": "oeth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707",
"type": "Contract",
"isVerified": true,
"name": "0x998d…e707",
"url": "https://optimistic.etherscan.io/address/0x998d7c178A1F9607b47eA3A8e22426451b3ce707"
}
],
"chain": "optimism",
"description": "Entry point for Across V5 intent executions. Anyone can submit a user-signed execution path: the Gateway pulls the depositor's funds via standing token approvals or signed permits (Permit2 witness permits, EIP-3009, ERC-2612, EIP-712 transfer authorizations), then calls the committed executor. While executing, it exposes the execution context (submitter, executor, step commitment) that the SpokePool trusts to authenticate V5 fills.\n* Can interact with OP_SpokePool\n * authenticate fills of V5-tagged deposits: only calls from this contract's live execution context can fill them, and executor-mode fills pull the output tokens from the standing token approvals that the current submitter (relayer) granted to the SpokePool ",
"discoveryDrivenData": true
},
{
"id": "Across Gateway Multisig",
"name": "Across Gateway Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * Gateway ",
"accounts": [
{
"address": "oeth:0xd396CcB6770EAB84045c9Bce2939c478639E2A7F",
"type": "Contract",
"isVerified": true,
"name": "0xd396…2A7F",
"url": "https://optimistic.etherscan.io/address/0xd396CcB6770EAB84045c9Bce2939c478639E2A7F"
}
],
"chain": "optimism",
"references": [],
"participants": [
{
"address": "oeth:0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe",
"type": "EOA",
"isVerified": true,
"name": "0x8372…c5fe",
"url": "https://optimistic.etherscan.io/address/0x837219D7a9C666F5542c4559Bf17D7B804E5c5fe"
},
{
"address": "oeth:0x2B9CAc7a18C70cBB6F6639571785b70a41B8AE03",
"type": "EOA",
"isVerified": true,
"name": "0x2B9C…AE03",
"url": "https://optimistic.etherscan.io/address/0x2B9CAc7a18C70cBB6F6639571785b70a41B8AE03"
},
{
"address": "oeth:0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9",
"type": "EOA",
"isVerified": true,
"name": "0x9962…65e9",
"url": "https://optimistic.etherscan.io/address/0x996267d7d1B7f5046543feDe2c2Db473Ed4f65e9"
},
{
"address": "oeth:0xe767C1fCbeC2F9B3a229B82bBC8aa21baC09BDB4",
"type": "EOA",
"isVerified": true,
"name": "0xe767…BDB4",
"url": "https://optimistic.etherscan.io/address/0xe767C1fCbeC2F9B3a229B82bBC8aa21baC09BDB4"
},
{
"address": "oeth:0x4851ec4e5A5B392328b825ecD94aF1cA93Fd609e",
"type": "EOA",
"isVerified": true,
"name": "0x4851…609e",
"url": "https://optimistic.etherscan.io/address/0x4851ec4e5A5B392328b825ecD94aF1cA93Fd609e"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "oeth:0x0000000000000000000000000000000000000000",
"type": "EOA",
"isVerified": true,
"name": "0x0000…0000",
"url": "https://optimistic.etherscan.io/address/0x0000000000000000000000000000000000000000",
"displayName": "EOA 2"
}
],
"chain": "optimism",
"description": "* Can upgrade **with no delay**\n * OP_SpokePool ",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "across",
"bridgeType": "nonMinting"
}
],
"type": "intent"
}
+14 -0
[
{
"id": "879a6192",
"date": "Mon, 12 Oct 2026 07:57:23 GMT",
"timestamp": 1791789448,
"description": "Gateway now forwards only the execution's msg.value, preventing executors from sweeping residual ETH. One authorized EOA also removed its EIP-7702 delegation.\n\n[Gateway diff](https://disco.l2beat.com/diff/eth:0xd9E79B648e42B660d9943A2861aa5d0e4D5CDD3e/eth:0x64cFa63aCd51ab86fF1F4f2ADb3C8dA1D7D42aB0).",
"isHighSeverity": true,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Gateway (eth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707) [acrossv3/Gateway] {\n +++ description: Entry point for Across V5 intent executions. Anyone can submit a user-signed execution path: the Gateway pulls the depositor's funds via standing token approvals or signed permits (Permit2 witness permits, EIP-3009, ERC-2612, EIP-712 transfer authorizations), then calls the committed executor. While executing, it exposes the execution context (submitter, executor, step commitment) that the SpokePool trusts to authenticate V5 fills.\n sourceHashes.1:\n- \"0xf2ee0aa25d03ecbb1796a6eac55e023884760df22fda47dedfaed361c1ec6c35\"\n+ \"0x758d7b789b8c7d62dd988d0b7d796f9811d75afa480252b92492fe28259d538f\"\n values.$implementation:\n- \"eth:0xd9E79B648e42B660d9943A2861aa5d0e4D5CDD3e\"\n+ \"eth:0x64cFa63aCd51ab86fF1F4f2ADb3C8dA1D7D42aB0\"\n values.$pastUpgrades.2:\n+ [\"2026-10-09T18:50:23.000Z\",\"0x5a6a80fbc687552b0200c7830e52a3e4d216cab337b65e456d50771b6f009651\",[\"eth:0x64cFa63aCd51ab86fF1F4f2ADb3C8dA1D7D42aB0\"]]\n values.$upgradeCount:\n- 2\n+ 3\n implementationNames.eth:0xd9E79B648e42B660d9943A2861aa5d0e4D5CDD3e:\n- \"Gateway\"\n implementationNames.eth:0x64cFa63aCd51ab86fF1F4f2ADb3C8dA1D7D42aB0:\n+ \"Gateway\"\n }\n```\n\n```diff\n EOA (eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D) {\n +++ description: None\n sourceHashes:\n- [\"0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45\"]\n proxyType:\n- \"EIP7702 EOA\"\n+ \"EOA\"\n values:\n- {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x3818b9766109877e09a9c427e7b310cde355550731129529095a7e6b02cf55ab\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```"
}
]
},
{
"id": "2945753d",
"date": "Tue, 15 Sep 2026 11:29:53 GMT",
"timestamp": 1789471699,
"description": "Some rebalance routes removed (this allowed relayers to get refunded in these token/chain combinations) and 7702 delegation.",
"isHighSeverity": true,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D) {\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:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x3818b9766109877e09a9c427e7b310cde355550731129529095a7e6b02cf55ab\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```\n\n```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.poolRebalanceRoutes.Mode.0.destinationToken:\n- \"eth:0x4200000000000000000000000000000000000006\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Mode.1.destinationToken:\n- \"eth:0xd988097fb8612cc24eeC14542bC03424c656005f\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Mode.2.destinationToken:\n- \"eth:0xf0F161fDA2712DB8b566946122a5af183995e2eD\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Mode.3.destinationToken:\n- \"eth:0xcDd475325D6F564d27247D1DddBb0DAc6fA0a5CF\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "d16a4058",
"date": "Tue, 25 Aug 2026 08:51:00 GMT",
"timestamp": 1787647766,
"description": "7702 auth removed.",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D) {\n +++ description: None\n sourceHashes:\n- [\"0x3e6b48b0583e724b7006fcec0d9a021abd698deb8f7699582cdfee96bd65db4f\"]\n proxyType:\n- \"EIP7702 EOA\"\n+ \"EOA\"\n values:\n- {\"$implementation\":\"eth:0x69007702764179f14F51cdce752f4f775d74E139\",\"accountId\":\"alchemy.sma-7702.1.0.0\",\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getFallbackSignerData\":[\"eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",false]}\n }\n```"
}
]
},
{
"id": "93b9a0e8",
"date": "Mon, 17 Aug 2026 09:13:05 GMT",
"timestamp": 1786957091,
"description": "Across V5 upgrade: new Gateway contract and two new fill entrypoints for v5 deposits. In executor mode, the SpokePool pulls the output tokens from the Gateway's current solver using the relayer's standing approvals to the SpokePool.\n\nThe Gateway executes user-signed intent 'paths': anyone can submit one, and the Gateway pulls the depositor's funds via standing allowances or signed permits (Permit2 witness, EIP-3009, ERC-2612, EIP-712 transferFrom auths). It is owned and upgradable (no delay) by a new 3/5 'Across Gateway Multisig'.",
"isHighSeverity": true,
"changeCount": 21,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Ethereum_SpokePool (eth:0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5) [acrossv3/SpokePool] {\n +++ description: The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers. Since the V5 upgrade, deposits tagged with a special message prefix can only be filled through the Across V5 Gateway, which authenticates the fill and identifies the relayer paying for it.\n sourceHashes.1:\n- \"0x7c82111265c69f8a894d8029e30766541164d55fb1e814bf29ddacecaeee12c1\"\n+ \"0x667fb3db67749e9488a6511b73f11c5acfa08bd66fa64944fe1d3064fa551c6e\"\n values.$implementation:\n- \"eth:0x5E5B726C81f43B953a62AD87E2835C85c4D9Dd3B\"\n+ \"eth:0x456Ac26E5ec083EE9889eBa0d1a0A582502B8e84\"\n values.$pastUpgrades.11:\n+ [\"2026-08-14T18:02:35.000Z\",\"0x8149765132e15fb4f1dce1cab83f087ca099d778fee49191dff408069b734ad3\",[\"eth:0x456Ac26E5ec083EE9889eBa0d1a0A582502B8e84\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.gateway:\n+ \"eth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707\"\n values.V5_MAGIC_PREFIX:\n+ \"0x89ae4bc75915265a3f10e926c3894a29534f1d6362ee8959cb0e5be00f3527fd\"\n implementationNames.eth:0x5E5B726C81f43B953a62AD87E2835C85c4D9Dd3B:\n- \"Ethereum_SpokePool\"\n implementationNames.eth:0x456Ac26E5ec083EE9889eBa0d1a0A582502B8e84:\n+ \"Ethereum_SpokePool\"\n }\n```\n\n```diff\n contract OP_SpokePool (oeth:0x6f26Bf09B1C792e3228e5467807a900A503c0281) [acrossv3/SpokePool] {\n +++ description: The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers. Since the V5 upgrade, deposits tagged with a special message prefix can only be filled through the Across V5 Gateway, which authenticates the fill and identifies the relayer paying for it.\n name:\n- \"Optimism_SpokePool\"\n+ \"OP_SpokePool\"\n sourceHashes.1:\n- \"0xa7af88e42066dce1580a5c39e3bd045de8511f8a453056cd46140e3df8b96f19\"\n+ \"0x63512362033eb12727887f57a9397e800b1fa1b98ff0fe2742abe67f53d493f1\"\n values.$implementation:\n- \"oeth:0x0966F5034261CC50926fB9D5C1603A5034Ffa81c\"\n+ \"oeth:0x60674c53a4cC4ED350659C95fb8020B5AC61cA1D\"\n values.$pastUpgrades.15:\n+ [\"2026-08-14T17:51:57.000Z\",\"0x5ef940d028891d65c1ab1383d1cf63e514e1906c1a4f7483c1bdb6e2b9ca39bd\",[\"oeth:0x60674c53a4cC4ED350659C95fb8020B5AC61cA1D\"]]\n values.$upgradeCount:\n- 15\n+ 16\n values.gateway:\n+ \"oeth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707\"\n values.V5_MAGIC_PREFIX:\n+ \"0x89ae4bc75915265a3f10e926c3894a29534f1d6362ee8959cb0e5be00f3527fd\"\n implementationNames.oeth:0x0966F5034261CC50926fB9D5C1603A5034Ffa81c:\n- \"Optimism_SpokePool\"\n implementationNames.oeth:0x60674c53a4cC4ED350659C95fb8020B5AC61cA1D:\n+ \"OP_SpokePool\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Across Gateway Multisig (eth:0x4c45F70B1d9a7A6D1984daccAd74D0E973B73F01) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Gateway (eth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707) [acrossv3/Gateway]\n +++ description: Entry point for Across V5 intent executions. Anyone can submit a user-signed execution path: the Gateway pulls the depositor's funds via standing token approvals or signed permits (Permit2 witness permits, EIP-3009, ERC-2612, EIP-712 transfer authorizations), then calls the committed executor. While executing, it exposes the execution context (submitter, executor, step commitment) that the SpokePool trusts to authenticate V5 fills.\n```\n\n```diff\n+ Status: CREATED\n contract Gateway (oeth:0x998d7c178A1F9607b47eA3A8e22426451b3ce707) [acrossv3/Gateway]\n +++ description: Entry point for Across V5 intent executions. Anyone can submit a user-signed execution path: the Gateway pulls the depositor's funds via standing token approvals or signed permits (Permit2 witness permits, EIP-3009, ERC-2612, EIP-712 transfer authorizations), then calls the committed executor. While executing, it exposes the execution context (submitter, executor, step commitment) that the SpokePool trusts to authenticate V5 fills.\n```\n\n```diff\n+ Status: CREATED\n contract Across Gateway Multisig (oeth:0xd396CcB6770EAB84045c9Bce2939c478639E2A7F) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "fba25291",
"date": "Wed, 12 Aug 2026 12:22:05 GMT",
"timestamp": 1786537235,
"description": "More pool rebalance routes were disabled (see below for explanation).",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.poolRebalanceRoutes.Ethereum.4.destinationToken:\n- \"eth:0x6B175474E89094C44Da98b954EedeAC495271d0F\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lens.0.destinationToken:\n- \"eth:0xE5ecd226b3032910CEaa43ba92EE8232f8237553\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lens.2.destinationToken:\n- \"eth:0x88F08E304EC4f90D644Cec3Fb69b8aD414acf884\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.ZKsync Era.0.destinationToken:\n- \"eth:0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.ZKsync Era.1.destinationToken:\n- \"eth:0x493257fD37EDB34451f62EDf8D2a0C418852bA4C\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.ZKsync Era.2.destinationToken:\n- \"eth:0xBBeB516fb02a01611cBBE0453Fe3c580D7281011\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.ZKsync Era.3.destinationToken:\n- \"eth:0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "bcdea11c",
"date": "Mon, 10 Aug 2026 08:54:12 GMT",
"timestamp": 1786351959,
"description": "More pool rebalance routes across ten destination chains were disabled (see below for explanation).",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.poolRebalanceRoutes.Ink.1.destinationToken:\n- \"eth:0x2D270e6886d130D724215A266106e6832161EAEd\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Blast.0.destinationToken:\n- \"eth:0x4300000000000000000000000000000000000004\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Blast.1.destinationToken:\n- \"eth:0xF7bc58b8D8f97ADC129cfC4c9f45Ce3C0E1D2692\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Blast.2.destinationToken:\n- \"eth:0x4300000000000000000000000000000000000003\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "a3cfd192",
"date": "Wed, 29 Jul 2026 11:40:27 GMT",
"timestamp": 1785325146,
"description": "13 pool rebalance routes across ten destination chains were disabled by setting their destination token to the zero address. HubPool rejects root-bundle execution for disabled routes, so these token/chain pairs can no longer be used for pool rebalances and relayer refunds.",
"isHighSeverity": false,
"changeCount": 13,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.poolRebalanceRoutes.OP Mainnet.1.destinationToken:\n- \"eth:0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Unichain.1.destinationToken:\n- \"eth:0x078D782b760474a361dDA0AF3839290b0EF57AD6\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.1.destinationToken:\n- \"eth:0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.7.destinationToken:\n- \"eth:0xc2132D05D31c914a87C6611C10748AEb04B58e8F\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Monad.0.destinationToken:\n- \"eth:0x754704Bc059F8C67012fEd69BC8A327a5aafb603\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Monad.1.destinationToken:\n- \"eth:0xe7cd86e13AC4309349F30B3435a9d337750fC82D\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.World Chain.2.destinationToken:\n- \"eth:0x79A02482A880bCE3F13e09Da970dC34db4CD24d1\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.HyperEVM.0.destinationToken:\n- \"eth:0xb88339CB7199b77E23DB6E890353E22632Ba630f\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Base.1.destinationToken:\n- \"eth:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Plasma.0.destinationToken:\n- \"eth:0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.1.destinationToken:\n- \"eth:0xaf88d065e77c8cC2239327C5EDb3A432268e5831\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.7.destinationToken:\n- \"eth:0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Solana.0.destinationToken:\n- \"eth:0xaBc97431B1Bbe4C2D2f6E0E47ca60203452f5d61\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "8bfe499c",
"date": "Thu, 23 Jul 2026 13:55:34 GMT",
"timestamp": 1784814834,
"description": "22 pool rebalance routes were disabled by setting their destination tokens to the zero address.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.poolRebalanceRoutes.Ethereum.5.destinationToken:\n- \"eth:0x42bBFa2e77757C645eeaAd1655E0911a7553Efbc\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.4.destinationToken:\n- \"eth:0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.4.destinationToken:\n- \"eth:0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.5.destinationToken:\n- \"eth:0x1FcbE5937B0cc2adf69772D228fA4205aCF4D9b2\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.0.destinationToken:\n- \"eth:0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.1.destinationToken:\n- \"eth:0x66a2A913e447d6b4BF33EFbec43aAeF87890FBbc\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.2.destinationToken:\n- \"eth:0xdc0486f8bf31DF57a952bcd3c1d3e166e3d9eC8b\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.3.destinationToken:\n- \"eth:0x780f33Ad21314d9A1Ffb6867Fe53d48a76Ec0D16\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.4.destinationToken:\n- \"eth:0xf74195Bb8a5cf652411867c5C2C5b8C2a402be35\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.5.destinationToken:\n- \"eth:0xa18bF3994C0Cc6E3b63ac420308E5383f53120D7\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.6.destinationToken:\n- \"eth:0x5DE1677344D3Cb0D7D465c10b72A8f60699C062d\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Boba.7.destinationToken:\n- \"eth:0x96821b258955587069F680729cD77369C0892B40\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.ZKsync Era.4.destinationToken:\n- \"eth:0x4B9eb6c0b6ea15176BBF62841C6B2A8a398cb656\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lisk.0.destinationToken:\n- \"eth:0x4200000000000000000000000000000000000006\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lisk.1.destinationToken:\n- \"eth:0x05D032ac25d322df992303dCa074EE7392C117b9\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lisk.3.destinationToken:\n- \"eth:0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lisk.4.destinationToken:\n- \"eth:0xF242275d3a6527d877f2c927a82D9b057609cc71\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Base.2.destinationToken:\n- \"eth:0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.3.destinationToken:\n- \"eth:0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Linea.0.destinationToken:\n- \"eth:0x4AF15ec2A0BD43Db75dd04E62FAA3B8EF36b00d5\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Zora.0.destinationToken:\n- \"eth:0x4200000000000000000000000000000000000006\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Zora.1.destinationToken:\n- \"eth:0xCccCCccc7021b32EBb4e8C08314bD62F7c653EC4\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "d76372e0",
"date": "Wed, 08 Jul 2026 12:42:41 GMT",
"timestamp": 1783509971,
"description": "7702 delegation of the `protocolFeeCaptureAddress` EOA.\n\nsome `poolRebalanceRoutes` (UMA v1, ACX,..) are routed to the zero address, meaning they are now unsupported.",
"isHighSeverity": true,
"changeCount": 26,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D) {\n +++ description: None\n sourceHashes.0:\n- \"0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45\"\n+ \"0x3e6b48b0583e724b7006fcec0d9a021abd698deb8f7699582cdfee96bd65db4f\"\n values.$implementation:\n- \"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\"\n+ \"eth:0x69007702764179f14F51cdce752f4f775d74E139\"\n values.delegationManager:\n- \"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\"\n values.DOMAIN_VERSION:\n- \"1\"\n values.eip712Domain:\n- {\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]}\n values.getDeposit:\n- 0\n values.getDomainHash:\n- \"0x3818b9766109877e09a9c427e7b310cde355550731129529095a7e6b02cf55ab\"\n values.getNonce:\n- 0\n values.NAME:\n- \"EIP7702StatelessDeleGator\"\n values.PACKED_USER_OP_TYPEHASH:\n- \"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\"\n values.VERSION:\n- \"1.3.0\"\n values.accountId:\n+ \"alchemy.sma-7702.1.0.0\"\n values.getFallbackSignerData:\n+ [\"eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",false]\n }\n```\n\n```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.Adapters.Avalanche:\n+ \"eth:0x1af659333172DC502bD71Cf5b889521C97751838\"\n values.CrossChainContracts.Avalanche:\n+ \"eth:0xFE9D541c92E4e90437C7152A00244886dE37a658\"\n values.poolRebalanceRoutes.Ethereum.3.destinationToken:\n- \"eth:0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.9.destinationToken:\n- \"eth:0x44108f0223A3C3028F5Fe7AEC7f9bb2E66beF82F\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.13.destinationToken:\n- \"eth:0x1ff1dC3cB9eeDbC6Eb2d99C03b30A05cA625fB5a\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.3.destinationToken:\n- \"eth:0xE7798f023fC62146e8Aa1b36Da45fb70855a77Ea\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.7.destinationToken:\n- \"eth:0xFf733b2A3557a7ed6697007ab5D11B79FdD1b76B\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.3.destinationToken:\n- \"eth:0x3066818837c5e6eD6601bd5a91B0762877A6B731\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.8.destinationToken:\n- \"eth:0xF328b73B6c685831F238c30a23Fc19140CB4D8FC\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lens.1.destinationToken:\n- \"eth:0x6bDc36E20D267Ff0dd6097799f82e78907105e2F\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.5.destinationToken:\n- \"eth:0xd693Ec944A85eeca4247eC1c3b130DCa9B0C3b22\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.8.destinationToken:\n- \"eth:0x53691596d1BCe8CEa565b84d4915e69e03d9C99d\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Avalance_Adapter (eth:0x1af659333172DC502bD71Cf5b889521C97751838) [acrossv3/universalAdapter]\n +++ description: This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```"
}
]
},
{
"id": "78ab05fb",
"date": "Fri, 26 Jun 2026 09:06:40 GMT",
"timestamp": 1782464735,
"description": "Address PR review feedback:\n- `AcrossBondToken` proposers permission is deduped into a single description that clarifies the two-level settlement model: proposals are bonded with ABT and settle optimistically on the HubPool with no UMA involvement; UMA token voting only kicks in when a dispute is raised via `disputeRootBundle()` within the challenge period.\n- Universal-adapter descriptions: replace the `{{DATA_STORE}}` template placeholder, which was rendering as a raw `eth:0x…` address, with the literal contract name `HubPoolStore` so the prose reads naturally.\n\nAlso catches up to onchain state since the last main discovery: two newly registered chain mappings (`CrossChainContracts` + `Adapters`) and a couple of `poolRebalanceRoutes` re-points/disables.",
"isHighSeverity": false,
"changeCount": 25,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.Adapters.4663:\n+ \"eth:0xbc5E82035e2C8d4B335Ccb751D6BF47e44Dec678\"\n values.Adapters.5042:\n+ \"eth:0xCA5f9960022078F3585a188e06F910eeC29c7eBD\"\n values.CrossChainContracts.4663:\n+ \"eth:0xD29C85F15DF544bA632C9E25829fd29d767d7978\"\n values.CrossChainContracts.5042:\n+ \"eth:0x9b4A302A548c7e313c2b74C461db7b84d3074A84\"\n values.poolRebalanceRoutes.Ethereum.7.destinationToken:\n- \"eth:0xba100000625a3754423978a60c9317c58a424e3D\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.10.destinationToken:\n- \"eth:0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.11.destinationToken:\n- \"eth:0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.12.destinationToken:\n- \"eth:0x6033F7f88332B8db6ad452B7C6D5bB643990aE3f\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Ethereum.15.destinationToken:\n- \"eth:0x4e107a0000DB66f0E9Fd2039288Bf811dD1f9c74\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.5.destinationToken:\n- \"eth:0xFE8B128bA8C78aabC59d4c64cEE7fF28e9379921\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.8.destinationToken:\n- \"eth:0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.9.destinationToken:\n- \"eth:0x395Ae52bB17aef68C2888d941736A71dC6d4e125\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.OP Mainnet.11.destinationToken:\n- \"eth:0x4e107a0000DB66f0E9Fd2039288Bf811dD1f9c74\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.6.destinationToken:\n- \"eth:0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Polygon PoS.9.destinationToken:\n- \"eth:0x25788a1a171ec66Da6502f9975a15B609fF54CF6\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.World Chain.3.destinationToken:\n- \"eth:0x7077C71B4AF70737a08287E279B717Dcf64fdC57\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Lisk.2.destinationToken:\n- \"eth:0xac485391EB2d7D88253a7F1eF18C37f4242D1A24\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Base.3.destinationToken:\n- \"eth:0x4158734D47Fc9692176B5085E0F52ee0Da5d47F1\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Base.4.destinationToken:\n- \"eth:0xd652C5425aea2Afd5fb142e120FeCf79e18fafc3\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Base.5.destinationToken:\n- \"eth:0x4e107a0000DB66f0E9Fd2039288Bf811dD1f9c74\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.6.destinationToken:\n- \"eth:0x040d1EdC9569d4Bab2D15287Dc5A4F10F56a56B8\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.poolRebalanceRoutes.Arbitrum One.9.destinationToken:\n- \"eth:0xCF934E2402A5e072928a39a956964eb8F2B5B79C\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0xbc5E82035e2C8d4B335Ccb751D6BF47e44Dec678) [acrossv3/universalAdapter]\n +++ description: This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0xCA5f9960022078F3585a188e06F910eeC29c7eBD) [acrossv3/universalAdapter]\n +++ description: This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the HubPoolStore on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Optimism_SpokePool (oeth:0x6f26Bf09B1C792e3228e5467807a900A503c0281) [acrossv3/SpokePool]\n +++ description: The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers.\n```"
}
]
},
{
"id": "e255e5b0",
"date": "Thu, 21 May 2026 09:26:54 GMT",
"timestamp": 1779355521,
"description": "spoke contract on tron updated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) [acrossv3/HubPool] {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.CrossChainContracts.728126428:\n- \"eth:0x284352bb448C65b75EbE004862e4f4531042d628\"\n+ \"eth:0xc148aF9B50Bc03Cc0c616Cd85C66Aae9bD90cD80\"\n }\n```"
}
]
},
{
"id": "78920953",
"date": "Mon, 13 Apr 2026 09:14:19 GMT",
"timestamp": 1776070910,
"description": "add adapter for Tron.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda) {\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n values.Adapters.728126428:\n+ \"eth:0xA1da1A70cc9F27F4aEDff1d515B1a0C47fb6c3Db\"\n values.CrossChainContracts.728126428:\n+ \"eth:0x284352bb448C65b75EbE004862e4f4531042d628\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0xA1da1A70cc9F27F4aEDff1d515B1a0C47fb6c3Db)\n +++ description: This adapter can be used to send messages / root bundles to Tron. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```"
}
]
},
{
"id": "ca0d1980",
"date": "Tue, 24 Mar 2026 12:01:22 GMT",
"timestamp": 1774353602,
"description": "7702 delegation.",
"isHighSeverity": true,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x41c6ce964a4ef3e910f9ddf78152734dae8d1b1094ffc8334c50249a3b112bbf\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x3818b9766109877e09a9c427e7b310cde355550731129529095a7e6b02cf55ab\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```"
}
]
},
{
"id": "161a4ab4",
"date": "Mon, 02 Mar 2026 08:59:50 GMT",
"timestamp": 1772441911,
"description": "ms change.",
"isHighSeverity": false,
"changeCount": 48,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract VotingV2 (eth:0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac)\n +++ description: Core smart contract for UMA's Data Verification Mechanism (DVM), serving as source of truth for disputed claims. UMA token holders collectively resolve price requests and earn rewards for correct participation. Commit- and reveal phases for the voting take 1d each.\n```\n\n```diff\n+ Status: CREATED\n contract Zora_Adapter (eth:0x024F2fC31CBDD8de17194b1892c834f98Ef5169b)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Soneium_Adapter (eth:0x0c9d064523177dBB55CFE52b9D0c485FBFc35FD2)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0x0ec70777Ac388774041dD5A1778Cdf3AF3134D2B)\n +++ description: This adapter can be used to send messages / root bundles to Hyperliquid. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero.\n```\n\n```diff\n+ Status: CREATED\n contract Redstone_Adapter (eth:0x188F8C95B7cfB7993B53a4F643efa687916f73fA)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract HubPoolStore (eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61)\n +++ description: Simple data store used by the Universal_Adapter to store message calldata hashes. The content of this calldata can be proven by Ethereum zk light clients on remote chains and then executed to relay root bundles or arbitrary messages.\n```\n\n```diff\n+ Status: CREATED\n contract Scroll_Adapter (eth:0x2DA799c2223c6ffB595e578903AE6b95839160d8)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Boba_Adapter (eth:0x33B0Ec794c15D6Cc705818E70d4CaCe7bCfB5Af3)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Optimism_Adapter (eth:0x3562e309C6C79626E5F0Cf746FB5Bf4f6b8EebE5)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract AcrossConfigStore (eth:0x3B03509645713718B78951126E0A6de6f10043f5)\n +++ description: Simple, owner-controlled contract for storing protocol-wide, token-specific configuration data.\n```\n\n```diff\n+ Status: CREATED\n contract Registry (eth:0x3e532e6222afe9Bcf02DCB87216802c75D5113aE)\n +++ description: Registry for contracts that are allowed to call `requestPrice()` in the UMA voting contracts (ie. request dispute resolution by the UMA DVM).\n```\n\n```diff\n+ Status: CREATED\n contract Finder (eth:0x40f941E48A552bF496B154Af6bf55725f18D77c3)\n +++ description: Maps interface names to contract addresses (UMA protocol contracts).\n```\n\n```diff\n+ Status: CREATED\n contract AdapterStore (eth:0x42df4D71f35ffBD28ae217d52E83C1DA0007D63b)\n +++ description: A helper contract for chain adapters on the hub chain that support OFT messaging. Handles token -> messenger mapping.\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0x4577980eBFCC6fC8ff516aC06dA9e729c40cA57c)\n +++ description: This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```\n\n```diff\n+ Status: CREATED\n contract ProposerV2 (eth:0x50efaC9619225d7fB4703C5872da978849B6E7cC)\n +++ description: Token governance contract allowing anyone to create a UMA governance proposal for a bond of 5,000 UMA tokens.\n```\n\n```diff\n+ Status: CREATED\n contract Ethereum_Adapter (eth:0x527E872a5c3f0C7c24Fe33F2593cFB890a285084)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Polygon_Adapter (eth:0x537abE038C223066B50312474409924487D2E655)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Ink_Adapter (eth:0x545E43B6eC2f9a44CAa531298699Ff05958670B5)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Store (eth:0x54f44eA3D2e7aA0ac089c4d8F7C93C27844057BF)\n +++ description: UMA protocol contract responsible for calculating and collecting regular and final fees for using the DVM.\n```\n\n```diff\n+ Status: CREATED\n contract Linea_Adapter (eth:0x5A44A32c13e2C43416bFDE5dDF5DCb3880c42787)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Ethereum_SpokePool (eth:0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5)\n +++ description: The user-facing contract on each connected chain where funds are deposited to initiate a bridge transfer. It also receives settlement data from the HubPool to process refunds for the relayers who fulfilled those transfers.\n```\n\n```diff\n+ Status: CREATED\n contract ZkStack_CustomGasToken_Adapter (eth:0x5e0B7e20a77BDf11812837D30F1326068Bcf24Cf)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0x6f1C9d3bcDF51316E7b515a62C02F601500b084b)\n +++ description: This adapter can be used to send messages / root bundles to Binance Smart Chain. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero.\n```\n\n```diff\n+ Status: CREATED\n contract Alephzero_Adapter (eth:0x6F4083304C2cA99B077ACE06a5DcF670615915Af)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Base_Adapter (eth:0x799BDC55d91864b14B2eD63A34DeF5d502AA897f)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract GovernorV2 (eth:0x7b292034084A41B9D441B71b6E3557Edd0463fa8)\n +++ description: Central UMA governance contract. It executes administrative proposals that have been passed by UMA token holder votes.\n```\n\n```diff\n+ Status: CREATED\n contract UMA Multisig (eth:0x8180D59b7175d4064bDFA8138A58e9baBFFdA44a)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimisticGovernor (eth:0x8692B776d1Ff0664177c90465038056Dc64f8991)\n +++ description: Optimistic Governance module allowing for proposals by anyone with a bond of 2 WETH. They become executable if not challenged within 2d. The rules for proposals can be read directly from the contract values.\n```\n\n```diff\n+ Status: CREATED\n contract DoctorWho_Adapter (eth:0x8956eFa31572E1d7ed5c8e36772F214A57DFA0D1)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract WorldChain_Adapter (eth:0x8bbdD67102D743b8533c1277a4ffdA04Dea158D1)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyProposer (eth:0x91F1804aCaf87C2D34A34A70be1bb16bB85D6748)\n +++ description: Token governance contract allowing anyone to create a UMA governance proposal for a bond of 5,000,000 UMA tokens. This circumvents the UMA optimistic oracle but can only be executed or removed after 10d, and only by eth:0x8180D59b7175d4064bDFA8138A58e9baBFFdA44a.\n```\n\n```diff\n+ Status: CREATED\n contract FixedSlashSlashingLibrary (eth:0x9a406ba5a99983250Fd663947b3c968D387ce5cd)\n +++ description: Stores slashing parameters and calculates slashing amounts based on that (UMA protocol).\n```\n\n```diff\n+ Status: CREATED\n contract Solana_Adapter (eth:0x9F788694934fD2Ed34D5340B9a76EB34f2bFD7B3)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract ZkStack_Adapter (eth:0xA374585E6062517Ee367ee5044946A6fBe17724f)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Universal_Adapter (eth:0xb47fD69FE25878F4E43aAF2F9ad7D0A3A0B22363)\n +++ description: This adapter can be used to send messages / root bundles to Plasma Mainnet. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero.\n```\n\n```diff\n+ Status: CREATED\n contract Across Multisig (eth:0xB524735356985D2f267FA010D681f061DfF03715)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Arbitrum_Adapter (eth:0xc0b6d2f794cc787C71f2cA5ceCD57102C32379B3)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract HubPool (eth:0xc186fA914353c44b2E33eBE05f21846F1048bEda)\n +++ description: The central L1 contract (hub) that manages liquidity from LPs and coordinates cross-chain settlements. It receives and secures settlement proposals (root bundles) using the UMA Optimistic Oracle, with a challenge period of 30m and a bond amount of 0.45 ABT.\n```\n\n```diff\n+ Status: CREATED\n contract Monad_Adapter (eth:0xC29a3Ba0fBf477F16Fd53d2C438Eade024FD8452)\n +++ description: This adapter can be used to send messages / root bundles to chains that do not have a canonical adapter. It stores calldata in the eth:0x1Ace3BbD69b63063F859514Eca29C9BDd8310E61 on Ethereum, which can then be zk proven on a remote chain. This adapter also supports bridging OFTs via LayerZero and USDC via CCTP.\n```\n\n```diff\n+ Status: CREATED\n contract IdentifierWhitelist (eth:0xcF649d9Da4D1362C4DAEa67573430Bd6f945e570)\n +++ description: Keeps a list of whitelisted identifiers that are accepted by the UMA v3 protocol. Across uses the identifier `ACROSS-V2` for its disputes.\n```\n\n```diff\n+ Status: CREATED\n contract AddressWhitelist (eth:0xdBF90434dF0B98219f87d112F37d74B1D90758c7)\n +++ description: A simple address whitelist for tokens that can be used as bonds and/or fees. This whitelist is checked and enforced by various smart contracts in the UMA ecosystem.\n```\n\n```diff\n+ Status: CREATED\n contract OP_Adapter (eth:0xE1f04404b74F996A311F13aE291849fC153578Ac)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract AcrossBondToken (ABT) (eth:0xee1DC6BCF1Ee967a350e9aC6CaaAA236109002ea)\n +++ description: A bond token wrapping ETH for usage in the Across protocol. Implements modified ERC20 logic to only allow permissioned proposers to use it as a bond for root bundle proposals.\n```\n\n```diff\n+ Status: CREATED\n contract SkinnyOptimisticOracle (eth:0xeE3Afe347D5C74317041E2618C49534dAf887c24)\n +++ description: Validates bridge messages by allowing proposers to make bonded assertions about crosschain events. It enforces a challenge period during which any invalid claims can be disputed and escalated to UMA's Data Verification Mechanism (DVM) for resolution.\n```\n\n```diff\n+ Status: CREATED\n contract Lisk_Adapter (eth:0xF039AdCC74936F90fE175e8b3FE0FdC8b8E0c73b)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Mode_Adapter (eth:0xf1B59868697f3925b72889ede818B9E7ba0316d0)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract Blast_Adapter (eth:0xF2bEf5E905AAE0295003ab14872F811E914EdD81)\n +++ description: Modular, chain-specific contract that abstracts the communication logic for settlement between the HubPool and various SpokePools and their Relayers, often via canonical bridges.\n```\n\n```diff\n+ Status: CREATED\n contract OptimisticOracleV3 (eth:0xfb55F43fB9F48F63f9269DB7Dde3BbBe1ebDC0dE)\n +++ description: Standard UMA optimistic oracle contract that allows anyone to make an arbitrary claim by posting a bond. The claim is considered true unless it is successfully disputed within a challenge window, with UMA's DVM acting as the final arbiter for disputes.\n```"
}
]
}
]
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -93
+0 -92
{
"addresses": {
"arbitrum": [
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 1, EOA 2",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"base": [
{
"name": "BaseBlobstream",
"isVerified": true,
"address": "base:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0x6ABa5D2084362038C9640a8851ff3b8BCbA81Ca6"
],
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710651207,
"transactionHash": "0x4549f6dd026054361c6ec3372f446d9a594205d6a2681001f4d3567ef55d8d73",
"implementations": [
"base:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724833,
"transactionHash": "0xcc77a9f79cc2dc869a5b2afcb9abe14014680e03797e00244a4580deb278eee8",
"implementations": [
"base:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698369,
"transactionHash": "0xd2efcdcc2ae2c8725a9d68bcce93edf7f4e2c5326ec75e9aea9cbdb6dfc7c6d3",
"implementations": [
"base:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166563,
"transactionHash": "0x972e1b10b3fd4c52bbd75c6215f12438b15229c9f609ad42273eb3985d8e4767",
"implementations": [
"base:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 3, EOA 4",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayBase",
"isVerified": true,
"address": "base:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "base:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"ethereum": [
{
"name": "EthereumBlobstream",
"isVerified": true,
"address": "eth:0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8bF34D8df1eF0A8A7f27fC587202848E528018E6"
],
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717615307,
"transactionHash": "0xf156e666fc403369415601ab683befc8e177f698b69a4c4c313706127ec18a86",
"implementations": [
"eth:0x41a87C543EBcbD93706CF5260AD057D9eCBA1caE"
]
},
{
"timestamp": 1724698523,
"transactionHash": "0x2cbc956737b46bd304d04f3051a65e311686d35792c54c67030d0c5417e76508",
"implementations": [
"eth:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166527,
"transactionHash": "0xcc2a77da632e84e5fb17e863ec744d5f0921b70c191487179dd9e28ab855a3be",
"implementations": [
"eth:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 5, EOA 6",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Cf3876F681Dbb6EdA8f6FfC45D66B996Df08fAe#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"programHashes": [
{
"title": "Celestia Blobstream DA bridge program",
"description": "ZK-friendly implementation of Celestia Blobstream DA bridge that proves that enough Celestia validators have confirmed a given data root.",
"programUrl": "https://github.com/succinctlabs/sp1-blobstream/tree/78a9d3419339a8c60bf51e1e3241f242bc44d434/program",
"proverSystemProject": "sp1hypercube",
"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 commit hash in [sp1-blobstream](https://github.com/succinctlabs/sp1-blobstream/tree/main) repo: `git checkout 78a9d3419339a8c60bf51e1e3241f242bc44d434`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-blobstream/program` dir run: `cargo prove build --docker --tag v6.1.0 --elf-name blobstream-elf --output-directory ../elf` to build the blobstream program elf within a docker container and place it in `sp1-blobstream/elf`.\n4. From `sp1-blobstream` run: `cargo run --bin vkey --release` to print the vkey of the `blobstream-elf` program.",
"hash": "0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745"
}
],
"risks": [
{
"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."
},
{
"category": "Funds can be frozen if",
"text": "the bridge contract is frozen by the Guardian (BlobstreamMultisig)."
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1783679422,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+22 -59
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x89E31965D844a309231B1f17759Ccaf1b7c09861",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xe5Dc3C0a3489b81A6F3AE3bB49bF9CcBFB85a3dB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x5852f5888f0563ac1d7e3bf2b566e63fa981394e24b9753a41416a2ba6bdbfbc",
"implementations": [
"eth:0x7b5a84F818B6fC3F079EE87c214F369062188D2A"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x911EA44d22EB903515378625dA3a0E09D2E1B074"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x9c61C5a8FF9408B83ac92571278550097A9d2BB5"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xa9c79551eA70D311f5153a27Cba12396e5128b9c"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0xe5Dc3C0a3489b81A6F3AE3bB49bF9CcBFB85a3dB"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner\n * **batcherHash**: EOA 1\n * **owner**: Celo cLabs Multisig",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x89E31965D844a309231B1f17759Ccaf1b7c09861#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0x7411775e32485632423395def2883f19e3a11c66c88c57f08d9975a927e2b166",
"implementations": [
"eth:0x6322C2f2D6a4305Fc033754d486A5A067Ee5F9b1"
]
},
{
"timestamp": 1741879583,
"transactionHash": "0x381b707419ae79c88d6fa34ec819396c80ba54f489d47d10ff85c4285b64e447",
"implementations": [
"eth:0x3Da872782f9fB696fD72Af2ec9313a56bDA6f06d"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0xBeD463769920dAc19a7E2aDf47B6C6Bb6480bD97"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x215A5fF85308A72A772F09B520dA71D3520e9aC7"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x661DfA933f77148Dc8d84b06646a2868D7ae5DeB"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
}
],
"description": "The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the 42.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0xb42846aca12a846645e69e61c48c9b8de7078117c710ff124b04c18f735fbc5e",
"implementations": [
"eth:0xe8b013bEE7Bd603e2f0B4825638559d645A4C4CB"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner\n * **owner**: CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683#code"
},
{
"name": "SuperchainConfig",
"isVerified": true,
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04"
],
"implementations": [
"eth:0x5570b1f2b97B1E35b5C6f9Ee76f6cf02c9917504"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1705954799,
"transactionHash": "0x8ba0e42b89cde22310b644ed30fd44e4a348619a165a54c908e7dc341e9bbd0c",
"implementations": [
"eth:0x53c165169401764778F780a69701385eb0FF19B7"
]
},
{
"timestamp": 1718044163,
"transactionHash": "0xe361c0d4ae3aebc94b3f281ee372fbb1cbdb0c33ca8b1b35e7f3b009b2fcbdb0",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1718044163,
"transactionHash": "0xe361c0d4ae3aebc94b3f281ee372fbb1cbdb0c33ca8b1b35e7f3b009b2fcbdb0",
"implementations": [
"eth:0x53c165169401764778F780a69701385eb0FF19B7"
]
},
{
"timestamp": 1743612623,
"transactionHash": "0x5f3530e593bbac37c61dc5b7755b6a40c06c20c1a3a1b13fca5b7d00cde65c29",
"implementations": [
"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7"
]
},
{
"timestamp": 1753379243,
"transactionHash": "0x46acdce174c8d83ebe2f208d8c76c867e75617483d64c3e407f69ae2f9868716",
"implementations": [
"eth:0xCe28685EB204186b557133766eCA00334EB441E4"
]
},
{
"timestamp": 1764092795,
"transactionHash": "0xf556934cb4de1ab40a4cfba17856cd601cbc8b875b96a9ccd8ee32bcd363abf5",
"implementations": [
"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
]
},
{
"timestamp": 1782428747,
"transactionHash": "0xbfdac60c9687a2e469159bf2458e73de2915a0a5eb53c4991a7ecde2b1fb3f15",
"implementations": [
"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"
]
},
{
"timestamp": 1782428747,
"transactionHash": "0xbfdac60c9687a2e469159bf2458e73de2915a0a5eb53c4991a7ecde2b1fb3f15",
"implementations": [
"eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550"
]
},
{
"timestamp": 1790268683,
"transactionHash": "0x0a0fe86f7b1a3d3d2d0be990e3f8b15628b885363ae527fa9548cb2c2375741a",
"implementations": [
"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"
]
},
{
"timestamp": 1790268683,
"transactionHash": "0x0a0fe86f7b1a3d3d2d0be990e3f8b15628b885363ae527fa9548cb2c2375741a",
"implementations": [
"eth:0x5570b1f2b97B1E35b5C6f9Ee76f6cf02c9917504"
]
},
{
"timestamp": 1790268683,
"transactionHash": "0x0a0fe86f7b1a3d3d2d0be990e3f8b15628b885363ae527fa9548cb2c2375741a",
"implementations": [
"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8"
]
},
{
"timestamp": 1790268683,
"transactionHash": "0x0a0fe86f7b1a3d3d2d0be990e3f8b15628b885363ae527fa9548cb2c2375741a",
"implementations": [
"eth:0x5570b1f2b97B1E35b5C6f9Ee76f6cf02c9917504"
]
}
],
"description": "Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3 months if left untouched.\n* Roles:\n * **admin**: SuperchainProxyAdmin; ultimately SuperchainProxyAdminOwner\n * **guardian**: Optimism Guardian Multisig; ultimately OpFoundationUpgradeSafe, Optimism EOA 1, Optimism Security Council, SaferSafes",
"upgradableBy": [
{
"name": "SuperchainProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x95703e0982140D16f8ebA6d158FccEde42f04a4C#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xE45D2d835d0b2D3C7f4fEe1eaa19A068d0ba8A88"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x142804c112b7513d03962454fab1f12292cf4b4833ca1701f5122a7212476c77",
"implementations": [
"eth:0xDE47b113E4157ed15fA46c5572562aC11146c5eA"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x3d5a67747dE7E09b0d71F5d782c8b45f6307B9Fd"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x807124F75FF2120b2f26D7e6f9e39C03ee9DE212"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xA183A771B6c5F6e88cd351bBDC40E1ECD4521Cad"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0xE45D2d835d0b2D3C7f4fEe1eaa19A068d0ba8A88"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1AC1181fc4e4F877963680587AEAa2C90D7EbB95#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0x3C519816C5BdC0a0199147594F83feD4F5847f13",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x088ae685dbdd16320c9d3f99e7feea6c823156f69ab0da7dc48ce6c38498c55e",
"implementations": [
"eth:0xad5D111e961A5E451C8172034115bcc0551b6551"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x276d3730f219f7ec22274f7263180b8452B46d47"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x7f1d12fB2911EB095278085f721e644C1f675696"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3C519816C5BdC0a0199147594F83feD4F5847f13#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xfA707F45A23370d9154AF4457401274E38FA2d8A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe#code"
},
{
"name": "LivenessModule",
"isVerified": true,
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "used to remove members inactive for 3mo 8d while making sure that the threshold remains above 75%. If the number of members falls below 8, the OpFoundationUpgradeSafe takes ownership of the multisig\n* Roles:\n * **fallbackOwner**: OpFoundationUpgradeSafe if the number of Optimism Security Council members falls below 8\n * **livenessGuard**: LivenessGuard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0454092516c9A4d636d3CAfA1e82161376C8a748#code"
},
{
"name": "Celo native asset Token",
"isVerified": true,
"address": "eth:0x057898f3C43F129a17517B9056D23851F124b19f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x64fE3f9201E6534D2d744c7C57D134E709131a6e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0xe145ca9f0fea9f384f7abad906b81717a0d407de37718cb9036678937c44d9f0",
"implementations": [
"eth:0x64fE3f9201E6534D2d744c7C57D134E709131a6e"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x057898f3C43F129a17517B9056D23851F124b19f#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "CeloSuperchainConfig",
"isVerified": true,
"address": "eth:0x25035d2233d099f0BA710ca1e5a3834842870C66",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xA59b2eBf8231f0e31508Bd18e9185BeB5Ab1C038"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xA59b2eBf8231f0e31508Bd18e9185BeB5Ab1C038"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x25035d2233d099f0BA710ca1e5a3834842870C66#code"
},
{
"name": "FaultDisputeGame",
"isVerified": true,
"address": "eth:0x25Bd434Aa96EE31D6661c89CF4290281f1ed856F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Logic of the dispute game. When a state root is proposed, a dispute game contract is deployed. Challengers can use such contracts to challenge the proposed state root.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x25Bd434Aa96EE31D6661c89CF4290281f1ed856F#code"
},
{
"name": "SuperchainProxyAdmin",
"isVerified": true,
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: SuperchainProxyAdminOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x543bA4AADBAb8f9025686Bd03993043599c6fB04#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6463dEE3828677F6270d83d45408044fc5eDB908#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x6f0E4f1EB98A52EfaCF7BE11d48B9d9d6510A906",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x149BD036f5F57D0FF4b5F102C9d46E3c0EB2C016"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879595,
"transactionHash": "0x0297053983c066511596ec9542fd1d217b46039efc3d729f4e4468ecfff47b6b",
"implementations": [
"eth:0x0B3004b843dA84FE5D4C46AeB5E80F826e5CD69A"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x149BD036f5F57D0FF4b5F102C9d46E3c0EB2C016"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6f0E4f1EB98A52EfaCF7BE11d48B9d9d6510A906#code"
},
{
"name": "DeputyPauseModule",
"isVerified": true,
"address": "eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Allows 0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module.\n* Roles:\n * **deputy**: Optimism EOA 1 though restricted to the SuperchainConfig's `pause()` function",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x783A434532Ee94667979213af1711505E8bFE374",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: CeloProxyAdminOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x783A434532Ee94667979213af1711505E8bFE374#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0x8fE58d2168b5412Cf1Bd212cE6137f8b7300222d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the OPSuccinctFaultDisputeGame. Variant for chains using OPSuccinct (SP1) games instead of Cannon, which omits Cannon-specific cross-contract fields (vm, oracle, weth, challengePeriod, absolutePrestate from game).\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8fE58d2168b5412Cf1Bd212cE6137f8b7300222d#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x91FA5B653aFe81A79890A93ad83768A04cc011b4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x91FA5B653aFe81A79890A93ad83768A04cc011b4#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xa83a2E8595b602aD98C928E9cD123c0E05C84FD9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa83a2E8595b602aD98C928E9cD123c0E05C84FD9#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0xC700d16428cF5Bfa71D91E66fA54Fc11A73f2552",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0xb86a464CC743440FddAa43900e05318ef4818b29"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately CeloProxyAdminOwner",
"upgradableBy": [
{
"name": "CeloProxyAdminOwner",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC700d16428cF5Bfa71D91E66fA54Fc11A73f2552#code"
},
{
"name": "AccessManager",
"isVerified": true,
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract managing access control for proposers and challengers in OPSuccinct.\n* Roles:\n * **challengers**: EOA 3, EOA 4, EOA 5, EOA 6, EOA 8, EOA 9\n * **owner**: Celo cLabs Multisig\n * **proposers**: EOA 2, EOA 7",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF59a19c5578291cB7fd22618D16281aDf76f2816#code"
},
{
"name": "OPSuccinctFaultDisputeGame",
"isVerified": true,
"address": "eth:0xfF1caC738a5263736AF258e4b3D6a4970C6351FF",
"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/0xfF1caC738a5263736AF258e4b3D6a4970C6351FF#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"celo": [
{
"name": "L2CrossDomainMessenger",
"isVerified": true,
"address": "celo:0x4200000000000000000000000000000000000007",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"celo:0x4200000000000000000000000000000000000018"
],
"implementations": [
"celo:0xC0d3c0d3c0D3c0D3C0d3C0D3C0D3c0d3c0d30007"
]
},
"chain": "celo",
"pastUpgrades": [],
"description": "The L2CrossDomainMessenger (L2xDM) contract sends messages from L2 to L1, and relays messages from L1 onto L2 with a system tx. In the event that a message sent from L2 to L1 is rejected for exceeding the L1 gas limit, it can be resubmitted via this contract’s replay function.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately CeloProxyAdminOwner - L2 Alias",
"upgradableBy": [
{
"id": "CeloProxyAdminOwner---L2-Alias",
"name": "CeloProxyAdminOwner - L2 Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://celoscan.io/address/0x4200000000000000000000000000000000000007#code"
},
{
"name": "L2StandardBridge",
"isVerified": true,
"address": "celo:0x4200000000000000000000000000000000000010",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"celo:0x4200000000000000000000000000000000000018"
],
"implementations": [
"celo:0xC0d3c0d3c0D3c0d3C0D3c0D3C0d3C0D3C0D30010"
]
},
"chain": "celo",
"pastUpgrades": [],
"description": "The L2StandardBridge contract is the main entry point to deposit or withdraw ERC20 tokens from L2 to L1. This contract can store any token.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately CeloProxyAdminOwner - L2 Alias",
"upgradableBy": [
{
"id": "CeloProxyAdminOwner---L2-Alias",
"name": "CeloProxyAdminOwner - L2 Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://celoscan.io/address/0x4200000000000000000000000000000000000010#code"
},
{
"name": "L2ToL1MessagePasser",
"isVerified": true,
"address": "celo:0x4200000000000000000000000000000000000016",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"celo:0x4200000000000000000000000000000000000018"
],
"implementations": [
"celo:0xC0D3C0d3C0d3c0d3C0d3C0D3c0D3c0d3c0D30016"
]
},
"chain": "celo",
"pastUpgrades": [],
"description": "Contract used internally by the L2CrossDomainMessenger to send messages to L1, including withdrawals. It can also be used directly as a low-level interface.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately CeloProxyAdminOwner - L2 Alias",
"upgradableBy": [
{
"id": "CeloProxyAdminOwner---L2-Alias",
"name": "CeloProxyAdminOwner - L2 Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://celoscan.io/address/0x4200000000000000000000000000000000000016#code"
},
{
"name": "L2ProxyAdmin",
"isVerified": true,
"address": "celo:0x4200000000000000000000000000000000000018",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"celo:0x4200000000000000000000000000000000000018"
],
"implementations": [
"celo:0xC0d3C0D3c0d3C0d3c0d3c0D3C0D3C0d3C0D30018"
]
},
"chain": "celo",
"pastUpgrades": [],
"description": "Administration contract for other contract proxies.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately CeloProxyAdminOwner - L2 Alias\n * **owner**: CeloProxyAdminOwner - L2 Alias",
"upgradableBy": [
{
"id": "CeloProxyAdminOwner---L2-Alias",
"name": "CeloProxyAdminOwner - L2 Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://celoscan.io/address/0x4200000000000000000000000000000000000018#code"
}
]
},
"escrows": [
{
"address": "0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"sinceTimestamp": 1741879559,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1741879583,
"transactionHash": "0x7411775e32485632423395def2883f19e3a11c66c88c57f08d9975a927e2b166",
"implementations": [
"eth:0x6322C2f2D6a4305Fc033754d486A5A067Ee5F9b1"
]
},
{
"timestamp": 1741879583,
"transactionHash": "0x381b707419ae79c88d6fa34ec819396c80ba54f489d47d10ff85c4285b64e447",
"implementations": [
"eth:0x3Da872782f9fB696fD72Af2ec9313a56bDA6f06d"
]
},
{
"timestamp": 1751883851,
"transactionHash": "0x14663947fe932e8ad6d57fe9aa61910d8d2e5fc37ac5e16e4345c3f8e2f7b2d2",
"implementations": [
"eth:0xBeD463769920dAc19a7E2aDf47B6C6Bb6480bD97"
]
},
{
"timestamp": 1751884031,
"transactionHash": "0xa9816c6dcbbe126e3b5c56f26ecfeebcb2dc03ab78535a7d5ed2bcdeea7ccf39",
"implementations": [
"eth:0x215A5fF85308A72A772F09B520dA71D3520e9aC7"
]
},
{
"timestamp": 1774940723,
"transactionHash": "0x66a97a8a6934d37b3ed077e788fb02fbce53e02ad7d95d3159ba6347ede395c8",
"implementations": [
"eth:0x661DfA933f77148Dc8d84b06646a2868D7ae5DeB"
]
},
{
"timestamp": 1774940891,
"transactionHash": "0xce8f5d953104dbe1a793fdcf76a16290f1c8765f87fcef729c2ad7e2e95a07dc",
"implementations": [
"eth:0x2c431080Fc733E259654f3b91E39468d9A85Ac9b"
]
}
],
"description": "Main entry point for users depositing ETH.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xc5c5D157928BDBD2ACf6d0777626b6C75a9EAEDC#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"sinceTimestamp": 1741879559,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x783A434532Ee94667979213af1711505E8bFE374"
],
"implementations": [
"eth:0xfA707F45A23370d9154AF4457401274E38FA2d8A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Main entry point for users depositing ERC20 token that do not require custom gateway.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct FDP v2.1.0",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/celo-org/op-succinct/tree/celo/v2.1.0/programs/aggregation",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [celo-org/op-succinct](https://github.com/celo-org/op-succinct) repo: `git checkout celo/v2.1.0`. Commit hash should be `00ac9f41a19917be8add5f7b60bef5be93b5b2b7`.\n2. Make sure docker is running by running `docker ps`\n3. Reproducibly rebuild the program ELF from source: from `programs/aggregation` run `cargo prove build --elf-name aggregation-elf --docker --tag v6.1.0 --output-directory ../../elf`. The rebuilt ELF is byte-identical to the one committed in the release.\n4. From the `op-succinct` dir run `cargo run --bin config --release --features eigenda` to print the verification key hashes.\n ",
"hash": "0x00b04647b693a1024f3f6524643693ac5445fbabe5cdfcd3b2d3d468274d4be4"
},
{
"title": "Range program of OP Succinct FDP v2.1.0",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/celo-org/op-succinct/tree/celo/v2.1.0/programs/range/eigenda",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [celo-org/op-succinct](https://github.com/celo-org/op-succinct) repo: `git checkout celo/v2.1.0`. Commit hash should be `00ac9f41a19917be8add5f7b60bef5be93b5b2b7`.\n2. Make sure docker is running by running `docker ps`\n3. Reproducibly rebuild the program ELF from source: from `programs/range/eigenda` run `cargo prove build --elf-name eigenda-range-elf-embedded --docker --tag v6.1.0 --output-directory ../../../elf`. The rebuilt ELF is byte-identical to the one committed in the release.\n4. From the `op-succinct` dir run `cargo run --bin config --release --features eigenda` to print the verification key hashes.\n ",
"hash": "0x1dd60be45aa2e74722e16f3a7c2d3b0a3339c1b72dc4e5b513487da3528e5c94"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1791383565,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+21 -26
{
"changes": [
{
"timestamp": 1742962247,
"type": "state",
"earliest": 1742962247
},
{
"timestamp": 1743612623,
"type": "code",
"earliest": 1743612623
},
{
"timestamp": 1751883851,
"type": "code",
"earliest": 1751883851
},
{
"timestamp": 1751883851,
"type": "code",
"earliest": 1751883851
},
{
"timestamp": 1751883851,
"type": "code",
"earliest": 1751883851
},
{
"timestamp": 1751883851,
"type": "code",
"updateId": "a6b1d9a2",
"earliest": 1751883851
},
{
"timestamp": 1751883851,
"type": "code",
"updateId": "a6b1d9a2",
"earliest": 1751883851
},
{
"timestamp": 1751883851,
"type": "state",
"updateId": "a6b1d9a2",
"earliest": 1751883851
},
{
"timestamp": 1751884031,
"type": "code",
"earliest": 1751884031
},
{
"timestamp": 1751884031,
"type": "code",
"earliest": 1751884031
},
{
"timestamp": 1751884031,
"type": "code",
"earliest": 1751884031
},
{
"timestamp": 1751884031,
"type": "code",
"updateId": "a6b1d9a2",
"earliest": 1751884031
},
{
"timestamp": 1751884031,
"type": "state",
"updateId": "a6b1d9a2",
"earliest": 1751884031
},
{
"timestamp": 1753379243,
"type": "code",
"earliest": 1753379243
},
{
"timestamp": 1764092795,
"type": "code",
"earliest": 1764092795
},
{
"timestamp": 1765362083,
"type": "state",
"updateId": "4c71daa7",
"earliest": 1765362083
},
{
"timestamp": 1765362251,
"type": "state",
"updateId": "4c71daa7",
"earliest": 1765362251
},
{
"timestamp": 1769109083,
"type": "state",
"earliest": 1769109083
},
{
"timestamp": 1770648059,
"type": "state",
"updateId": "953d9862",
"earliest": 1770648059
},
{
"timestamp": 1771445567,
"type": "state",
"updateId": "eeb61c0d",
"earliest": 1771445567
},
{
"timestamp": 1774940723,
"type": "code",
"earliest": 1774940723
},
{
"timestamp": 1774940723,
"type": "code",
"earliest": 1774940723
},
{
"timestamp": 1774940723,
"type": "code",
"earliest": 1774940723
},
{
"timestamp": 1774940723,
"type": "code",
"updateId": "616cc8c8",
"earliest": 1774940723
},
{
"timestamp": 1774940723,
"type": "code",
"updateId": "616cc8c8",
"earliest": 1774940723
},
{
"timestamp": 1774940723,
"type": "state",
"updateId": "616cc8c8",
"earliest": 1774940723
},
{
"timestamp": 1774940891,
"type": "code",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "code",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "code",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "state",
"updateId": "616cc8c8",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "code",
"updateId": "616cc8c8",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "code",
"updateId": "616cc8c8",
"earliest": 1774940891
},
{
"timestamp": 1774940891,
"type": "state",
"updateId": "616cc8c8",
"earliest": 1774940891
},
{
"timestamp": 1774941071,
"type": "state",
"updateId": "616cc8c8",
"earliest": 1774941071
},
{
"timestamp": 1776249827,
"type": "state",
"updateId": "4e1af81f",
"earliest": 1776249827
},
{
"timestamp": 1776370439,
"type": "state",
"updateId": "13fde891",
"earliest": 1776370439
},
{
"timestamp": 1777372319,
"type": "state",
"earliest": 1777372319
},
{
"timestamp": 1779804539,
"type": "state",
"updateId": "49f509dc",
"earliest": 1779804539
},
{
"timestamp": 1782428747,
"type": "code",
"earliest": 1782428747
},
{
"timestamp": 1790268683,
"type": "code",
"earliest": 1790268683
},
{
"timestamp": 1791526391,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526391
},
{
"timestamp": 1791526499,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526499
}
],
"contracts": [
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1791526499,
"codeChangeCount": 0,
"stateChangeCount": 4
},
{
"name": "SuperchainConfig",
"address": "eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C",
"isVerified": true,
"ossifyingSince": 1790268683,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "DisputeGameFactory",
"address": "eth:0xFbAC162162f4009Bb007C6DeBC36B1dAC10aF683",
"isVerified": true,
"ossifyingSince": 1779804539,
"codeChangeCount": 3,
"stateChangeCount": 9
},
{
"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": 2
},
{
"name": "AccessManager",
"address": "eth:0xF59a19c5578291cB7fd22618D16281aDf76f2816",
"isVerified": true,
"ossifyingSince": 1776249827,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"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": 0
},
{
"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": "SuperchainProxyAdmin",
"address": "eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04",
"isVerified": true,
"ossifyingSince": 1769109083,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1765362083,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"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": 1748963099,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "ProxyAdmin",
"address": "eth:0x783A434532Ee94667979213af1711505E8bFE374",
"isVerified": true,
"ossifyingSince": 1742962247,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "L2CrossDomainMessenger",
"address": "celo:0x4200000000000000000000000000000000000007",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2StandardBridge",
"address": "celo:0x4200000000000000000000000000000000000010",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ToL1MessagePasser",
"address": "celo:0x4200000000000000000000000000000000000016",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2ProxyAdmin",
"address": "celo:0x4200000000000000000000000000000000000018",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessModule",
"address": "eth:0x0454092516c9A4d636d3CAfA1e82161376C8a748",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Celo native asset Token",
"address": "eth:0x057898f3C43F129a17517B9056D23851F124b19f",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PreimageOracle",
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "LivenessGuard",
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x55093104b76FAA602F9d6c35A5FFF576bE78d753",
"isVerified": true,
"ossifyingSince": 1742960663,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"deployments": [
1587571205,
1587571205,
1587571205,
1587571205,
1685377355,
1705954799,
1717149791,
1717149791,
1720099223,
1740762647,
1741879547,
1741879547,
1741879559,
1741879583,
1741879583,
1741879595,
1741879595,
1741879595,
1748550023,
1748963099,
1762212215,
1764596735,
1764689339,
1771084331,
1771497368,
1774940723,
1774940723,
1774940723,
1774940723,
1774940891,
1774940891,
1776172415,
1779117911
],
"observedSince": 1742960663
}
+113 -52
+99 -52
{
"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",
"description": "* Roles:\n * **owner**: EOA 16",
"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",
"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 17",
"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,
"name": "DeBridgeAllowanceHolder_v0_1_4",
"isVerified": true,
"address": "eth:0x6A4C907A987635Fe0cD7C5003740599D4026C25A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA813476c73514012F5825Cbd408d05A19742714e"
],
"implementations": [
"eth:0x65425C1cE7D2e16D7C003B40E50E0B46401156f2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761039083,
"transactionHash": "0xcb72ee531a643248b5f200798c1e9c5b32c626e74453ae2a8b14dfdbba0e3f6c",
"implementations": [
"eth:0x65425C1cE7D2e16D7C003B40E50E0B46401156f2"
]
}
],
"description": "Upgradeable approval holder for deBridge intents. Authorized spenders can transfer any approved token from any user to any recipient, through direct allowances or Permit2. Transfers carry no intent-level checks.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 18\n * **allowedSpender**: DeBridgeIntentManager_v0_8_0\n * **defaultAdmin**: EOA 15",
"upgradableBy": [
{
"id": "EOA-18",
"name": "EOA 18",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "FeeTreasury",
"isVerified": true,
"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",
"description": "Holds fees collected by deBridge intent contracts. Authorized collectors can withdraw native tokens and ERC20 tokens to any recipient.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 16\n * **defaultAdmin**: EOA 16",
"upgradableBy": [
{
"id": "EOA-15",
"name": "EOA 15",
"id": "EOA-16",
"name": "EOA 16",
"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:0xA813476c73514012F5825Cbd408d05A19742714e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 18",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 15",
"description": "* Roles:\n * **owner**: EOA 16",
"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",
"description": "* Roles:\n * **owner**: EOA 18",
"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",
"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 16",
"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": "deBridge is a message bridge and lock-and-mint token bridge. Cross-chain submissions are authorized by ECDSA signatures from a fixed validator set (8-of-12 on Ethereum) verified onchain; all core contracts are upgradable by a deBridge multisig without delay.",
"detailedDescription": "# Architecture\n\ndeBridge deploys a central `DeBridgeGate` contract on each supported chain. It combines an arbitrary message bridge and a lock-and-mint token bridge: on an asset's native chain, tokens are locked in the gate escrow; on all other chains, the gate mints and burns deBridge-wrapped tokens (*deTokens*). Optional calldata attached to a transfer is executed by a dedicated `CallProxy` contract, which performs the call from its own address to isolate it from the gate's balances. Asset listing on the native side is permissionless: sending any local ERC20 through the gate auto-registers it (with unlimited transfer caps and no elevated-confirmation threshold until the admin configures them).\n\n# Message lifecycle\n\nA `send()` or `sendMessage()` call locks or burns the asset and emits a *submission* whose ID commits to the bridged asset, source and destination chain IDs, amount, receiver, a gate-wide nonce and — if calldata is attached — the execution fee, flags, fallback address, calldata hash and original sender. The protocol charges a flat native-token fee (currently 0.001 ETH on Ethereum) plus a variable fee (currently 10 bps).\n\nOn the destination chain, claiming is permissionless, but depends on validator signatures: anyone can submit them for a submission ID to `claim()`, earning the optional execution fee as a relayer reward. Attached calldata is forwarded to the `CallProxy` together with the bridged funds.\n\n# Crosschain validation\n\ndeBridge validators observe source chains offchain and sign submission IDs with plain ECDSA keys. The `SignatureVerifier` on the destination chain — callable only by the gate — accepts a submission if at least `minConfirmations` of the registered validator addresses have signed (currently 8 of 12 on Ethereum) and every validator flagged as *required* has signed (currently none is flagged).\n\nTwo additional rate limits exist in the code: transfers above a per-asset amount threshold require an elevated signature count, and a per-block circuit breaker raises the requirement once more than `confirmationThreshold` submissions are approved within one block. As currently configured on Ethereum, both elevated thresholds are set to 3 signatures — below the baseline quorum of 8 — so neither mechanism has any effect. Deploying a deToken for a new asset (`deployNewAsset`) is likewise permissionless but requires the same validator quorum over the asset's metadata.\n\n# Wrapped tokens (deTokens)\n\ndeTokens are deployed on first use by the `DeBridgeTokenDeployer` (callable only by the gate) as beacon proxies at deterministic addresses. The beacon is the deployer contract itself: its admin can re-point the shared implementation of **all** deTokens on the chain in a single transaction that emits no event. Each deToken grants `MINTER_ROLE` to the gate and both `DEFAULT_ADMIN_ROLE` and `PAUSER_ROLE` to the configured `deBridgeTokenAdmin` (the deBridge multisig on Ethereum), which can therefore pause transfers of any deToken or grant additional minters — i.e. mint unbacked deTokens — without touching the bridge itself.\n\n# Censorship and pausing\n\nThe gate admin can block (and unblock) individual submission IDs, permanently preventing specific already-signed transfers from being claimed, and can toggle entire chains as supported senders or receivers. Pausing is asymmetric: the `GOVMONITORING_ROLE` can pause all sends, claims and deToken deployments unilaterally, while only the `DEFAULT_ADMIN_ROLE` can unpause (on Ethereum, both roles are held by the same multisig).\n\n# Upgradeability and governance\n\nAll core contracts are upgradeable by a 5/8 deBridge multisig, with no timelock or exit window. The same multisig holds the `DEFAULT_ADMIN_ROLE` on all of them, so without an upgrade it can already replace the `SignatureVerifier` (i.e. swap out the entire validation layer), change the validator set and signature thresholds, replace the `CallProxy` and token deployer, redirect fee withdrawal rights, and censor submissions. The gate also has a `feeContractUpdater` slot that can adjust the flat protocol fee automatically (unset on Ethereum).\n\n# Monitoring\n\ndeBridge provides an [explorer](https://app.debridge.finance/explorer) for tracking crosschain transfers, and the gate emits dedicated `MonitoringSendEvent`/`MonitoringClaimEvent` events carrying the locked/minted totals as an offchain solvency-tracking aid. However, many security-relevant admin functions (replacing the signature verifier, changing signature thresholds or amount thresholds, re-pointing the deToken beacon implementation, setting the fee proxy or fee discounts) emit no events at all, so they can only be caught by storage diffing.",
"name": "deBridge",
"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_v0_8_0",
"name": "DeBridgeIntentManager_v0_8_0",
"accounts": [
{
"address": "eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07",
"type": "Contract",
"isVerified": true,
"name": "0xd2a4…4F07",
"url": "https://etherscan.io/address/0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07"
}
],
"chain": "ethereum",
"description": "Fills signed user intents through DLN orders or same-chain swaps. It pulls approved tokens through its configurable allowance holder. Fees, the DLN source and the fee recipient are configurable independently of user signatures.\n* Can interact with DeBridgeAllowanceHolder_v0_1_4\n * transfer approved tokens from any user to any recipient through direct allowances or Permit2 ",
"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",
"address": "eth:0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021",
"type": "EOA",
"isVerified": true,
"name": "0x844e…6444",
"url": "https://etherscan.io/address/0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"name": "0x6681…7021",
"url": "https://etherscan.io/address/0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021",
"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 ",
"description": "* Can interact with DeBridgeAllowanceHolder_v0_1_4\n * authorize spenders of all user approvals, replace Permit2 and rescue held funds \n* Can interact with DeBridgeIntentManager_v0_8_0\n * change the allowance holder, DLN source, fee recipient and intent fees, rescue held funds, and grant or revoke roles ",
"discoveryDrivenData": true
},
{
"id": "EOA-16",
"name": "EOA 16",
"accounts": [
{
"address": "eth:0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"type": "EOA",
"isVerified": true,
"name": "0x844e…6444",
"url": "https://etherscan.io/address/0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"displayName": "EOA 16"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * FeeTreasury [via: ProxyAdmin]\n * DeBridgeIntentManager [via: ProxyAdmin]\n* Can interact with FeeTreasury\n * grant and revoke fee withdrawal permissions \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-17",
"name": "EOA 17",
"accounts": [
{
"address": "eth:0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"type": "EOA",
"isVerified": true,
"name": "0xbda4…39e5",
"url": "https://etherscan.io/address/0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"displayName": "EOA 16"
"displayName": "EOA 17"
}
],
"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",
"id": "EOA-18",
"name": "EOA 18",
"accounts": [
{
"address": "eth:0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"type": "EOA",
"isVerified": true,
"name": "0xd6dF…C1EC",
"url": "https://etherscan.io/address/0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"displayName": "EOA 17"
"displayName": "EOA 18"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * [via: ProxyAdmin]",
"description": "* Can upgrade **with no delay**\n * DeBridgeAllowanceHolder_v0_1_4 [via: ProxyAdmin]\n * DeBridgeIntentManager_v0_8_0 [via: ProxyAdmin]",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "debridge",
"bridgeType": "lockAndMint"
}
],
"type": "other"
}
+14 -0
[
{
"id": "48c1876f",
"date": "Mon, 12 Oct 2026 08:16:37 GMT",
"timestamp": 1791789484,
"description": "New source verification confirms existing intent approval powers: authorized spenders can transfer users' approved tokens, and the allowance holder is instantly upgradeable.",
"isHighSeverity": false,
"changeCount": 37,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract FeeTreasury (eth:0x6D83EAEb957986FEA14Ff0E88AF23736598e22cc) [debridge/FeeTreasury] {\n +++ description: Holds fees collected by deBridge intent contracts. Authorized collectors can withdraw native tokens and ERC20 tokens to any recipient.\n name:\n- \"\"\n+ \"FeeTreasury\"\n unverified:\n- true\n description:\n- \"Unverified proxy referenced as the feeTreasury of the DeBridgeIntentManager.\"\n+ \"Holds fees collected by deBridge intent contracts. Authorized collectors can withdraw native tokens and ERC20 tokens to any recipient.\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444\"]}}\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.defaultAdminAC:\n+ [\"eth:0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444\"]\n values.FEE_COLLECTOR_ROLE:\n+ \"0x2dca0f5ce7e75a4b43fe2b0d6f5d0b7a2bf92ecf89f8f0aa17b8308b67038821\"\n values.feeCollectorAC:\n+ []\n values.version:\n+ \"1.0.0\"\n implementationNames.eth:0x4F2f3d3949B37A944A10Bf3C5355d0c827BbaF68:\n- \"\"\n+ \"FeeTreasury\"\n template:\n+ \"debridge/FeeTreasury\"\n sourceHashes:\n+ [\"0xf31aeb6e49fa6b302d2dc1ed76c4d201ad9c2accdb0d9a45c30b13ae334fb5e9\",\"0x35116f806a2c73237392ff272ff3e42a08883a47b72e2bf25a4a527e5c9bc0df\"]\n }\n```\n\n```diff\n contract DeBridgeIntentManager_v0_8_0 (eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07) [debridge/DeBridgeIntentManager_v0_8_0] {\n +++ description: Fills signed user intents through DLN orders or same-chain swaps. It pulls approved tokens through its configurable allowance holder. Fees, the DLN source and the fee recipient are configurable independently of user signatures.\n name:\n- \"\"\n+ \"DeBridgeIntentManager_v0_8_0\"\n unverified:\n- true\n description:\n- \"Unverified proxy holding the INTENT_MANAGER_ROLE on the IntentManagerValidator, allowing it to create DLN orders with custom or zero protocol fees.\"\n+ \"Fills signed user intents through DLN orders or same-chain swaps. It pulls approved tokens through its configurable allowance holder. Fees, the DLN source and the fee recipient are configurable independently of user signatures.\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021\"]}}\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.defaultAdminAC:\n+ [\"eth:0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021\"]\n values.eip712Domain:\n+ {\"fields\":\"0x0f\",\"name\":\"DeBridgeIntentManager\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]}\n+++ description: Configurable contract holding user token approvals.\n values.getAllowanceHolder:\n+ \"eth:0x6A4C907A987635Fe0cD7C5003740599D4026C25A\"\n values.getChainId:\n+ 1\n+++ description: Default intent fee in basis points, independently configurable from signed intents.\n values.getDefaultFeeBps:\n+ 0\n+++ description: Configurable DLN contract used to create orders.\n values.getDlnSource:\n+ \"eth:0xeF4fB24aD0916217251F553c0596F8Edc630EB66\"\n+++ description: Configurable recipient of fees charged on intent fills.\n values.getFeeTreasury:\n+ \"eth:0xA9e6dc0AEA659e087f1597dE618993506F2b0256\"\n+++ description: Intents signed before this timestamp are invalid.\n values.getGlobalNullificationTimestamp:\n+ 0\n values.GOVMONITORING_ROLE:\n+ \"0x2b36fa99e118fa8485d488becf749a974743fbeb6a7aa57e663893bf5d69a3c1\"\n values.govMonitoringAC:\n+ []\n+++ severity: MEDIUM\n values.paused:\n+ false\n values.subscriptionId:\n+ 0\n values.version:\n+ \"0.8.0\"\n implementationNames.eth:0x87Da5Cb5Ab2d98d4f0C0c9df195f33d08f6caD59:\n- \"\"\n+ \"DeBridgeIntentManager\"\n template:\n+ \"debridge/DeBridgeIntentManager_v0_8_0\"\n sourceHashes:\n+ [\"0xf31aeb6e49fa6b302d2dc1ed76c4d201ad9c2accdb0d9a45c30b13ae334fb5e9\",\"0x6e6b05a99b4cc1f246594dd1383952c7c190d86f251c4b50a61cbc3f7e24c8bd\"]\n fieldMeta:\n+ {\"getAllowanceHolder\":{\"description\":\"Configurable contract holding user token approvals.\"},\"getFeeTreasury\":{\"description\":\"Configurable recipient of fees charged on intent fills.\"},\"getDlnSource\":{\"description\":\"Configurable DLN contract used to create orders.\"},\"getDefaultFeeBps\":{\"description\":\"Default intent fee in basis points, independently configurable from signed intents.\"},\"paused\":{\"severity\":\"MEDIUM\"},\"getGlobalNullificationTimestamp\":{\"description\":\"Intents signed before this timestamp are invalid.\"}}\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0x6A4C907A987635Fe0cD7C5003740599D4026C25A\",\"description\":\"transfer approved tokens from any user to any recipient through direct allowances or Permit2.\",\"role\":\".allowedSpenderAC\"}]\n }\n```\n\n```diff\n+ Status: CREATED\n contract DeBridgeAllowanceHolder_v0_1_4 (eth:0x6A4C907A987635Fe0cD7C5003740599D4026C25A) [debridge/DeBridgeAllowanceHolder_v0_1_4]\n +++ description: Upgradeable approval holder for deBridge intents. Authorized spenders can transfer any approved token from any user to any recipient, through direct allowances or Permit2. Transfers carry no intent-level checks.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (eth:0xA813476c73514012F5825Cbd408d05A19742714e) [global/ProxyAdmin]\n +++ description: None\n```"
}
]
},
{
"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```"
}
]
}
]
+99 -52
+99 -52
{
"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",
"description": "* Roles:\n * **owner**: EOA 16",
"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",
"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 17",
"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,
"name": "DeBridgeAllowanceHolder_v0_1_4",
"isVerified": true,
"address": "eth:0x6A4C907A987635Fe0cD7C5003740599D4026C25A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xA813476c73514012F5825Cbd408d05A19742714e"
],
"implementations": [
"eth:0x65425C1cE7D2e16D7C003B40E50E0B46401156f2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761039083,
"transactionHash": "0xcb72ee531a643248b5f200798c1e9c5b32c626e74453ae2a8b14dfdbba0e3f6c",
"implementations": [
"eth:0x65425C1cE7D2e16D7C003B40E50E0B46401156f2"
]
}
],
"description": "Upgradeable approval holder for deBridge intents. Authorized spenders can transfer any approved token from any user to any recipient, through direct allowances or Permit2. Transfers carry no intent-level checks.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 18\n * **allowedSpender**: DeBridgeIntentManager_v0_8_0\n * **defaultAdmin**: EOA 15",
"upgradableBy": [
{
"id": "EOA-18",
"name": "EOA 18",
"delay": "no"
}
],
"discoveryDrivenData": true
},
{
"name": "FeeTreasury",
"isVerified": true,
"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",
"description": "Holds fees collected by deBridge intent contracts. Authorized collectors can withdraw native tokens and ERC20 tokens to any recipient.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 16\n * **defaultAdmin**: EOA 16",
"upgradableBy": [
{
"id": "EOA-15",
"name": "EOA 15",
"id": "EOA-16",
"name": "EOA 16",
"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:0xA813476c73514012F5825Cbd408d05A19742714e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 18",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xaBAc0E0AB68FC34441b36015bB952cD8f378283F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 15",
"description": "* Roles:\n * **owner**: EOA 16",
"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",
"description": "* Roles:\n * **owner**: EOA 18",
"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",
"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 16",
"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 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_v0_8_0",
"name": "DeBridgeIntentManager_v0_8_0",
"accounts": [
{
"address": "eth:0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07",
"type": "Contract",
"isVerified": true,
"name": "0xd2a4…4F07",
"url": "https://etherscan.io/address/0xd2a4cA9DA7B84c16B888df340d96a5a92aA44F07"
}
],
"chain": "ethereum",
"description": "Fills signed user intents through DLN orders or same-chain swaps. It pulls approved tokens through its configurable allowance holder. Fees, the DLN source and the fee recipient are configurable independently of user signatures.\n* Can interact with DeBridgeAllowanceHolder_v0_1_4\n * transfer approved tokens from any user to any recipient through direct allowances or Permit2 ",
"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",
"address": "eth:0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021",
"type": "EOA",
"isVerified": true,
"name": "0x844e…6444",
"url": "https://etherscan.io/address/0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"name": "0x6681…7021",
"url": "https://etherscan.io/address/0x6681b27BEC88Ba8c6F0E4B42dD6E3e5c1a797021",
"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 ",
"description": "* Can interact with DeBridgeAllowanceHolder_v0_1_4\n * authorize spenders of all user approvals, replace Permit2 and rescue held funds \n* Can interact with DeBridgeIntentManager_v0_8_0\n * change the allowance holder, DLN source, fee recipient and intent fees, rescue held funds, and grant or revoke roles ",
"discoveryDrivenData": true
},
{
"id": "EOA-16",
"name": "EOA 16",
"accounts": [
{
"address": "eth:0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"type": "EOA",
"isVerified": true,
"name": "0x844e…6444",
"url": "https://etherscan.io/address/0x844e5bd15b32B9F2245205AE59C9c6f5Fc696444",
"displayName": "EOA 16"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * FeeTreasury [via: ProxyAdmin]\n * DeBridgeIntentManager [via: ProxyAdmin]\n* Can interact with FeeTreasury\n * grant and revoke fee withdrawal permissions \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-17",
"name": "EOA 17",
"accounts": [
{
"address": "eth:0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"type": "EOA",
"isVerified": true,
"name": "0xbda4…39e5",
"url": "https://etherscan.io/address/0xbda458dfc28021dEbD72060671Fc350fA5CB39e5",
"displayName": "EOA 16"
"displayName": "EOA 17"
}
],
"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",
"id": "EOA-18",
"name": "EOA 18",
"accounts": [
{
"address": "eth:0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"type": "EOA",
"isVerified": true,
"name": "0xd6dF…C1EC",
"url": "https://etherscan.io/address/0xd6dF82F60a2FE1e61aEc29679bc4954F33D8C1EC",
"displayName": "EOA 17"
"displayName": "EOA 18"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * [via: ProxyAdmin]",
"description": "* Can upgrade **with no delay**\n * DeBridgeAllowanceHolder_v0_1_4 [via: ProxyAdmin]\n * DeBridgeIntentManager_v0_8_0 [via: ProxyAdmin]",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "debridge-dln",
"bridgeType": "nonMinting"
}
],
"type": "intent"
}
+17 -3
+1 -1
{
"dataAvailability": [
{
"name": "Data is posted to Celestia",
"description": "\nEclipse uses Celestia for data availability.\n\nThere is no automatic fallback mechanism to Ethereum for data availability. If Celestia becomes unavailable, the chain relies entirely on Celestia for transaction data recovery.",
"references": [
{
"title": "Eclipse Celestia Integration",
"url": "https://docs.eclipse.xyz/architecture/eclipse-architecture/modular-components-of-eclipse#data-availability-celestia"
}
],
"risks": [
{
"category": "Funds can be frozen if",
"text": "celestia becomes unavailable and transaction data cannot be retrieved."
}
]
}
],
"stateValidation": {
"categories": [
{
"title": "No state validation",
"description": "Eclipse implements a custom permissioned bridge. Withdrawals need to be actively authorized by a Multisig. Moreover, there is no mechanism to send arbitrary messages from Eclipse back to Ethereum. There is a 7d delay for withdrawals.",
"description": "Eclipse implements a custom permissioned bridge. Withdrawals need to be actively authorized by the 2/4 Eclipse Multisig. Moreover, there is no mechanism to send arbitrary messages from Eclipse back to Ethereum. There is a 7d delay for withdrawals.",
"references": [
{
"title": "CanonicalBridge.sol - Etherscan source code, authorizeWithdraw() function",
"url": "https://etherscan.io/address/0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a#code#F1#L237"
},
{
"title": "Mailbox.sol - Etherscan source code, receiveMessage() function calls CanonicalBridge",
"url": "https://etherscan.io/address/0x4cef0fa54dc06ce0ea198dab2f57d28a9dee712b#code#F1#L199"
},
{
"title": "Treasury.sol - Etherscan source code, emergencyWithdraw() function",
"url": "https://etherscan.io/address/0xF1F7a359C3f33EE8A66bdCbf4c897D25Caf90978#code"
}
],
"risks": [
{
"category": "Users can be censored if",
"text": "the bridge operators decide not to mint tokens after observing a deposit."
},
{
"category": "Funds can be stolen if",
"text": "the Treasury owner decides to transfer the funds locked on L1."
}
]
}
]
}
}
+1 -1
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Eclipse Multisig",
"name": "Eclipse Multisig",
"description": "A Multisig with 3/4 threshold. \n* Can interact with CanonicalBridgeV3\n * authorize withdrawals to any address \n * grant / revoke all access control roles and thus access all permissioned functions in the contract \n * pause the contract for deposits and withdrawals \n* Can interact with Upgrader0to1\n * start an upgrade of the core contracts \n* Can interact with Treasury\n * grant / revoke all access control roles and thus access all permissioned functions in the contract ",
"description": "A Multisig with 2/4 threshold. \n* Can interact with CanonicalBridgeV3\n * authorize withdrawals to any address \n * grant / revoke all access control roles and thus access all permissioned functions in the contract \n * pause the contract for deposits and withdrawals \n* Can interact with Upgrader0to1\n * start an upgrade of the core contracts \n* Can interact with Treasury\n * grant / revoke all access control roles and thus access all permissioned functions in the contract ",
"accounts": [
{
"address": "eth:0x4720342419C1D316B948690d12C86D5b485C64E0",
"type": "Contract",
"isVerified": true,
"name": "0x4720…64E0",
"url": "https://etherscan.io/address/0x4720342419C1D316B948690d12C86D5b485C64E0"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBb534A6Bd0440727cb5883D037DEd7358059D547",
"type": "EOA",
"isVerified": true,
"name": "0xBb53…D547",
"url": "https://etherscan.io/address/0xBb534A6Bd0440727cb5883D037DEd7358059D547"
},
{
"address": "eth:0x950815d0e585095B06111CD101440fb1E95AB2a5",
"type": "EOA",
"isVerified": true,
"name": "0x9508…B2a5",
"url": "https://etherscan.io/address/0x950815d0e585095B06111CD101440fb1E95AB2a5"
},
{
"address": "eth:0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2",
"type": "EOA",
"isVerified": true,
"name": "0x7572…BFc2",
"url": "https://etherscan.io/address/0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2"
},
{
"address": "eth:0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA",
"type": "EOA",
"isVerified": true,
"name": "0xF48C…46FA",
"url": "https://etherscan.io/address/0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA"
}
],
"discoveryDrivenData": true
},
{
"id": "Eclipse Multisig 2",
"name": "Eclipse Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * Treasury \n* Can interact with Treasury\n * grant / revoke all access control roles and thus access all permissioned functions in the contract \n * withdraw ETH from the contract, even when it is paused \n * withdraw ETH from the contract ",
"accounts": [
{
"address": "eth:0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC",
"type": "Contract",
"isVerified": true,
"name": "0x7B2c…0efC",
"url": "https://etherscan.io/address/0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xd0615B1D3F24f691153C076d45104eEd3eF8cDb5",
"type": "EOA",
"isVerified": true,
"name": "0xd061…cDb5",
"url": "https://etherscan.io/address/0xd0615B1D3F24f691153C076d45104eEd3eF8cDb5"
},
{
"address": "eth:0x0706Ffc1722D53a85ba90f32807880ccee968Fed",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x0706Ffc1722D53a85ba90f32807880ccee968Fed"
},
{
"address": "eth:0xDecF20b9213f5d7f16196420377d37ef5f8F9686",
"type": "EOA",
"isVerified": true,
"name": "0xDecF…9686",
"url": "https://etherscan.io/address/0xDecF20b9213f5d7f16196420377d37ef5f8F9686"
},
{
"address": "eth:0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9",
"type": "EOA",
"isVerified": true,
"name": "0xEe05…82D9",
"url": "https://etherscan.io/address/0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9"
},
{
"address": "eth:0x3392fd462d9710Fbf3A5703818b9920C119DC080",
"type": "EOA",
"isVerified": true,
"name": "0x3392…C080",
"url": "https://etherscan.io/address/0x3392fd462d9710Fbf3A5703818b9920C119DC080"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x1a84163249B2909f746C725F23D5ae2a66D7C4fE",
"type": "EOA",
"isVerified": true,
"name": "0x1a84…C4fE",
"url": "https://etherscan.io/address/0x1a84163249B2909f746C725F23D5ae2a66D7C4fE",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with CanonicalBridgeV3\n * authorize withdrawals to any address ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1763979972,
"baseTimestamp": 1791789506,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "45a75af8",
"date": "Mon, 12 Oct 2026 07:19:47 GMT",
"timestamp": 1791789506,
"description": "The bridge-controlling Eclipse Multisig lowered its threshold from 3/4 to 2/4. Two signers can now exercise its withdrawal and administration powers.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Eclipse Multisig (eth:0x4720342419C1D316B948690d12C86D5b485C64E0) [GnosisSafe] {\n +++ description: None\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"2 of 4 (50%)\"\n }\n```"
}
]
},
{
"id": "a2d524dd",
"date": "Thu, 20 Nov 2025 10:58:02 GMT",
"timestamp": 1763636218,
"description": "- CanonicalBridgeV1 cannot be used to withdraw funds from Treasury anymore.\n- CanonicalBridgeV2 deactivated, replaced by CanonicalBridgeV3:\nthe main change in V3 is new events via DepositedWithId and depositIndex, V3 can settle v1 and v2 pending withdrawals\nhttps://disco.l2beat.com/diff/eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51/eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a",
"isHighSeverity": false,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x1a84163249B2909f746C725F23D5ae2a66D7C4fE) {\n +++ description: None\n receivedPermissions.0.from:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n }\n```\n\n```diff\n- Status: DELETED\n contract CanonicalBridge (eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```\n\n```diff\n contract Eclipse Multisig (eth:0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"interact\",\"from\":\"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\",\"description\":\"authorize withdrawals to any address.\",\"role\":\".withdrawAuthorityAC\"}\n receivedPermissions.1:\n- {\"permission\":\"interact\",\"from\":\"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\",\"description\":\"grant / revoke all access control roles and thus access all permissioned functions in the contract.\",\"role\":\".defaultAdminAC\"}\n receivedPermissions.2:\n- {\"permission\":\"interact\",\"from\":\"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\",\"description\":\"pause the contract for deposits and withdrawals.\",\"role\":\".pauserAC\"}\n receivedPermissions.3.from:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n receivedPermissions.4.from:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n receivedPermissions.5.from:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n }\n```\n\n```diff\n contract Eclipse Multisig 2 (eth:0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"interact\",\"from\":\"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\",\"description\":\"grant / revoke all access control roles and thus access all permissioned functions in the contract.\",\"role\":\".defaultAdminAC\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract CanonicalBridgeV2 (eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```\n\n```diff\n contract Treasury (eth:0xD7E4b67E735733aC98a88F13d087D8aac670E644) {\n +++ description: Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.\n values.accessControl.DEPOSITOR_ROLE.members.1:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.0:\n- \"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\"\n values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.2:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n values.withdrawerAC.0:\n- \"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\"\n values.withdrawerAC.2:\n- \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n+ \"eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalBridgeV3 (eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```"
}
]
},
{
"id": "f417c074",
"date": "Mon, 08 Sep 2025 14:37:49 GMT",
"timestamp": 1757342204,
"description": "ms signer removed.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Eclipse Multisig (eth:0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n values.$members.1:\n- \"eth:0xCD2fA978D163c0068167dDff8b6951f0E626e6A4\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "387faee0",
"date": "Mon, 14 Jul 2025 12:44:59 GMT",
"timestamp": 1752497099,
"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 GnosisSafe (0x0706Ffc1722D53a85ba90f32807880ccee968Fed)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalBridgeV1 (0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```\n\n```diff\n+ Status: CREATED\n contract Eclipse Multisig (0x4720342419C1D316B948690d12C86D5b485C64E0)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Eclipse Multisig 2 (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EtherBridge (0x83cB71D80078bf670b3EfeC6AD9E5E6407cD0fd1)\n +++ description: (Deprecated) Entrypoint for depositing assets. This contract calls the Mailbox contract for each deposit. In practice this path is not used for deposits.\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalBridgeV2 (0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```\n\n```diff\n+ Status: CREATED\n contract Mailbox (0xb23B2492f7A9631104A5877F7FFA00633660968d)\n +++ description: (Deprecated) Mailbox contract for L1 -> L2 messaging. There is no canonical way to send messages back.\n```\n\n```diff\n+ Status: CREATED\n contract Upgrader0to1 (0xD02f545d57536BC1E8F12D867731F006AacE71E3)\n +++ description: This contract was used for an upgrade an still retains its permissions and permissioned actors.\n```\n\n```diff\n+ Status: CREATED\n contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644)\n +++ description: Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.\n```"
}
]
},
{
"id": "16d097aa",
"date": "Mon, 07 Jul 2025 17:02:21 GMT",
"timestamp": 1751907741,
"description": "discodrive.\n\nnew contract 'canonicalBridgeV2' added with [minimal diff to the old one.](https://disco.l2beat.com/diff/eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11/eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (0x1a84163249B2909f746C725F23D5ae2a66D7C4fE) {\n +++ description: None\n receivedPermissions.0.from:\n- \"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\"\n+ \"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n }\n```\n\n```diff\n contract CanonicalBridgeV1 (0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11) {\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.1:\n- \"0x1a84163249B2909f746C725F23D5ae2a66D7C4fE\"\n values.withdrawAuthorityAC.1:\n- \"0x1a84163249B2909f746C725F23D5ae2a66D7C4fE\"\n }\n```\n\n```diff\n contract Eclipse Multisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\",\"description\":\"authorize withdrawals to any address.\",\"role\":\".withdrawAuthorityAC\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\",\"description\":\"grant / revoke all access control roles and thus access all permissioned functions in the contract.\",\"role\":\".defaultAdminAC\"}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\",\"description\":\"pause the contract for deposits and withdrawals.\",\"role\":\".pauserAC\"}\n }\n```\n\n```diff\n contract Eclipse Multisig 2 (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\",\"description\":\"grant / revoke all access control roles and thus access all permissioned functions in the contract.\",\"role\":\".defaultAdminAC\"}\n }\n```\n\n```diff\n contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {\n +++ description: Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.\n values.accessControl.DEPOSITOR_ROLE.members.0:\n- \"0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\"\n values.accessControl.DEPOSITOR_ROLE.members.1:\n+ \"0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.2:\n+ \"0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n values.withdrawerAC.2:\n+ \"0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalBridgeV2 (0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)\n +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.\n```"
}
]
},
{
"id": "b5fb62cb",
"date": "Tue, 05 Nov 2024 12:13:10 GMT",
"timestamp": 1730808790,
"description": "Bridge upgrade without major logic changes.\n\n### EtherBridge \n- Now called CanonicalBridge.sol\n- More granular roles (AuthorityMultisig still main admin)\n- 'FraudWindow' of 7d introduced for normal withdrawals (but still using permissioned withdrawals, and Treasury allows permissioned direct emergencyWithdraw())\n- Two step process for withdrawals interfaces with the bridge and not the Treasury directly: 1) `authorizeWithdraw()` by permissioned actor any time 2) `claimWithdraw()` after 7d by anyone\n\n### Treasury\n- AccessControl and SemVer added\n- minor changes\n\n### EtherBridge",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TreasuryOwner (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"upgrade\",\"target\":\"0xD7E4b67E735733aC98a88F13d087D8aac670E644\"}]\n }\n```\n\n```diff\n contract EtherBridge (0x83cB71D80078bf670b3EfeC6AD9E5E6407cD0fd1) {\n +++ description: None\n values.paused:\n- false\n+ true\n }\n```\n\n```diff\n contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {\n +++ description: None\n sourceHashes.1:\n- \"0x9bdc786276b4d7feab768c6c8c296d44e22918524e1a28b23db40678d2b0eeef\"\n+ \"0x63d1cc40bc2613e87b2d6905ffda15f04f069e3bf72cb12a2979f95a0e7010b7\"\n issuedPermissions.0.target:\n- \"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.$admin:\n- \"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.$implementation:\n- \"0xa8E15d2B1bf6B0Fd3Bc9Ead06323c0730b67f8d4\"\n+ \"0xF1F7a359C3f33EE8A66bdCbf4c897D25Caf90978\"\n values.$pastUpgrades.1:\n+ [\"2024-11-05T03:53:23.000Z\",\"0x15aecc2b0cac5c03221b0f7ade10e888ad4f944df4bdc19c1f3c40fc56d5ebbb\",[\"0xF1F7a359C3f33EE8A66bdCbf4c897D25Caf90978\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.accessControl.DEFAULT_ADMIN_ROLE.members.1:\n+ \"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n+ \"0x4720342419C1D316B948690d12C86D5b485C64E0\"\n values.accessControl.PAUSER_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0xD02f545d57536BC1E8F12D867731F006AacE71E3\",\"0x4720342419C1D316B948690d12C86D5b485C64E0\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.accessControl.STARTER_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0xD02f545d57536BC1E8F12D867731F006AacE71E3\",\"0x4720342419C1D316B948690d12C86D5b485C64E0\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.accessControl.UPGRADER_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0xD02f545d57536BC1E8F12D867731F006AacE71E3\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.accessControl.EMERGENCY_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0xD02f545d57536BC1E8F12D867731F006AacE71E3\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.accessControl.DEPOSITOR_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.accessControl.WITHDRAW_AUTHORITY_ROLE:\n+ {\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11\",\"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"]}\n values.getVersionComponents.major:\n- 1\n+ 2\n values.owner:\n- \"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"\n values.pendingOwner:\n- \"0x4720342419C1D316B948690d12C86D5b485C64E0\"\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.DEPOSITOR_ROLE:\n+ \"0xd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf\"\n values.EMERGENCY_ROLE:\n+ \"0x9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d\"\n values.PAUSER_ROLE:\n+ \"0x39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c7626\"\n values.STARTER_ROLE:\n+ \"0xac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c\"\n values.UPGRADER_ROLE:\n+ \"0x0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f\"\n values.WITHDRAW_AUTHORITY_ROLE:\n+ \"0xfe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c53\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract CanonicalBridge (0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Upgrader0to1 (0xD02f545d57536BC1E8F12D867731F006AacE71E3)\n +++ description: None\n```"
}
]
},
{
"id": "7174cfac",
"date": "Fri, 01 Nov 2024 10:58:18 GMT",
"timestamp": 1730458698,
"description": "Multisig members change and threshold increase, also added a pending owner. Waiting for the new owner to accept the ownership transfer.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n values.$members.4:\n+ \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n values.$members.3:\n- \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n+ \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n values.$members.2:\n- \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n+ \"0x950815d0e585095B06111CD101440fb1E95AB2a5\"\n values.$members.1:\n- \"0x950815d0e585095B06111CD101440fb1E95AB2a5\"\n+ \"0xCD2fA978D163c0068167dDff8b6951f0E626e6A4\"\n values.$members.0:\n- \"0xCD2fA978D163c0068167dDff8b6951f0E626e6A4\"\n+ \"0xBb534A6Bd0440727cb5883D037DEd7358059D547\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```\n\n```diff\n contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {\n +++ description: None\n values.pendingOwner:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x4720342419C1D316B948690d12C86D5b485C64E0\"\n }\n```"
}
]
},
{
"id": "82c18f59",
"date": "Fri, 25 Oct 2024 10:10:21 GMT",
"timestamp": 1729851021,
"description": "Single signer changed in AuthorityMultisig.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n values.$members.3:\n- \"0xAFa49B46301BaaD9152dD5aF0C05245B0FA58695\"\n+ \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n values.$members.2:\n- \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n+ \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n values.$members.1:\n- \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n+ \"0x950815d0e585095B06111CD101440fb1E95AB2a5\"\n values.$members.0:\n- \"0x950815d0e585095B06111CD101440fb1E95AB2a5\"\n+ \"0xCD2fA978D163c0068167dDff8b6951f0E626e6A4\"\n }\n```"
}
]
},
{
"id": "6fba6493",
"date": "Sat, 19 Oct 2024 06:18:22 GMT",
"timestamp": 1729318702,
"description": "Threshold of the AuthorityMultisig raised to 2. As long as there are no withdrawals, the AuthorityMultisig is essentially a pauser only since upgrades do not change the withdrawals and can only affect a 'virtual' state on the L2 (from ethereum perspective).",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n values.$members.3:\n+ \"0xAFa49B46301BaaD9152dD5aF0C05245B0FA58695\"\n values.$members.2:\n- \"0xAFa49B46301BaaD9152dD5aF0C05245B0FA58695\"\n+ \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n values.$members.1:\n- \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n+ \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n values.$members.0:\n- \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n+ \"0x950815d0e585095B06111CD101440fb1E95AB2a5\"\n values.$threshold:\n- 1\n+ 2\n values.multisigThreshold:\n- \"1 of 3 (33%)\"\n+ \"2 of 4 (50%)\"\n }\n```"
}
]
},
{
"id": "392c1f2d",
"date": "Thu, 17 Oct 2024 13:35:06 GMT",
"timestamp": 1729172106,
"description": "To harden security in the context of recent Multisig hacks, Eclipse chose to add another signer to their multisig. In a sudden clouding of their minds, they forgot to raise the threshold and ended up weakening security instead.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {\n +++ description: None\n values.$members.2:\n+ \"0xAFa49B46301BaaD9152dD5aF0C05245B0FA58695\"\n values.$members.1:\n- \"0xAFa49B46301BaaD9152dD5aF0C05245B0FA58695\"\n+ \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n values.$members.0:\n- \"0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA\"\n+ \"0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2\"\n values.multisigThreshold:\n- \"1 of 2 (50%)\"\n+ \"1 of 3 (33%)\"\n }\n```"
}
]
},
{
"id": "eaf90f36",
"date": "Wed, 18 Sep 2024 07:09:47 GMT",
"timestamp": 1726643387,
"description": "One signer removed from TreasuryOwner.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TreasuryOwner (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {\n +++ description: None\n values.$members.5:\n- \"0x3392fd462d9710Fbf3A5703818b9920C119DC080\"\n values.$members.4:\n- \"0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9\"\n+ \"0x3392fd462d9710Fbf3A5703818b9920C119DC080\"\n values.$members.3:\n- \"0xDecF20b9213f5d7f16196420377d37ef5f8F9686\"\n+ \"0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9\"\n values.$members.2:\n- \"0x33440E53476B855A56B831e7924B5aa123981726\"\n+ \"0xDecF20b9213f5d7f16196420377d37ef5f8F9686\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 6 (33%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "e7ffebe0",
"date": "Sun, 15 Sep 2024 14:50:48 GMT",
"timestamp": 1726411848,
"description": "Add two signers to the TreasuryOwner MS.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract TreasuryOwner (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {\n +++ description: None\n values.$members.5:\n+ \"0x3392fd462d9710Fbf3A5703818b9920C119DC080\"\n values.$members.4:\n+ \"0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9\"\n values.$members.3:\n- \"0x3392fd462d9710Fbf3A5703818b9920C119DC080\"\n+ \"0xDecF20b9213f5d7f16196420377d37ef5f8F9686\"\n values.$members.2:\n- \"0xEe058D13A0c25a1ce2f68eb02dE4CE7E621982D9\"\n+ \"0x33440E53476B855A56B831e7924B5aa123981726\"\n values.$members.1:\n- \"0xDecF20b9213f5d7f16196420377d37ef5f8F9686\"\n+ \"0x0706Ffc1722D53a85ba90f32807880ccee968Fed\"\n values.$members.0:\n- \"0x33440E53476B855A56B831e7924B5aa123981726\"\n+ \"0xd0615B1D3F24f691153C076d45104eEd3eF8cDb5\"\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"2 of 6 (33%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0x0706Ffc1722D53a85ba90f32807880ccee968Fed)\n +++ description: None\n```"
}
]
},
{
"id": "95463469",
"date": "Mon, 02 Sep 2024 14:35:26 GMT",
"timestamp": 1725287726,
"description": "Discovery of newly verified contracts.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0)\n +++ description: None\n```"
}
]
},
{
"id": "6931c7a7",
"date": "Fri, 23 Aug 2024 10:14:19 GMT",
"timestamp": 1724408059,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 25,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract Contract3 (0x83cB71D80078bf670b3EfeC6AD9E5E6407cD0fd1) {\n +++ description: None\n unverified:\n- true\n values.$upgradeCount:\n+ 1\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.ETHER_BRIDGE_ID:\n+ \"0x0bcb6b0b9168c058e28754b0255038028ff8515b5755d989d746fdd8b8f11d7e\"\n values.getVersionComponents:\n+ {\"major\":1,\"minor\":0,\"patch\":0}\n values.MIN_DEPOSIT:\n+ 2000000000000000\n values.paused:\n+ false\n values.proxiableUUID:\n+ \"EXPECT_REVERT\"\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n }\n```\n\n```diff\n contract Contract1 (0xb23B2492f7A9631104A5877F7FFA00633660968d) {\n +++ description: None\n unverified:\n- true\n values.$upgradeCount:\n+ 1\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.getVersionComponents:\n+ {\"major\":1,\"minor\":0,\"patch\":0}\n values.MODULE_ROLE:\n+ \"0x5098275140f5753db46c42f6e139939968848633a1298402189fdfdafa69b453\"\n values.proxiableUUID:\n+ \"EXPECT_REVERT\"\n values.TRUSTED_RELAYER_ROLE:\n+ \"0xe8a0628d2ba937241981f34311d9db59dd5cf223365e8b6132bca13fc7ae519c\"\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n }\n```\n\n```diff\n contract Contract2 (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {\n +++ description: None\n unverified:\n- true\n values.$upgradeCount:\n+ 1\n values.getVersionComponents:\n+ {\"major\":1,\"minor\":0,\"patch\":0}\n values.owner:\n+ \"0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC\"\n values.paused:\n+ false\n values.pendingOwner:\n+ \"0x0000000000000000000000000000000000000000\"\n values.proxiableUUID:\n+ \"EXPECT_REVERT\"\n values.UPGRADE_INTERFACE_VERSION:\n+ \"5.0.0\"\n }\n```"
}
]
},
{
"id": "f84a7b2b",
"date": "Mon, 12 Aug 2024 10:45:43 GMT",
"timestamp": 1723459543,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract EclipseMultisig (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Contract3 (0x83cB71D80078bf670b3EfeC6AD9E5E6407cD0fd1)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Contract1 (0xb23B2492f7A9631104A5877F7FFA00633660968d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Contract2 (0xD7E4b67E735733aC98a88F13d087D8aac670E644)\n +++ description: None\n```"
}
]
}
]
+1 -33
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "FastWithdrawalList",
"isVerified": true,
"address": "eth:0x3eFc3c84ecf259Da36E33692f2a107A0AB88D30E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x94F068ee9A23F3F883bdE060502a46E9C4EeAb25"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1776720647,
"transactionHash": "0x78106cf05ac5ded33961c11e23dbb44bdb6f96fdec0283f55c479f57c88ebf0f",
"implementations": [
"eth:0x94F068ee9A23F3F883bdE060502a46E9C4EeAb25"
]
}
],
"description": "Per-token rate-limit registry for the optimistic (preconfirmed) fast-withdrawal path. Enforces hourly and daily caps using rolling windows keyed by block timestamp; related tokens (e.g. ETH and WETH) can be aliased to a shared bucket to prevent cap evasion.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3eFc3c84ecf259Da36E33692f2a107A0AB88D30E#code"
},
{
"name": "NativeGateway",
"isVerified": true,
"address": "eth:0x8976Ca4E0c8467097Da675399fB7DB454a1b56dd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x33C0B99F3210a9578d81d5B13dEC03160F58ff11"
],
"implementations": [
"eth:0x025f11FedA181E2Ba63bb86536DD987E0769f586"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1775739563,
"transactionHash": "0x7e992147bddd61de0f8c13840203f14802196eb89605508418ad4f634394143e",
"implementations": [
"eth:0x482Df12fbc3BA7A7f02Aa928e620fd12aF5Fd30e"
]
},
{
"timestamp": 1776358595,
"transactionHash": "0xd965bd1614a8301bfb88f5bc4f6f1d3c3914df56a895ddd21c38796e03a4f790",
"implementations": [
"eth:0xbA3d3B60b6f462AA3fb2D63F8B610Fa8825c3019"
]
},
{
"timestamp": 1776720683,
"transactionHash": "0x0e1838d3baa70b38111493feb6d09029ff0f0b594ea9619c9c28b9442ff30ffb",
"implementations": [
"eth:0x025f11FedA181E2Ba63bb86536DD987E0769f586"
]
}
],
"description": "L1 entry point for ETH deposits into Fluent. Forwards ETH to L1FluentBridge for actual escrow custody and emits the corresponding bridge message. UUPS-upgradeable; upgrades are gated by the contract owner.\n* Roles:\n * **admin**: FluentMultisig",
"upgradableBy": [
{
"name": "FluentMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8976Ca4E0c8467097Da675399fB7DB454a1b56dd#code"
},
{
"name": "L1FluentBridge",
"isVerified": true,
"address": "eth:0x9CAcf613fC29015893728563f423fD26dCdB8Ddc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xF67255be817061139C9DeeA757f7276916cBF849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1775739227,
"transactionHash": "0x41d58e18be407db8b25d9d8c198f42d88ef67104ae3286e1e318ec2d67b251c3",
"implementations": [
"eth:0xF10F4D565d050BEeb9e37A548853B9c88Fd65373"
]
},
{
"timestamp": 1776358511,
"transactionHash": "0xcf06c58c5a0a601390bb3835778a390bd0b2b25c675319feeef96a4a83940112",
"implementations": [
"eth:0x52f9e37FeDd9EF7d5eCB24D77cff40d5337A5770"
]
},
{
"timestamp": 1776457763,
"transactionHash": "0x9a92a1828c2b689acab26e5ab139ad6faa2bec120c7462d9d3b01bffb708489a",
"implementations": [
"eth:0xfF0Ef75C7a2942294A5a828b1c11F7aF618De4cA"
]
},
{
"timestamp": 1776591743,
"transactionHash": "0x75ee505dc6be60d16c93c7dd6cfc33b99439de51561aed0c9fbe65e278095437",
"implementations": [
"eth:0xA0374Fa5324f4A255693Eb6B35236a21C24392f8"
]
},
{
"timestamp": 1776719975,
"transactionHash": "0x0d5b3fa6d88af319cbae57d5dd3b53ce6749e90690ddaa2f8497d40ca19adf44",
"implementations": [
"eth:0x95c76524803B8EA61c910dc0cB02B76efD6D3791"
]
},
{
"timestamp": 1776720671,
"transactionHash": "0xc78efc4e911d121701277a5eb494c8e74aad26a4b18f358d655e955cc7747c02",
"implementations": [
"eth:0x047AaDf25df7D17bB5B6b1FF31cecD1E4973C227"
]
},
{
"timestamp": 1779289223,
"transactionHash": "0x5683f1be2880db1238db0cafc17623f895de685541543b5fd577efdfec53429c",
"implementations": [
"eth:0xF67255be817061139C9DeeA757f7276916cBF849"
]
}
],
"description": "Bridge core for Fluent. Routes deposits from L1 gateways into a FIFO queue consumed by the sequencer, and lets anyone process L2->L1 messages with two Merkle proofs against a preconfirmed or finalized batch root. Custodies bridged ETH on L1 (gateways forward ETH here on deposit). UUPS-upgradeable; upgrades and gateway-whitelist / oracle / pause changes are gated by DEFAULT_ADMIN_ROLE.\n* Roles:\n * **defaultAdmin**: FluentMultisig\n * **pauser**: FluentMultisig",
"upgradableBy": [
{
"name": "FluentMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9CAcf613fC29015893728563f423fD26dCdB8Ddc#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "eth:0xFD4C62647A34FF6d6802092F5fbe176099223B61",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x33C0B99F3210a9578d81d5B13dEC03160F58ff11"
],
"implementations": [
"eth:0x81e1158368bD28Cc6E8380852087a9512A9670fB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1775739563,
"transactionHash": "0x407471f08b665a9e9c7a6a44548270a9613093d25728e1886883f5893c75f600",
"implementations": [
"eth:0x8c435855E8090eB526f33f94d0474d59fD7E32A2"
]
},
{
"timestamp": 1776358559,
"transactionHash": "0x39e5b62153053ecba10153dce9d95ca2ff53e2f69f6cf7564e0369537630c8f7",
"implementations": [
"eth:0x5398c8De96Ef049B5d8D0ce01e4C9D58c47B98C9"
]
},
{
"timestamp": 1776720683,
"transactionHash": "0x78942254165dc0ae59b763fd30c9f472e0aca5f39ee7fa7757bdff498487ca96",
"implementations": [
"eth:0xe1Cf59617A333eaCEAF36BE03cB0b94A250acf4b"
]
},
{
"timestamp": 1776908303,
"transactionHash": "0x2625ebb9ea1e887805cc22e6d221a6e13f79d0db0b5acac9815e3231d39b0ce6",
"implementations": [
"eth:0x81e1158368bD28Cc6E8380852087a9512A9670fB"
]
}
],
"description": "L1 entry point for ERC-20 deposits into Fluent. Custodies ERC-20 tokens directly on L1 and emits the corresponding bridge message; on the L2 side the canonical pegged token is minted via the ERC20TokenFactory. UUPS-upgradeable; upgrades are gated by the contract owner.\n* Roles:\n * **admin**: FluentMultisig",
"upgradableBy": [
{
"name": "FluentMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFD4C62647A34FF6d6802092F5fbe176099223B61#code"
},
{
"name": "FluentTimeLock",
"isVerified": true,
"address": "eth:0x7846C001835d889A29ba659f67A5B7ac98E73bF4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "OpenZeppelin TimelockController used to delay privileged operations. PROPOSER_ROLE schedules calls; the configured minimum delay must elapse before EXECUTOR_ROLE can execute them; CANCELLER_ROLE can drop scheduled calls.\n* Roles:\n * **canceller**: FluentAdminEOA\n * **executor**: FluentMultisig\n * **proposer**: FluentAdminEOA",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7846C001835d889A29ba659f67A5B7ac98E73bF4#code"
},
{
"name": "ERC20PeggedToken",
"isVerified": true,
"address": "eth:0x056fD0A3eD85c6ae1Ec1c398B33581951Ed4b090",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x056fD0A3eD85c6ae1Ec1c398B33581951Ed4b090#code"
},
{
"name": "Blacklist",
"isVerified": true,
"address": "eth:0x05C5d46a5e6f92fB9CdA9A8b03E4440A175D1484",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x33C0B99F3210a9578d81d5B13dEC03160F58ff11"
],
"implementations": [
"eth:0xB9E397C9506F71590be1f24da3f219bedE38b845"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1776720923,
"transactionHash": "0x48b82ab6b95e56504680c0c5d8b75a9a389e4619bbd9ed6d4910decdacea713e",
"implementations": [
"eth:0xB9E397C9506F71590be1f24da3f219bedE38b845"
]
}
],
"description": "* Roles:\n * **admin**: FluentMultisig",
"upgradableBy": [
{
"name": "FluentMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x05C5d46a5e6f92fB9CdA9A8b03E4440A175D1484#code"
},
{
"name": "FluentRollup",
"isVerified": true,
"address": "eth:0x1cF53Fd9CD0b713be29F2b41cA17A943f138727f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xF6ad498c8B9bfbD2F26EcD9665aC71d9032245c1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1776356639,
"transactionHash": "0x9280e1cd08307a30efd83b424181e0c0a377dacb4216a206b290575bf4a5edf5",
"implementations": [
"eth:0x405eA6684CDD57e8f9c15395626F3c72c5255D50"
]
},
{
"timestamp": 1776457595,
"transactionHash": "0xae2d6f36ca6010e6405191447ffa78f5c39330e849945b4e12cb55ce112e8db1",
"implementations": [
"eth:0x76Ec5c71FF385b2E174f1191589a7368eE9d7C83"
]
},
{
"timestamp": 1776591899,
"transactionHash": "0x8faf3ed7a062e5732abf80beb9c9400705745d7bbc5924c2a1523d970c655fb5",
"implementations": [
"eth:0x7EafBd621Df027EbefFb7a971120b13A88710494"
]
},
{
"timestamp": 1776592211,
"transactionHash": "0x46e6634771e5902428987a7e423c9ca431fce3c7d7bf9346f213ba9c18cb247a",
"implementations": [
"eth:0x5E0D546dAdE979c9eEE458Cc8b6212E53921889f"
]
},
{
"timestamp": 1776592511,
"transactionHash": "0x915f648035250a9982c5a9902ddc37f3c72047fa8b8fd3241ee93455d93508fa",
"implementations": [
"eth:0x46a485181ab7E0D68508b8dE306e88a3B6718193"
]
},
{
"timestamp": 1776683927,
"transactionHash": "0x93a23ca29d9dbbbedbab902d37a83cad523c82d4b3ec930f5622ed508171a0e3",
"implementations": [
"eth:0xf7EEe2D42f70DCacE0a6E368099A9EBCcaB74Efd"
]
},
{
"timestamp": 1776875747,
"transactionHash": "0x656d50f10e86f6bbee1bd4c39258cc2ebf75341d74be55c3163b7ed990c931b6",
"implementations": [
"eth:0xF6ad498c8B9bfbD2F26EcD9665aC71d9032245c1"
]
}
],
"description": "Core Fluent rollup contract. Sequencers commit batch roots and EIP-4844 blob hashes; an AWS Nitro Enclave preconfirms each batch via a signature whose key is bound to a PCR0 measurement verified by SP1; participants holding CHALLENGER_ROLE can dispute and the prover resolves disputes with SP1 ZK proofs; batches finalize after a block-count delay or immediately once all blocks are proven.\n* Roles:\n * **defaultAdmin**: FluentMultisig\n * **emergency**: FluentMultisig\n * **preconfirmation**: FluentEnclaveAttesterEOA\n * **prover**: FluentProverEOA\n * **sequencer**: FluentSequencerEOA",
"upgradableBy": [
{
"name": "FluentMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1cF53Fd9CD0b713be29F2b41cA17A943f138727f#code"
},
{
"name": "NitroVerifier",
"isVerified": true,
"address": "eth:0x207FBb4AC5227Ab598B8072BdC1E150dF687AC5B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies AWS Nitro Enclave attestations onchain. The enclave's signing key is admitted only after an SP1 proof confirms its attestation matches the expected PCR0 measurement, binding preconfirmation authority to audited enclave code.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x207FBb4AC5227Ab598B8072BdC1E150dF687AC5B#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "eth:0xdD283a04cc711aB9c08d79e665835821BEef710B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A beacon with an upgradeable implementation currently set as ERC20PeggedToken. Beacon proxy contracts pointing to this beacon will all use its implementation.\n* Roles:\n * **owner**: ERC20TokenFactory",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdD283a04cc711aB9c08d79e665835821BEef710B#code"
},
{
"name": "NitroVerifier",
"isVerified": true,
"address": "eth:0xFdB04b67ecD8352bA3885F66fFfddf1f5f25292F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies AWS Nitro Enclave attestations onchain. The enclave's signing key is admitted only after an SP1 proof confirms its attestation matches the expected PCR0 measurement, binding preconfirmation authority to audited enclave code.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFdB04b67ecD8352bA3885F66fFfddf1f5f25292F#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": "0x9CAcf613fC29015893728563f423fD26dCdB8Ddc",
"sinceTimestamp": 1775739227,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x9CAcf613fC29015893728563f423fD26dCdB8Ddc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xF67255be817061139C9DeeA757f7276916cBF849"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1775739227,
"transactionHash": "0x41d58e18be407db8b25d9d8c198f42d88ef67104ae3286e1e318ec2d67b251c3",
"implementations": [
"eth:0xF10F4D565d050BEeb9e37A548853B9c88Fd65373"
]
},
{
"timestamp": 1776358511,
"transactionHash": "0xcf06c58c5a0a601390bb3835778a390bd0b2b25c675319feeef96a4a83940112",
"implementations": [
"eth:0x52f9e37FeDd9EF7d5eCB24D77cff40d5337A5770"
]
},
{
"timestamp": 1776457763,
"transactionHash": "0x9a92a1828c2b689acab26e5ab139ad6faa2bec120c7462d9d3b01bffb708489a",
"implementations": [
"eth:0xfF0Ef75C7a2942294A5a828b1c11F7aF618De4cA"
]
},
{
"timestamp": 1776591743,
"transactionHash": "0x75ee505dc6be60d16c93c7dd6cfc33b99439de51561aed0c9fbe65e278095437",
"implementations": [
"eth:0xA0374Fa5324f4A255693Eb6B35236a21C24392f8"
]
},
{
"timestamp": 1776719975,
"transactionHash": "0x0d5b3fa6d88af319cbae57d5dd3b53ce6749e90690ddaa2f8497d40ca19adf44",
"implementations": [
"eth:0x95c76524803B8EA61c910dc0cB02B76efD6D3791"
]
},
{
"timestamp": 1776720671,
"transactionHash": "0xc78efc4e911d121701277a5eb494c8e74aad26a4b18f358d655e955cc7747c02",
"implementations": [
"eth:0x047AaDf25df7D17bB5B6b1FF31cecD1E4973C227"
]
},
{
"timestamp": 1779289223,
"transactionHash": "0x5683f1be2880db1238db0cafc17623f895de685541543b5fd577efdfec53429c",
"implementations": [
"eth:0xF67255be817061139C9DeeA757f7276916cBF849"
]
}
],
"url": "https://etherscan.io/address/0x9CAcf613fC29015893728563f423fD26dCdB8Ddc#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xFD4C62647A34FF6d6802092F5fbe176099223B61",
"sinceTimestamp": 1775739563,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0xFD4C62647A34FF6d6802092F5fbe176099223B61",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x33C0B99F3210a9578d81d5B13dEC03160F58ff11"
],
"implementations": [
"eth:0x81e1158368bD28Cc6E8380852087a9512A9670fB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1775739563,
"transactionHash": "0x407471f08b665a9e9c7a6a44548270a9613093d25728e1886883f5893c75f600",
"implementations": [
"eth:0x8c435855E8090eB526f33f94d0474d59fD7E32A2"
]
},
{
"timestamp": 1776358559,
"transactionHash": "0x39e5b62153053ecba10153dce9d95ca2ff53e2f69f6cf7564e0369537630c8f7",
"implementations": [
"eth:0x5398c8De96Ef049B5d8D0ce01e4C9D58c47B98C9"
]
},
{
"timestamp": 1776720683,
"transactionHash": "0x78942254165dc0ae59b763fd30c9f472e0aca5f39ee7fa7757bdff498487ca96",
"implementations": [
"eth:0xe1Cf59617A333eaCEAF36BE03cB0b94A250acf4b"
]
},
{
"timestamp": 1776908303,
"transactionHash": "0x2625ebb9ea1e887805cc22e6d221a6e13f79d0db0b5acac9815e3231d39b0ce6",
"implementations": [
"eth:0x81e1158368bD28Cc6E8380852087a9512A9670fB"
]
}
],
"url": "https://etherscan.io/address/0xFD4C62647A34FF6d6802092F5fbe176099223B61#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Fluent STF guest program",
"proverSystemProject": "sp1hypercube",
"description": "Guest program implementing state transition function of the Fluent rollup",
"verificationStatus": "unsuccessful",
"verificationSteps": "According to the Fluent team, the sources for this program were not yet published. Thus it cannot be verified.",
"hash": "0x00e34107e4c5284bd4ecc4269c650671038c1e85d9dacb931b534e984f607334"
},
{
"title": "Fluent Nitro TEE verifier v1.0.7",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/fluentlabs-xyz/fluent-stf/tree/v1.0.7/bin/aws-nitro-validator",
"description": "Verifies correctness of a single TEE attestation for executing Fluent STF within a trusted enclave on AWS cloud.",
"verificationStatus": "successful",
"verificationSteps": "Regeneration steps are based on [this guide](https://github.com/fluentlabs-xyz/fluent-stf/blob/v1.0.7/README.md). The process is reproducible on a Linux x86_64 (amd64) machine.\n\n1. Install prerequesits: `docker`, `python3`, `git`, `jq`.\n2. Checkout correct branch in https://github.com/fluentlabs-xyz/fluent-stf/tree/v1.0.7: `git checkout v1.0.7`. Commit hash should be `7e4db8ca602c93fa54f831a4de49b0285fc3ad18`.\n3. Build Nitro program for the mainnet within docker: `make build-nitro-validator-docker NETWORK=mainnet`. This command will create `nitro-validator-mainnet.vkey` file with the program hash string.",
"hash": "0x00f291835495d0af627923c963f18395bb9a7e6783b694497460f757866ea34b"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1790592672,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790851084,
"baseTimestamp": 1791789271,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+51 -23
+36 -22
{
"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": "Polygon Multisig 2",
"name": "Polygon Multisig 2",
"description": "A Multisig with 3/6 threshold. \nMember of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.\n* Can upgrade **with no delay**\n * L1ERC721Bridge [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * SuperchainConfig [via: ProxyAdmin]\n * L1StandardBridge [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * AnchorStateRegistry [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n* Can interact with AggchainFEP\n * change verification keys (aggregationVkey, rangeVkeyCommitment, aggchainVkey) and the rollupConfigHash, manage multisig signers for permissioned state transitions and change critical configs for state validation \n * toggle the 'optimisticMode' \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 \n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "0xd067…98CC",
"url": "https://etherscan.io/address/0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x21a2Db679b4e9f6183E3143cc7Dcfef955b400a6",
"type": "EOA",
"isVerified": true,
"name": "0x21a2…00a6",
"url": "https://etherscan.io/address/0x21a2Db679b4e9f6183E3143cc7Dcfef955b400a6"
},
{
"address": "eth:0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a",
"type": "EOA",
"isVerified": true,
"name": "0x6f8C…D08a",
"url": "https://etherscan.io/address/0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a"
},
{
"address": "eth:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://etherscan.io/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "eth:0xA697656ac37ee1f59A8a5318F61601B4C208960D",
"type": "EOA",
"isVerified": true,
"name": "0xA697…960D",
"url": "https://etherscan.io/address/0xA697656ac37ee1f59A8a5318F61601B4C208960D"
},
{
"address": "eth:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://etherscan.io/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "eth:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://etherscan.io/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"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 * AggchainFEP ",
"discoveryDrivenData": true
},
{
"id": "Katana Foundation Engineering/Security Multisig",
"name": "Katana Foundation Engineering/Security Multisig",
"description": "A Multisig with 2/5 threshold. \n* Can interact with SuperchainConfig\n * pause the OptimismPortal and L1CrossDomainMessenger of Katana (pauses expire automatically after the configured pause expiry) ",
"accounts": [
{
"address": "eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a",
"type": "Contract",
"isVerified": true,
"name": "0x4e98…C38a",
"url": "https://etherscan.io/address/0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"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"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
}
],
"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": "Katana vaultBridge Multisig 1",
"name": "Katana vaultBridge Multisig 1",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbWBTC [via: ProxyAdmin]\n * vbETH [via: ProxyAdmin]\n * vbUSDT [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x2De242e27386e224E5fbF110EA8406d5B70740ec",
"type": "Contract",
"isVerified": true,
"name": "0x2De2…40ec",
"url": "https://etherscan.io/address/0x2De242e27386e224E5fbF110EA8406d5B70740ec"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4082A1D91A353b16e112FbE36b55d222bF417919",
"type": "EOA",
"isVerified": true,
"name": "0x4082…7919",
"url": "https://etherscan.io/address/0x4082A1D91A353b16e112FbE36b55d222bF417919"
},
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
}
],
"discoveryDrivenData": true
},
{
"id": "Polygon Labs Engineering/Security Multisig",
"name": "Polygon Labs Engineering/Security Multisig",
"description": "A Multisig with 2/7 threshold. \nMember of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.\n* Can upgrade **with no delay**\n * MigrationManager [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "0x9d85…9052",
"url": "https://etherscan.io/address/0x9d851f8b8751c5FbC09b9E74E6e68E9950949052"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"address": "eth:0xFB2a738AE435610354b132c4a4ee647558f663eb",
"type": "EOA",
"isVerified": true,
"name": "0xFB2a…63eb",
"url": "https://etherscan.io/address/0xFB2a738AE435610354b132c4a4ee647558f663eb"
},
{
"address": "eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890",
"type": "EOA",
"isVerified": true,
"name": "0x6Ab8…3890",
"url": "https://etherscan.io/address/0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana vaultBridge Multisig 2",
"name": "Katana vaultBridge Multisig 2",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbUSDS [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff",
"type": "Contract",
"isVerified": true,
"name": "0xA8C3…C5Ff",
"url": "https://etherscan.io/address/0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7",
"type": "Contract",
"isVerified": true,
"name": "Yearn Strategist Multisig",
"url": "#Yearn Strategist Multisig"
},
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana vaultBridge Multisig 3",
"name": "Katana vaultBridge Multisig 3",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbUSDC [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E",
"type": "Contract",
"isVerified": true,
"name": "0xf4F2…C04E",
"url": "https://etherscan.io/address/0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
},
{
"address": "eth:0x827e86072B06674a077f592A531dcE4590aDeCdB",
"type": "Contract",
"isVerified": true,
"name": "Katana Steakhouse Financial / Morpho Multisig",
"url": "#Katana Steakhouse Financial / Morpho Multisig"
}
],
"discoveryDrivenData": true
},
{
"id": "Yearn Strategist Multisig",
"name": "Yearn Strategist Multisig",
"description": "A Multisig with 3/8 threshold. \nMember of Katana vaultBridge Multisig 2.\n",
"accounts": [
{
"address": "eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7",
"type": "Contract",
"isVerified": true,
"name": "0x1638…0ff7",
"url": "https://etherscan.io/address/0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x5E5D6f849Fa86c058f148E9D3f643C8F4c43f20b",
"type": "EOA",
"isVerified": true,
"name": "0x5E5D…f20b",
"url": "https://etherscan.io/address/0x5E5D6f849Fa86c058f148E9D3f643C8F4c43f20b"
},
{
"address": "eth:0x5250077c42627cBd112988f32D482acC9ff40bDB",
"type": "EOA",
"isVerified": true,
"name": "0x5250…0bDB",
"url": "https://etherscan.io/address/0x5250077c42627cBd112988f32D482acC9ff40bDB"
},
{
"address": "eth:0xC357eE8a8DdE88Dd5a3Ea54847Adef6846A28c51",
"type": "EOA",
"isVerified": true,
"name": "0xC357…8c51",
"url": "https://etherscan.io/address/0xC357eE8a8DdE88Dd5a3Ea54847Adef6846A28c51"
},
{
"address": "eth:0xFcc3796370e1538F8cC60bec19A8be5457f2C74F",
"type": "EOA",
"isVerified": true,
"name": "0xFcc3…C74F",
"url": "https://etherscan.io/address/0xFcc3796370e1538F8cC60bec19A8be5457f2C74F"
},
{
"address": "eth:0xFafFb75e14faFf9f11315E44a2E54A22872c7a34",
"type": "EOA",
"isVerified": true,
"name": "0xFafF…7a34",
"url": "https://etherscan.io/address/0xFafFb75e14faFf9f11315E44a2E54A22872c7a34"
},
{
"address": "eth:0x80a3887BA60F76acAb48EE4aEAd0a71A0774A8B2",
"type": "EOA",
"isVerified": true,
"name": "0x80a3…A8B2",
"url": "https://etherscan.io/address/0x80a3887BA60F76acAb48EE4aEAd0a71A0774A8B2"
},
{
"address": "eth:0xB13C8f58a233607569D2F8411B912148aeC4aEe2",
"type": "EOA",
"isVerified": true,
"name": "0xB13C…aEe2",
"url": "https://etherscan.io/address/0xB13C8f58a233607569D2F8411B912148aeC4aEe2"
},
{
"address": "eth:0x0Dca0FDC170baA4CA9c1dCd37Ffe01f97bCfD504",
"type": "EOA",
"isVerified": true,
"name": "0x0Dca…D504",
"url": "https://etherscan.io/address/0x0Dca0FDC170baA4CA9c1dCd37Ffe01f97bCfD504"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/4 threshold. ",
"accounts": [
{
"address": "eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50",
"type": "Contract",
"isVerified": true,
"name": "0x261a…3B50",
"url": "https://etherscan.io/address/0x261a25ec6c396389B75B6b22BD4A8227070E3B50"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c",
"type": "EOA",
"isVerified": true,
"name": "0x227D…238c",
"url": "https://etherscan.io/address/0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c"
},
{
"address": "eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756",
"type": "Contract",
"isVerified": true,
"name": "Katana yieldRecipient Mulsitig",
"url": "#Katana yieldRecipient Mulsitig"
},
{
"address": "eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/4 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21",
"type": "Contract",
"isVerified": true,
"name": "0x3e86…6e21",
"url": "https://etherscan.io/address/0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x23CDc4Bc7713A1a8cb2adBbb5BdfCd135F74Bd50",
"type": "EOA",
"isVerified": true,
"name": "0x23CD…Bd50",
"url": "https://etherscan.io/address/0x23CDc4Bc7713A1a8cb2adBbb5BdfCd135F74Bd50"
},
{
"address": "eth:0xeA54bCaD99a8Cdd385c903236149Da9585B89ed3",
"type": "EOA",
"isVerified": true,
"name": "0xeA54…9ed3",
"url": "https://etherscan.io/address/0xeA54bCaD99a8Cdd385c903236149Da9585B89ed3"
},
{
"address": "eth:0x64512f695BFf25FD1bCD0F88EbC45Af144f374CA",
"type": "EOA",
"isVerified": true,
"name": "0x6451…74CA",
"url": "https://etherscan.io/address/0x64512f695BFf25FD1bCD0F88EbC45Af144f374CA"
},
{
"address": "eth:0xe969B418F3F5EF9E2E96d05C05Cc1e14f111aE8b",
"type": "EOA",
"isVerified": true,
"name": "0xe969…aE8b",
"url": "https://etherscan.io/address/0xe969B418F3F5EF9E2E96d05C05Cc1e14f111aE8b"
}
],
"discoveryDrivenData": true
},
{
"id": "Conduit Multisig 1",
"name": "Conduit Multisig 1",
"description": "A Multisig with 4/11 threshold. ",
"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": "Katana yieldRecipient Mulsitig",
"name": "Katana yieldRecipient Mulsitig",
"description": "A Multisig with 2/6 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756",
"type": "Contract",
"isVerified": true,
"name": "0x67C9…3756",
"url": "https://etherscan.io/address/0x67C912fF560951526BffDff66dFbD4DF8AE23756"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x09f5F2592791208219A1F51e3855Be9419fF6bE4",
"type": "EOA",
"isVerified": true,
"name": "0x09f5…6bE4",
"url": "https://etherscan.io/address/0x09f5F2592791208219A1F51e3855Be9419fF6bE4"
},
{
"address": "eth:0xf2dc90d4645579f261cA36E81181986dB576BbEe",
"type": "EOA",
"isVerified": true,
"name": "0xf2dc…BbEe",
"url": "https://etherscan.io/address/0xf2dc90d4645579f261cA36E81181986dB576BbEe"
},
{
"address": "eth:0x54DFA4B635E7eB98515fEBA81d360A3871739277",
"type": "EOA",
"isVerified": true,
"name": "0x54DF…9277",
"url": "https://etherscan.io/address/0x54DFA4B635E7eB98515fEBA81d360A3871739277"
},
{
"address": "eth:0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac",
"type": "EOA",
"isVerified": true,
"name": "0xb3dA…DCac",
"url": "https://etherscan.io/address/0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac"
},
{
"address": "eth:0xa1a4C71024a0CAD6a1cEf85561f1B9a34E00ff62",
"type": "EOA",
"isVerified": true,
"name": "0xa1a4…ff62",
"url": "https://etherscan.io/address/0xa1a4C71024a0CAD6a1cEf85561f1B9a34E00ff62"
},
{
"address": "eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c",
"type": "EOA",
"isVerified": true,
"name": "0x227D…238c",
"url": "https://etherscan.io/address/0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana Steakhouse Financial / Morpho Multisig",
"name": "Katana Steakhouse Financial / Morpho Multisig",
"description": "A Multisig with 2/7 threshold. \nMember of Katana vaultBridge Multisig 3.\n",
"description": "A Multisig with 3/9 threshold. \nMember of Katana vaultBridge Multisig 3.\n",
"accounts": [
{
"address": "eth:0x827e86072B06674a077f592A531dcE4590aDeCdB",
"type": "Contract",
"isVerified": true,
"name": "0x827e…eCdB",
"url": "https://etherscan.io/address/0x827e86072B06674a077f592A531dcE4590aDeCdB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xfc615395336aADe67fd853a0157001a215Ea1279",
"address": "eth:0x1710932cf538F38E7bcFC30AAae389B24dD004f6",
"type": "EOA",
"isVerified": true,
"name": "0xfc61…1279",
"url": "https://etherscan.io/address/0xfc615395336aADe67fd853a0157001a215Ea1279"
"name": "0x1710…04f6",
"url": "https://etherscan.io/address/0x1710932cf538F38E7bcFC30AAae389B24dD004f6"
},
{
"address": "eth:0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6",
"address": "eth:0x44e6E4152a60D594c175BFeD42E68ad62FFB5871",
"type": "EOA",
"isVerified": true,
"name": "0xf83d…81d6",
"url": "https://etherscan.io/address/0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6"
"name": "0x44e6…5871",
"url": "https://etherscan.io/address/0x44e6E4152a60D594c175BFeD42E68ad62FFB5871"
},
{
"address": "eth:0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b",
"address": "eth:0xfB3e98B5d59505Ceb259E9874b4553fD27FCCe3c",
"type": "EOA",
"isVerified": true,
"name": "0x8AE8…422b",
"url": "https://etherscan.io/address/0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b"
"name": "0xfB3e…Ce3c",
"url": "https://etherscan.io/address/0xfB3e98B5d59505Ceb259E9874b4553fD27FCCe3c"
},
{
"address": "eth:0x0D61C8b6CA9669A36F351De3AE335e9689dd9C5b",
"address": "eth:0x7307Bf07641a794fdBc2391d0983a7f1cFa36E4B",
"type": "EOA",
"isVerified": true,
"name": "0x0D61…9C5b",
"url": "https://etherscan.io/address/0x0D61C8b6CA9669A36F351De3AE335e9689dd9C5b"
"name": "0x7307…6E4B",
"url": "https://etherscan.io/address/0x7307Bf07641a794fdBc2391d0983a7f1cFa36E4B"
},
{
"address": "eth:0xcC771952fdE840E30C6802734e5ad20479c2959f",
"address": "eth:0x1936552B58Be97fFD9c7c1DD28E675b7B022F16d",
"type": "EOA",
"isVerified": true,
"name": "0xcC77…959f",
"url": "https://etherscan.io/address/0xcC771952fdE840E30C6802734e5ad20479c2959f"
"name": "0x1936…F16d",
"url": "https://etherscan.io/address/0x1936552B58Be97fFD9c7c1DD28E675b7B022F16d"
},
{
"address": "eth:0x387Cde8598E1CBb297FDc5bAEbA5E5c5c2735344",
"address": "eth:0xd824031D4A115590e6Ff26e4e23fC346ab4cB2Db",
"type": "EOA",
"isVerified": true,
"name": "0x387C…5344",
"url": "https://etherscan.io/address/0x387Cde8598E1CBb297FDc5bAEbA5E5c5c2735344"
"name": "0xd824…B2Db",
"url": "https://etherscan.io/address/0xd824031D4A115590e6Ff26e4e23fC346ab4cB2Db"
},
{
"address": "eth:0xE3fCEE6B6cd564E073346f71394f60eC9aDf5120",
"address": "eth:0x4c23E86A9D8506a43046C15Be1b7fA0B6F3427DE",
"type": "EOA",
"isVerified": true,
"name": "0xE3fC…5120",
"url": "https://etherscan.io/address/0xE3fCEE6B6cd564E073346f71394f60eC9aDf5120"
"name": "0x4c23…27DE",
"url": "https://etherscan.io/address/0x4c23E86A9D8506a43046C15Be1b7fA0B6F3427DE"
},
{
"address": "eth:0x5868aaa8d66023137365ADAe9634A9D8834d488d",
"type": "EOA",
"isVerified": true,
"name": "0x5868…488d",
"url": "https://etherscan.io/address/0x5868aaa8d66023137365ADAe9634A9D8834d488d"
},
{
"address": "eth:0x1Dc4354B39554251d4a2C4b571906e7EbAe535A3",
"type": "EOA",
"isVerified": true,
"name": "0x1Dc4…35A3",
"url": "https://etherscan.io/address/0x1Dc4354B39554251d4a2C4b571906e7EbAe535A3"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/12 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb",
"type": "Contract",
"isVerified": true,
"name": "0xFA58…f9Cb",
"url": "https://etherscan.io/address/0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xfB948CB3fE208fd067d36768B2bACd5dCF886066",
"type": "EOA",
"isVerified": true,
"name": "0xfB94…6066",
"url": "https://etherscan.io/address/0xfB948CB3fE208fd067d36768B2bACd5dCF886066"
},
{
"address": "eth:0x28260fD38F737e98F1599eCd385d4eB13C5A7A1f",
"type": "EOA",
"isVerified": true,
"name": "0x2826…7A1f",
"url": "https://etherscan.io/address/0x28260fD38F737e98F1599eCd385d4eB13C5A7A1f"
},
{
"address": "eth:0x9f02595fBFD199C4cBC02878fc9B2b2E07b0840C",
"type": "EOA",
"isVerified": true,
"name": "0x9f02…840C",
"url": "https://etherscan.io/address/0x9f02595fBFD199C4cBC02878fc9B2b2E07b0840C"
},
{
"address": "eth:0x1319279d6d54dB0883F7bAF822191c7184Db0c3d",
"type": "EOA",
"isVerified": true,
"name": "0x1319…0c3d",
"url": "https://etherscan.io/address/0x1319279d6d54dB0883F7bAF822191c7184Db0c3d"
},
{
"address": "eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890",
"type": "EOA",
"isVerified": true,
"name": "0x6Ab8…3890",
"url": "https://etherscan.io/address/0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890"
},
{
"address": "eth:0x573D7a729cfcF20B81D70732d625Ae31549B8b91",
"type": "EOA",
"isVerified": true,
"name": "0x573D…8b91",
"url": "https://etherscan.io/address/0x573D7a729cfcF20B81D70732d625Ae31549B8b91"
},
{
"address": "eth:0xF045025C845E786E343Df30cC6f67ec6BB822b34",
"type": "EOA",
"isVerified": true,
"name": "0xF045…2b34",
"url": "https://etherscan.io/address/0xF045025C845E786E343Df30cC6f67ec6BB822b34"
},
{
"address": "eth:0x6B2Ba82994A1606605af1F11E50DA0b2B0cee6e6",
"type": "EOA",
"isVerified": true,
"name": "0x6B2B…e6e6",
"url": "https://etherscan.io/address/0x6B2Ba82994A1606605af1F11E50DA0b2B0cee6e6"
},
{
"address": "eth:0x6624307a4f672ec5C289fBA196952902BB518dc0",
"type": "EOA",
"isVerified": true,
"name": "0x6624…8dc0",
"url": "https://etherscan.io/address/0x6624307a4f672ec5C289fBA196952902BB518dc0"
},
{
"address": "eth:0x54DFA4B635E7eB98515fEBA81d360A3871739277",
"type": "EOA",
"isVerified": true,
"name": "0x54DF…9277",
"url": "https://etherscan.io/address/0x54DFA4B635E7eB98515fEBA81d360A3871739277"
},
{
"address": "eth:0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3",
"type": "EOA",
"isVerified": true,
"name": "0xFAc8…66a3",
"url": "https://etherscan.io/address/0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3"
},
{
"address": "eth:0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4",
"type": "EOA",
"isVerified": true,
"name": "0xdEb9…1Bd4",
"url": "https://etherscan.io/address/0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x1FFDA89C755f6D4Af069897D77CcAbb580Fd412a",
"type": "EOA",
"isVerified": true,
"name": "0x1FFD…412a",
"url": "https://etherscan.io/address/0x1FFDA89C755f6D4Af069897D77CcAbb580Fd412a",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439",
"type": "EOA",
"isVerified": true,
"name": "0xC1E6…6439",
"url": "https://etherscan.io/address/0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainFEP\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
}
]
},
"katana": {
"roles": [],
"actors": [
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 2/5 threshold. \n* Can upgrade **with 12h delay**\n * AgglayerBridgeL2 [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n * GlobalExitRootManagerL2SovereignChain [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n* Can interact with AgglayerBridgeL2\n * manage token mappings and deployments \n * own and upgrade default L2 token contracts deployed by the bridge \n * pause the bridge \n * unpause the bridge \n* Can interact with GlobalExitRootManagerL2SovereignChain\n * manage 'claimed' status of global deposit indexes (can freeze bridge transactions), remove global exit roots (used for L2 deposits) \n * roll back or insert leaves into the local exit tree (LET) that enables withdrawals from the L2. (can steal) \n* Can interact with L2Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 12h delay** [via: - acting directly with 12h delay (no delay if in emergency state)]",
"accounts": [
{
"address": "katana:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a",
"type": "Contract",
"isVerified": true,
"name": "0x4e98…C38a",
"url": "https://katanascan.com/address/0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://katanascan.com/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "katana:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://katanascan.com/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "katana:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://katanascan.com/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
},
{
"address": "katana:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://katanascan.com/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "katana:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://katanascan.com/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
}
],
"discoveryDrivenData": true
},
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * DeployerWhitelist [via: L2ProxyAdmin]\n * L2CrossDomainMessenger [via: L2ProxyAdmin]\n * GasPriceOracle [via: L2ProxyAdmin]\n * L2StandardBridge [via: L2ProxyAdmin]\n * SequencerFeeVault [via: L2ProxyAdmin]\n * OptimismMintableERC20Factory [via: L2ProxyAdmin]\n * L1BlockNumber [via: L2ProxyAdmin]\n * L2ERC721Bridge [via: L2ProxyAdmin]\n * L1Block [via: L2ProxyAdmin]\n * L2ToL1MessagePasser [via: L2ProxyAdmin]\n * OptimismMintableERC721Factory [via: L2ProxyAdmin]\n * L2ProxyAdmin [via: L2ProxyAdmin]\n * BaseFeeVault [via: L2ProxyAdmin]\n * L1FeeVault [via: L2ProxyAdmin]\n * OperatorFeeVault [via: L2ProxyAdmin]\n * SchemaRegistry [via: L2ProxyAdmin]\n * EAS [via: L2ProxyAdmin]\n* Can upgrade **with 12h delay**\n * AgglayerBridgeL2 [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n * GlobalExitRootManagerL2SovereignChain [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n* Can interact with L2Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 12h delay** [via: - acting directly with 12h delay (no delay if in emergency state)]",
"accounts": [
{
"address": "katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "0xd067…98CC",
"url": "https://katanascan.com/address/0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a",
"type": "EOA",
"isVerified": true,
"name": "0x6f8C…D08a",
"url": "https://katanascan.com/address/0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a"
},
{
"address": "katana:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://katanascan.com/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "katana:0xA697656ac37ee1f59A8a5318F61601B4C208960D",
"type": "EOA",
"isVerified": true,
"name": "0xA697…960D",
"url": "https://katanascan.com/address/0xA697656ac37ee1f59A8a5318F61601B4C208960D"
},
{
"address": "katana:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://katanascan.com/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "katana:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://katanascan.com/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"discoveryDrivenData": true
},
{
"id": "BaseFeeVault",
"name": "BaseFeeVault",
"accounts": [
{
"address": "katana:0x4200000000000000000000000000000000000019",
"type": "Contract",
"isVerified": true,
"name": "0x4200…0019",
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000019"
}
],
"chain": "katana",
"description": "Collects EIP-1559 base fees\n* Can interact with OperatorFeeVault\n * receive fees ",
"discoveryDrivenData": true
},
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 3/6 threshold. \n* Can interact with SequencerFeeVault\n * receive fees \n* Can interact with BaseFeeVault\n * receive fees \n* Can interact with L1FeeVault\n * receive fees ",
"accounts": [
{
"address": "katana:0x7990513f4d64d57524a0B2519759f53B0cB1aEbd",
"type": "Contract",
"isVerified": true,
"name": "0x7990…aEbd",
"url": "https://katanascan.com/address/0x7990513f4d64d57524a0B2519759f53B0cB1aEbd"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac",
"type": "EOA",
"isVerified": true,
"name": "0xb3dA…DCac",
"url": "https://katanascan.com/address/0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac"
},
{
"address": "katana:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://katanascan.com/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "katana:0xf2dc90d4645579f261cA36E81181986dB576BbEe",
"type": "EOA",
"isVerified": true,
"name": "0xf2dc…BbEe",
"url": "https://katanascan.com/address/0xf2dc90d4645579f261cA36E81181986dB576BbEe"
},
{
"address": "katana:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://katanascan.com/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "katana:0x02023f74ED12Df7752144aE8A23411776D4698b4",
"type": "EOA",
"isVerified": true,
"name": "0x0202…98b4",
"url": "https://katanascan.com/address/0x02023f74ED12Df7752144aE8A23411776D4698b4"
},
{
"address": "katana:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://katanascan.com/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "katana:0x3138BBdAeAd339d34F084445192B2be9dd4B9f27",
"type": "EOA",
"isVerified": true,
"name": "0x3138…9f27",
"url": "https://katanascan.com/address/0x3138BBdAeAd339d34F084445192B2be9dd4B9f27",
"displayName": "EOA 3"
}
],
"chain": "katana",
"description": "* Can interact with GlobalExitRootManagerL2SovereignChain\n * update the global exit root (GER) that is used for L2 deposits ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1791217041,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "6eb37dd3",
"date": "Mon, 12 Oct 2026 07:12:12 GMT",
"timestamp": 1791788974,
"description": "The Steakhouse/Morpho Safe rotated all seven signers, added two more and raised its threshold from 2/7 to 3/9.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Steakhouse Financial / Morpho Multisig (eth:0x827e86072B06674a077f592A531dcE4590aDeCdB) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x1710932cf538F38E7bcFC30AAae389B24dD004f6\"\n values.$members.1:\n+ \"eth:0x44e6E4152a60D594c175BFeD42E68ad62FFB5871\"\n values.$members.0:\n- \"eth:0xfc615395336aADe67fd853a0157001a215Ea1279\"\n+ \"eth:0xfB3e98B5d59505Ceb259E9874b4553fD27FCCe3c\"\n values.$members.1:\n- \"eth:0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6\"\n+ \"eth:0x7307Bf07641a794fdBc2391d0983a7f1cFa36E4B\"\n values.$members.2:\n- \"eth:0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b\"\n+ \"eth:0x1936552B58Be97fFD9c7c1DD28E675b7B022F16d\"\n values.$members.3:\n- \"eth:0x0D61C8b6CA9669A36F351De3AE335e9689dd9C5b\"\n+ \"eth:0xd824031D4A115590e6Ff26e4e23fC346ab4cB2Db\"\n values.$members.4:\n- \"eth:0xcC771952fdE840E30C6802734e5ad20479c2959f\"\n+ \"eth:0x4c23E86A9D8506a43046C15Be1b7fA0B6F3427DE\"\n values.$members.5:\n- \"eth:0x387Cde8598E1CBb297FDc5bAEbA5E5c5c2735344\"\n+ \"eth:0x5868aaa8d66023137365ADAe9634A9D8834d488d\"\n values.$members.6:\n- \"eth:0xE3fCEE6B6cd564E073346f71394f60eC9aDf5120\"\n+ \"eth:0x1Dc4354B39554251d4a2C4b571906e7EbAe535A3\"\n values.$threshold:\n- 2\n+ 3\n values.multisigThreshold:\n- \"2 of 7 (29%)\"\n+ \"3 of 9 (33%)\"\n }\n```"
}
]
},
{
"id": "45c9bef9",
"date": "Mon, 05 Oct 2026 16:18:28 GMT",
"timestamp": 1791217041,
"description": "Karst hardfork L2 activation on 2026-09-23 16:00:01 UTC: L2 predeploys upgraded to the standard OP Stack implementations.\n\nL2ToL1MessagePasser: the previous Katana-specific implementation reverted `initiateWithdrawal` with \"Withdrawals are disabled\"; the standard 1.2.0 has no such check, so withdrawals through the OP Stack path can be initiated on L2 again. The L1 OptimismPortal2 holds no ETH and the DisputeGameFactory has created no games.\n\nL2ProxyAdmin (1.0.0) adds `upgradePredeploys(address)`. FeeVault `recipient`, `minWithdrawalAmount` and `withdrawalNetwork` moved from immutables to storage, settable by the ProxyAdmin owner. L1Block adds `setFeature(bytes32)`, callable by the depositor account, the ProxyAdmin or its owner.\n\nVersion changes and implementation diffs:\n\n- L2CrossDomainMessenger 2.1.1-beta.1 -> 2.2.1: https://disco.l2beat.com/diff/katana:0xC0d3c0d3c0D3c0D3C0d3C0D3C0D3c0d3c0d30007/katana:0x250AF3f400cf8Aac8D410c90f1ba3968dD87DF96\n- L2StandardBridge 1.11.1-beta.1 -> 1.13.2: https://disco.l2beat.com/diff/katana:0xC0d3c0d3c0D3c0d3C0D3c0D3C0d3C0D3C0D30010/katana:0xAE9ed42f43a3ee45c3A9dEf8ae6B48cBb58Ed1a1\n- SequencerFeeVault 1.5.0-beta.5 -> 1.6.1: https://disco.l2beat.com/diff/katana:0x8A52Ca0E8459460C6861C117285E6973Ecf7EE3f/katana:0xb178cdAa8336f25624A63C049EdB5AF7ca36C2dA\n- OptimismMintableERC20Factory 1.10.1-beta.2 -> 1.11.0: https://disco.l2beat.com/diff/katana:0xc0D3c0d3C0d3c0d3c0D3c0d3c0D3c0D3c0D30012/katana:0xAF87f2Fd347aCb94656f9F715B4f2409B98e75b9\n- L2ERC721Bridge 1.7.1-beta.2 -> 1.10.1: https://disco.l2beat.com/diff/katana:0xC0D3c0d3c0d3c0d3c0D3C0d3C0D3C0D3c0d30014/katana:0x716eAd0Cf3e7FF86A02D4F8cb41a6D14922fA833\n- L1Block 1.7.0 -> 1.9.0: https://disco.l2beat.com/diff/katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C/katana:0x6a97C5D55A21265326150Efe12FC30Fb21cbff56\n- L2ToL1MessagePasser 1.1.1-beta.1 -> 1.2.0: https://disco.l2beat.com/diff/katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A/katana:0x27E51B2254433A3284D9ba73Ea551C397DB2a124\n- OptimismMintableERC721Factory 1.4.1-beta.1 -> 1.5.1: https://disco.l2beat.com/diff/katana:0xc0d3C0d3C0d3C0d3C0d3c0d3C0D3C0d3C0D30017/katana:0xf43862B9d814BB4504158CecCB0b74b31265e4eE\n- ProxyAdmin -> L2ProxyAdmin 1.0.0: https://disco.l2beat.com/diff/katana:0xC0d3C0D3c0d3C0d3c0d3c0D3C0D3C0d3C0D30018/katana:0x893c2CEEb71D38514daF67728d3Ff1b213FC4B5F\n- BaseFeeVault 1.5.0-beta.6 -> 1.6.1: https://disco.l2beat.com/diff/katana:0x7e27d992B349B96ea8D32378B7c53b3D58139a2E/katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\n- L1FeeVault 1.5.0-beta.5 -> 1.6.1: https://disco.l2beat.com/diff/katana:0x0ebC896698De72A444d00Dc3d046B432c555EB09/katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\n- OperatorFeeVault 1.0.0 -> 1.1.1: https://disco.l2beat.com/diff/katana:0x4fa2Be8cd41504037F1838BcE3bCC93bC68Ff537/katana:0xEddf416c7159387cc6DF3015700F79Cfb8911373\n- SchemaRegistry 1.3.1-beta.1 -> 1.3.1-beta.2: https://disco.l2beat.com/diff/katana:0xc0d3c0d3c0d3C0d3c0d3C0D3C0D3c0d3C0D30020/katana:0x70DE55BC0bfBC52C5D0CCA1DA5816c2428886A34\n- EAS 1.4.1-beta.1 -> 1.4.1-beta.3: https://disco.l2beat.com/diff/katana:0xC0D3c0D3C0d3c0D3c0D3C0D3c0D3c0d3c0d30021/katana:0xbEc660b456B84A081E90aF29BE43385BDa5bF7b6\n- GasPriceOracle 1.6.0 (source unchanged): https://disco.l2beat.com/diff/katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1/katana:0x547d0fba434877D7237d511cF87FABe2ee26b152\n\nAggchainFEP: new selected OP Succinct config (op-succinct v3.14.1).\n\nPolygon Multisig 2: member added; threshold 3/5 → 3/6.\n\nSafe: member added; threshold 2/11 → 2/12.",
"isHighSeverity": true,
"changeCount": 156,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x00d68eb096f4c731512562f7a06e6bba104dbcb959261edd3eb3ec542c200c89\"\n+ \"0x00070992a03760456403e800b0bd1a0e907a85a5c2cffca292b5994b56b5363b\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x1f089f9d1cd3f727775788003d3e496037d3625e2e9de6e5005f1e9707ba3b8f\"\n+ \"0x5ae13fed447a94f57d6ee8fc44cce8075ef994485121dcd27e75577d264f75b1\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0x0f30c0b6846b034a146a47c5185fb9a4321df3569376773238ef30c831019190\"\n+ \"0x78bea7db8aa3cf21062aa42ee79556258a369e6fbe39954760f92475ba39a06c\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x21a2Db679b4e9f6183E3143cc7Dcfef955b400a6\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```\n\n```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xfB948CB3fE208fd067d36768B2bACd5dCF886066\"\n values.multisigThreshold:\n- \"2 of 11 (18%)\"\n+ \"2 of 12 (17%)\"\n }\n```\n\n```diff\n contract L2CrossDomainMessenger (katana:0x4200000000000000000000000000000000000007) [opstack/Layer2/L2CrossDomainMessenger] {\n +++ description: The L2CrossDomainMessenger (L2xDM) contract sends messages from L2 to L1, and relays messages from L1 onto L2 with a system tx. In the event that a message sent from L2 to L1 is rejected for exceeding the L1 gas limit, it can be resubmitted via this contract’s replay function.\n sourceHashes.1:\n- \"0x1ef37a50dbdd57f7019208b81019e52087cb92379f963e1ec092bd3eb81ec978\"\n+ \"0x9e9ae8aec73e808e50f80bced53c3a020588eed516b310a10397596869dcd3b1\"\n values.$implementation:\n- \"katana:0xC0d3c0d3c0D3c0D3C0d3C0D3C0D3c0d3c0d30007\"\n+ \"katana:0x250AF3f400cf8Aac8D410c90f1ba3968dD87DF96\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x250AF3f400cf8Aac8D410c90f1ba3968dD87DF96\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n- \"2.1.1-beta.1\"\n+ \"2.2.1\"\n values.ENCODING_OVERHEAD:\n+ 260\n values.FLOOR_CALLDATA_OVERHEAD:\n+ 40\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.TX_BASE_GAS:\n+ 21000\n implementationNames.katana:0xC0d3c0d3c0D3c0D3C0d3C0D3C0D3c0d3c0d30007:\n- \"L2CrossDomainMessenger\"\n implementationNames.katana:0x250AF3f400cf8Aac8D410c90f1ba3968dD87DF96:\n+ \"L2CrossDomainMessenger\"\n }\n```\n\n```diff\n contract GasPriceOracle (katana:0x420000000000000000000000000000000000000F) [opstack/Layer2/GasPriceOracle] {\n +++ description: Provides the current gas price for L2 transactions.\n values.$implementation:\n- \"katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1\"\n+ \"katana:0x547d0fba434877D7237d511cF87FABe2ee26b152\"\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x547d0fba434877D7237d511cF87FABe2ee26b152\"]]\n values.$upgradeCount:\n- 2\n+ 3\n implementationNames.katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1:\n- \"GasPriceOracle\"\n implementationNames.katana:0x547d0fba434877D7237d511cF87FABe2ee26b152:\n+ \"GasPriceOracle\"\n }\n```\n\n```diff\n contract L2StandardBridge (katana:0x4200000000000000000000000000000000000010) [opstack/Layer2/L2StandardBridge] {\n +++ description: The L2StandardBridge contract is the main entry point to deposit or withdraw ERC20 tokens from L2 to L1. This contract can store any token.\n sourceHashes.1:\n- \"0xe528a1a655ef22d36419f53488f5b31752c4ecc2efea627fc6be5b0d63fa5069\"\n+ \"0xf6ef848ca1cf88e27b5e3bb5e01b91ef79f302e5daad8ba5206c4dc60027d312\"\n values.$implementation:\n- \"katana:0xC0d3c0d3c0D3c0d3C0D3c0D3C0d3C0D3C0D30010\"\n+ \"katana:0xAE9ed42f43a3ee45c3A9dEf8ae6B48cBb58Ed1a1\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xAE9ed42f43a3ee45c3A9dEf8ae6B48cBb58Ed1a1\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n- \"1.11.1-beta.1\"\n+ \"1.13.2\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0xC0d3c0d3c0D3c0d3C0D3c0D3C0d3C0D3C0D30010:\n- \"L2StandardBridge\"\n implementationNames.katana:0xAE9ed42f43a3ee45c3A9dEf8ae6B48cBb58Ed1a1:\n+ \"L2StandardBridge\"\n }\n```\n\n```diff\n contract SequencerFeeVault (katana:0x4200000000000000000000000000000000000011) [opstack/Layer2/SequencerFeeVault] {\n +++ description: Collects the sequencer fees.\n sourceHashes.1:\n- \"0x93752bf6627e91f3f4f031a686b0a57c754db8b6b8b88401d16e26724cb44f08\"\n+ \"0xb45389729a8fffa7650568cd2922e482d03d3ed57b35f4819650d11174d9237a\"\n values.$implementation:\n- \"katana:0x8A52Ca0E8459460C6861C117285E6973Ecf7EE3f\"\n+ \"katana:0xb178cdAa8336f25624A63C049EdB5AF7ca36C2dA\"\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xb178cdAa8336f25624A63C049EdB5AF7ca36C2dA\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"1.5.0-beta.5\"\n+ \"1.6.1\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0x8A52Ca0E8459460C6861C117285E6973Ecf7EE3f:\n- \"SequencerFeeVault\"\n implementationNames.katana:0xb178cdAa8336f25624A63C049EdB5AF7ca36C2dA:\n+ \"SequencerFeeVault\"\n }\n```\n\n```diff\n contract OptimismMintableERC20Factory (katana:0x4200000000000000000000000000000000000012) [opstack/OptimismMintableERC20Factory] {\n +++ 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 template:\n- \"opstack/Layer2/OptimismMintableERC20Factory\"\n+ \"opstack/OptimismMintableERC20Factory\"\n sourceHashes.1:\n- \"0x106f86d507a55d0f26e3683c910a71a9804d75ced3a4bb374e6a78978462274b\"\n+ \"0x11b0ed6f15cabf613492a8d54c55304a17cf60f4fd94a655d7e720d4556906d0\"\n description:\n- \"Factory contract to create bridge compliant ERC20 IOU token representations of bridged L1 ERC20 tokens.\"\n+ \"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 values.$implementation:\n- \"katana:0xc0D3c0d3C0d3c0d3c0D3c0d3c0D3c0D3c0D30012\"\n+ \"katana:0xAF87f2Fd347aCb94656f9F715B4f2409B98e75b9\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xAF87f2Fd347aCb94656f9F715B4f2409B98e75b9\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n- \"1.10.1-beta.2\"\n+ \"1.11.0\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0xc0D3c0d3C0d3c0d3c0D3c0d3c0D3c0D3c0D30012:\n- \"OptimismMintableERC20Factory\"\n implementationNames.katana:0xAF87f2Fd347aCb94656f9F715B4f2409B98e75b9:\n+ \"OptimismMintableERC20Factory\"\n }\n```\n\n```diff\n contract L2ERC721Bridge (katana:0x4200000000000000000000000000000000000014) [opstack/Layer2/L2ERC721Bridge] {\n +++ description: The L2ERC721Bridge contract is the main entry point to deposit or withdraw ERC721 tokens from L2 to L1. This contract can store any token.\n sourceHashes.1:\n- \"0x271f936ec1986057d9043b9961aa266e87908766814bdde8071f19a9de7484be\"\n+ \"0x0d8059378487e33161e0b838f622400642360f1e311eba8c7b8fbdb504aeee1e\"\n values.$implementation:\n- \"katana:0xC0D3c0d3c0d3c0d3c0D3C0d3C0D3C0D3c0d30014\"\n+ \"katana:0x716eAd0Cf3e7FF86A02D4F8cb41a6D14922fA833\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x716eAd0Cf3e7FF86A02D4F8cb41a6D14922fA833\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n- \"1.7.1-beta.2\"\n+ \"1.10.1\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0xC0D3c0d3c0d3c0d3c0D3C0d3C0D3C0D3c0d30014:\n- \"L2ERC721Bridge\"\n implementationNames.katana:0x716eAd0Cf3e7FF86A02D4F8cb41a6D14922fA833:\n+ \"L2ERC721Bridge\"\n }\n```\n\n```diff\n contract L1Block (katana:0x4200000000000000000000000000000000000015) [opstack/Layer2/L1Block] {\n +++ description: Simple contract that returns information about the latest L1 block, which is derived permissionlessly from the L1 chain.\n sourceHashes.1:\n- \"0x399e57fff478211b47d61c5acb60592a4df8ffa5716959a1a6ee2ccabc44915e\"\n+ \"0xca6401a4032def95df36b0d432052526888ef8a396f7e4fc37cdda3690932646\"\n values.$implementation:\n- \"katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C\"\n+ \"katana:0x6a97C5D55A21265326150Efe12FC30Fb21cbff56\"\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x6a97C5D55A21265326150Efe12FC30Fb21cbff56\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.version:\n- \"1.7.0\"\n+ \"1.9.0\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C:\n- \"L1Block\"\n implementationNames.katana:0x6a97C5D55A21265326150Efe12FC30Fb21cbff56:\n+ \"L1Block\"\n }\n```\n\n```diff\n contract L2ToL1MessagePasser (katana:0x4200000000000000000000000000000000000016) [opstack/Layer2/L2ToL1MessagePasser] {\n +++ description: Contract used internally by the L2CrossDomainMessenger to send messages to L1, including withdrawals. It can also be used directly as a low-level interface.\n template:\n- \"katana/L2ToL1MessagePasser\"\n+ \"opstack/Layer2/L2ToL1MessagePasser\"\n sourceHashes.1:\n- \"0xa53da4d87c97c2504bf8feb43888b64bb6834cfc6f9cf0fb4e59b9e507466756\"\n+ \"0xb5be3cf9878e914d0b7feef281dbcc2b72d7c7e9106e44a7dfd516d48de8a62a\"\n description:\n- \"Contract used internally by the L2CrossDomainMessenger to send messages to L1. It can also be used directly as a low-level interface.\"\n+ \"Contract used internally by the L2CrossDomainMessenger to send messages to L1, including withdrawals. It can also be used directly as a low-level interface.\"\n values.$implementation:\n- \"katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A\"\n+ \"katana:0x27E51B2254433A3284D9ba73Ea551C397DB2a124\"\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x27E51B2254433A3284D9ba73Ea551C397DB2a124\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.version:\n- \"1.1.1-beta.1\"\n+ \"1.2.0\"\n implementationNames.katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A:\n- \"L2ToL1MessagePasser\"\n implementationNames.katana:0x27E51B2254433A3284D9ba73Ea551C397DB2a124:\n+ \"L2ToL1MessagePasser\"\n critical:\n+ true\n }\n```\n\n```diff\n contract OptimismMintableERC721Factory (katana:0x4200000000000000000000000000000000000017) [opstack/Layer2/OptimismMintableERC721Factory] {\n +++ description: Factory contract to create bridge compliant ERC721 IOU token representations of bridged L1 ERC721 tokens.\n sourceHashes.1:\n- \"0xec1bfae18ba5717949a6969cb01d743511c076e7bc6c78ed2c2b63232b97cc57\"\n+ \"0xf4fd8df9e9191098f5647a3568864aee248b011c092313bf392b57a4b0f43268\"\n values.$implementation:\n- \"katana:0xc0d3C0d3C0d3C0d3C0d3c0d3C0D3C0d3C0D30017\"\n+ \"katana:0xf43862B9d814BB4504158CecCB0b74b31265e4eE\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xf43862B9d814BB4504158CecCB0b74b31265e4eE\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n- \"1.4.1-beta.1\"\n+ \"1.5.1\"\n values.bridge:\n+ \"katana:0x4200000000000000000000000000000000000014\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.remoteChainID:\n+ 1\n implementationNames.katana:0xc0d3C0d3C0d3C0d3C0d3c0d3C0D3C0d3C0D30017:\n- \"OptimismMintableERC721Factory\"\n implementationNames.katana:0xf43862B9d814BB4504158CecCB0b74b31265e4eE:\n+ \"OptimismMintableERC721Factory\"\n }\n```\n\n```diff\n contract L2ProxyAdmin (katana:0x4200000000000000000000000000000000000018) [opstack/Layer2/L2ProxyAdmin_karst] {\n +++ description: Administration contract for the L2 predeploy proxies. Adds upgradePredeploys(address), which can only be called by the system depositor account and delegatecalls an L2ContractsManager to upgrade every predeploy in a single network upgrade transaction.\n name:\n- \"ProxyAdmin\"\n+ \"L2ProxyAdmin\"\n template:\n- \"global/ProxyAdmin\"\n+ \"opstack/Layer2/L2ProxyAdmin_karst\"\n sourceHashes.1:\n- \"0x96d2f0fa1bd83ebd61ba6a2351c64c7fda7aa580b11ea67bb6bf4338e5c28512\"\n+ \"0xc9307181d90f9b86ff913d1c365245cfb8622929939cbff0389acf7f428ddc4b\"\n values.$implementation:\n- \"katana:0xC0d3C0D3c0d3C0d3c0d3c0D3C0D3C0d3C0D30018\"\n+ \"katana:0x893c2CEEb71D38514daF67728d3Ff1b213FC4B5F\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0x48aa8d6a9d281bf0eaa204e895acdfe0ba38640c34f6d133b2f4ecb879f5c72c\",[\"katana:0x893c2CEEb71D38514daF67728d3Ff1b213FC4B5F\"]]\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x893c2CEEb71D38514daF67728d3Ff1b213FC4B5F\"]]\n values.$upgradeCount:\n- 0\n+ 2\n values.version:\n+ \"1.0.0\"\n implementationNames.katana:0xC0d3C0D3c0d3C0d3c0d3c0D3C0D3C0d3C0D30018:\n- \"ProxyAdmin\"\n implementationNames.katana:0x893c2CEEb71D38514daF67728d3Ff1b213FC4B5F:\n+ \"L2ProxyAdmin\"\n description:\n+ \"Administration contract for the L2 predeploy proxies. Adds upgradePredeploys(address), which can only be called by the system depositor account and delegatecalls an L2ContractsManager to upgrade every predeploy in a single network upgrade transaction.\"\n critical:\n+ true\n }\n```\n\n```diff\n contract BaseFeeVault (katana:0x4200000000000000000000000000000000000019) [opstack/Layer2/BaseFeeVault_karst] {\n +++ description: Collects EIP-1559 base fees\n template:\n- \"opstack/Layer2/BaseFeeVault\"\n+ \"opstack/Layer2/BaseFeeVault_karst\"\n sourceHashes.1:\n- \"0xe1e57baf3de85a14ad342b23be3bc829de637a5ac1336b089f49fcab12d6226a\"\n+ \"0xf7b9f825b6af20abb355da09822d54e6e3fa7243439293826bd7271f87747775\"\n values.$implementation:\n- \"katana:0x7e27d992B349B96ea8D32378B7c53b3D58139a2E\"\n+ \"katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\"\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"1.5.0-beta.6\"\n+ \"1.6.1\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0x7e27d992B349B96ea8D32378B7c53b3D58139a2E:\n- \"BaseFeeVault\"\n implementationNames.katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7:\n+ \"BaseFeeVault\"\n }\n```\n\n```diff\n contract L1FeeVault (katana:0x420000000000000000000000000000000000001A) [opstack/Layer2/L1FeeVault_karst] {\n +++ description: Collects the L1 portion of the L2 transaction fees.\n template:\n- \"opstack/Layer2/L1FeeVault\"\n+ \"opstack/Layer2/L1FeeVault_karst\"\n sourceHashes.1:\n- \"0xe6ecd83f7dc6c3a0896d3311ac56023fae6df18d6b4059195c2dfc1d65717687\"\n+ \"0xf7b9f825b6af20abb355da09822d54e6e3fa7243439293826bd7271f87747775\"\n values.$implementation:\n- \"katana:0x0ebC896698De72A444d00Dc3d046B432c555EB09\"\n+ \"katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\"\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"1.5.0-beta.5\"\n+ \"1.6.1\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0x0ebC896698De72A444d00Dc3d046B432c555EB09:\n- \"L1FeeVault\"\n implementationNames.katana:0xf7bed7215EEF1003fac426682Cf2edeb958569f7:\n+ \"BaseFeeVault\"\n }\n```\n\n```diff\n contract OperatorFeeVault (katana:0x420000000000000000000000000000000000001b) [opstack/Layer2/OperatorFeeVault] {\n +++ description: Collects the operator fees.\n sourceHashes.1:\n- \"0xee5dca77d41cb3095dbb6dbb7f542e32ec79f4ebfb289ca0622873a493080ffb\"\n+ \"0x0ba9b644913957c9f60eda0ab433da4523bb2437156e4dd8dadca627c884ba2a\"\n values.$implementation:\n- \"katana:0x4fa2Be8cd41504037F1838BcE3bCC93bC68Ff537\"\n+ \"katana:0xEddf416c7159387cc6DF3015700F79Cfb8911373\"\n values.$pastUpgrades.1:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x2A5A3eabB9Fd571A3Af0299eebdF8EaafE29a914\"]]\n values.$pastUpgrades.2:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xEddf416c7159387cc6DF3015700F79Cfb8911373\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"1.0.0\"\n+ \"1.1.1\"\n values.proxyAdmin:\n+ \"katana:0x4200000000000000000000000000000000000018\"\n values.proxyAdminOwner:\n+ \"katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.katana:0x4fa2Be8cd41504037F1838BcE3bCC93bC68Ff537:\n- \"OperatorFeeVault\"\n implementationNames.katana:0xEddf416c7159387cc6DF3015700F79Cfb8911373:\n+ \"OperatorFeeVault\"\n }\n```\n\n```diff\n contract SchemaRegistry (katana:0x4200000000000000000000000000000000000020) [opstack/Layer2/SchemaRegistry] {\n +++ description: Contracts to register schemas for the Ethereum Attestation Service (EAS).\n sourceHashes.1:\n- \"0x184ad3273d7e257c9f1b138ecff33286528599eae858abc182fdc3068060af90\"\n+ \"0xe2a60db541c987ffa9a6ed73b9100c7f62f2574966a20c903a73a8f730c7dfcc\"\n values.$implementation:\n- \"katana:0xc0d3c0d3c0d3C0d3c0d3C0D3C0D3c0d3C0D30020\"\n+ \"katana:0x70DE55BC0bfBC52C5D0CCA1DA5816c2428886A34\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0x70DE55BC0bfBC52C5D0CCA1DA5816c2428886A34\"]]\n values.$upgradeCount:\n- 0\n+ 1\n values.version:\n- \"1.3.1-beta.1\"\n+ \"1.3.1-beta.2\"\n implementationNames.katana:0xc0d3c0d3c0d3C0d3c0d3C0D3C0D3c0d3C0D30020:\n- \"SchemaRegistry\"\n implementationNames.katana:0x70DE55BC0bfBC52C5D0CCA1DA5816c2428886A34:\n+ \"SchemaRegistry\"\n }\n```\n\n```diff\n contract EAS (katana:0x4200000000000000000000000000000000000021) [opstack/Layer2/EAS] {\n +++ description: Contract containing the main logic for the Ethereum Attestation Service (EAS).\n sourceHashes.1:\n- \"0x565fcc3b9d0821e7893d6c738d9eafe13dc0e30795042c019bb419f2d6e32c78\"\n+ \"0x16924e7d7c1a311d6c9da93c6bf8bc7bd5454a0efde4d6e365e66c87ef4a0951\"\n values.$implementation:\n- \"katana:0xC0D3c0D3C0d3c0D3c0D3C0D3c0D3c0d3c0d30021\"\n+ \"katana:0xbEc660b456B84A081E90aF29BE43385BDa5bF7b6\"\n values.$pastUpgrades.0:\n+ [\"2026-09-23T16:00:01.000Z\",\"0xd2e9eb2ba77098610e7dda134e70f741f7456f4ec49912d667860c40988dfd8e\",[\"katana:0xbEc660b456B84A081E90aF29BE43385BDa5bF7b6\"]]\n values.$upgradeCount:\n- 0\n+ 1\n values.version:\n- \"1.4.1-beta.1\"\n+ \"1.4.1-beta.3\"\n implementationNames.katana:0xC0D3c0D3C0d3c0D3c0D3C0D3c0D3c0d3c0d30021:\n- \"EAS\"\n implementationNames.katana:0xbEc660b456B84A081E90aF29BE43385BDa5bF7b6:\n+ \"EAS\"\n }\n```"
}
]
},
{
"id": "7567e9b0",
"date": "Wed, 23 Sep 2026 05:47:11 GMT",
"timestamp": 1788793515,
"description": "Refresh config-derived discovery metadata at the main-branch block.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract PreimageOracle (eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0) [opstack/PreimageOracle]\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA) [opstack/MIPS]\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```"
}
]
},
{
"id": "60da3e8b",
"date": "Mon, 07 Sep 2026 15:06:55 GMT",
"timestamp": 1788793515,
"description": "All OP-stack L1 contracts upgraded to the current OP stack release (Karst generation, same as the Superchain). The forked OptimismPortal2 still disables ETH and token bridging while allowing forced transactions.\n\nNo risk related changes.\n\nImplementation diffs:\n- OptimismPortal2: https://disco.l2beat.com/diff/eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a/eth:0x3160738db14B27EAe2D0d1b622259010308f4C38\n- SystemConfig: https://disco.l2beat.com/diff/eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED/eth:0x42Ad0173051225Ac784100e9acD43349707F4db9\n- SuperchainConfig: https://disco.l2beat.com/diff/eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957/eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550\n- DisputeGameFactory: https://disco.l2beat.com/diff/eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50/eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b\n- AnchorStateRegistry: https://disco.l2beat.com/diff/eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E/eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281\n- L1CrossDomainMessenger: https://disco.l2beat.com/diff/eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0/eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0\n- L1StandardBridge: https://disco.l2beat.com/diff/eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A/eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891\n- L1ERC721Bridge: https://disco.l2beat.com/diff/eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9/eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e\n- OptimismMintableERC20Factory: https://disco.l2beat.com/diff/eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB/eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12\n- DelayedWETH (new proxy, impl diff): https://disco.l2beat.com/diff/eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998/eth:0xE440CC08A71694C8229323803F59024E3144630e\n- PermissionedDisputeGame (replaced): https://disco.l2beat.com/diff/eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D/eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e\n- MIPS (replaced): https://disco.l2beat.com/diff/eth:0x6463dEE3828677F6270d83d45408044fc5eDB908/eth:0xaCc005DCd857B401e4732E6F7837135A22825cfA\n- PreimageOracle (replaced): https://disco.l2beat.com/diff/eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3/eth:0x1E1d73536A081Ef2F355d29794547a9770Aeb1E0",
"isHighSeverity": true,
"changeCount": 142,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1ERC721Bridge (eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F) [opstack/L1ERC721Bridge] {\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0x1f65fda230b6d0df44e466b06418b2e12a401ef82c07521ad18d2f4ae6c70fb2\"\n+ \"0xc5ed62b03fb7c1340609ace7ebb0c5bf8d43b1814b1ab4f10863bfa21d13b90b\"\n values.$implementation:\n- \"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9\"\n+ \"eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e\"\n values.$pastUpgrades.5:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9\"]]\n values.$pastUpgrades.6:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.7:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e\"]]\n values.$upgradeCount:\n- 5\n+ 8\n values.version:\n- \"2.9.0\"\n+ \"2.9.1\"\n implementationNames.eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9:\n- \"L1ERC721Bridge\"\n implementationNames.eth:0x9F164f1d02A81e06D639E55F65a87f0070E3Cb2e:\n+ \"L1ERC721Bridge\"\n }\n```\n\n```diff\n contract ProxyAdmin (eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) [global/ProxyAdmin] {\n +++ description: None\n directlyReceivedPermissions.5:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e\",\"role\":\"admin\"}\n directlyReceivedPermissions.7:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322\",\"role\":\"admin\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract PreimageOracle (eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3) [opstack/PreimageOracle]\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n contract L1CrossDomainMessenger (eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E) [opstack/L1CrossDomainMessenger] {\n +++ 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 sourceHashes.1:\n- \"0x1f2c13ad1144ce6548e578b834c33b0d65b1564aeb0d5c708ed4e7fb50535cc6\"\n+ \"0x694050f95b40e6d92ee91ca0f60acb9c4a74d1b0325c33fd4bd7445fde90e806\"\n values.$implementation:\n- \"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0\"\n+ \"eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0\"\n values.$pastUpgrades.5:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0\"]]\n values.$pastUpgrades.6:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.7:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0\"]]\n values.$upgradeCount:\n- 5\n+ 8\n values.version:\n- \"2.11.0\"\n+ \"2.11.1\"\n implementationNames.eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0:\n- \"L1CrossDomainMessenger\"\n implementationNames.eth:0x59D497530b00062f40950ba8EaB88868bf7F86f0:\n+ \"L1CrossDomainMessenger\"\n }\n```\n\n```diff\n contract OptimismPortal2 (eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) [katana/OptimismPortal2] {\n +++ description: Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions.\n sourceHashes.1:\n- \"0xfcecb325a86c39482f8e9d29272f25089eec0b5fbefe21444fd1ea690c911f0c\"\n+ \"0xcdca45f93efdef12515a42464aa744c87143d83208163ef6a97317da454c7eac\"\n values.$implementation:\n- \"eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a\"\n+ \"eth:0x3160738db14B27EAe2D0d1b622259010308f4C38\"\n values.$pastUpgrades.9:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x97cEbbf8959e2A5476fbe9B98A21806Ec234609B\"]]\n values.$pastUpgrades.10:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.11:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xe89F13c5ee4033B2D3cD76C9d6958eFBfe26D3C2\"]]\n values.$pastUpgrades.12:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x3160738db14B27EAe2D0d1b622259010308f4C38\"]]\n values.$upgradeCount:\n- 9\n+ 13\n values.version:\n- \"agg3.15.0\"\n+ \"5.6.1-agglayer\"\n implementationNames.eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a:\n- \"OptimismPortal2\"\n implementationNames.eth:0x3160738db14B27EAe2D0d1b622259010308f4C38:\n+ \"OptimismPortal2\"\n }\n```\n\n```diff\n contract SuperchainConfig (eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811) [opstack/SuperchainConfigFake_expiry] {\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.\n template:\n- \"opstack/SuperchainConfigNoGuard\"\n+ \"opstack/SuperchainConfigFake_expiry\"\n sourceHashes.1:\n- \"0x5fb525d1572fb90d060d122143b915059cbff39e0298b345857fd4267d7f6b28\"\n+ \"0x2cd597b7305a446a1df355e6909cbd75fe38aa045faf4876a8e5496eebc1734f\"\n description:\n- \"This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system. Since the OptimismPortal is not used for state root management in this setup, the guardian role and pausing may be inconsequential.\"\n+ \"This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.\"\n values.$implementation:\n- \"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"\n+ \"eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550\"\n values.$pastUpgrades.6:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.7:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550\"]]\n values.$upgradeCount:\n- 6\n+ 8\n values.version:\n- \"2.4.0\"\n+ \"2.4.2\"\n values.pauseExpiryFmt:\n+ \"3mo 1d\"\n implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957:\n- \"SuperchainConfig\"\n implementationNames.eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550:\n+ \"SuperchainConfig\"\n category.name:\n- \"Spam\"\n+ \"Shared Infrastructure\"\n category.priority:\n- -1\n+ 4\n fieldMeta:\n+ {\"paused\":{\"severity\":\"HIGH\"}}\n }\n```\n\n```diff\n- Status: DELETED\n contract MIPS (eth:0x6463dEE3828677F6270d83d45408044fc5eDB908) [opstack/MIPS]\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n contract L1StandardBridge (eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC) [opstack/L1StandardBridge] {\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0xcacd38e7b52353ad3463da40b7e7a29b028f95500a82590d2b8f8ffd26b83f6d\"\n+ \"0x6469155800e1489607c8fa062550a362dfa8978885df4714ca4653e5f3d25b0c\"\n values.$implementation:\n- \"eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A\"\n+ \"eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891\"\n values.version:\n- \"2.8.0\"\n+ \"2.8.2\"\n implementationNames.eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A:\n- \"L1StandardBridge\"\n implementationNames.eth:0xB37a11AadF167B2F0b8dD85372De4bC66CD4A891:\n+ \"L1StandardBridge\"\n }\n```\n\n```diff\n- Status: DELETED\n contract PermissionedDisputeGame (eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D) [opstack/PermissionedDisputeGame]\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n contract OptimismMintableERC20Factory (eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E) [opstack/OptimismMintableERC20Factory] {\n +++ 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 sourceHashes.1:\n- \"0x307d4cb83e682629880fe9bb874a188805e3b93cb11a2cbf80095975f1e5b04e\"\n+ \"0x11b0ed6f15cabf613492a8d54c55304a17cf60f4fd94a655d7e720d4556906d0\"\n values.$implementation:\n- \"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB\"\n+ \"eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12\"\n values.$pastUpgrades.3:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB\"]]\n values.$pastUpgrades.4:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.5:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12\"]]\n values.$upgradeCount:\n- 3\n+ 6\n values.version:\n- \"1.10.2\"\n+ \"1.11.0\"\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB:\n- \"OptimismMintableERC20Factory\"\n implementationNames.eth:0xaAbEA75Da509fA518Fd8a91Eae4BE5813B829b12:\n+ \"OptimismMintableERC20Factory\"\n }\n```\n\n```diff\n contract AnchorStateRegistry (eth:0xaA8a62563CFe4E36118ED479B5486F503b438376) [opstack/AnchorStateRegistry_post20] {\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game. This variant stores respectedGameType, retirementTimestamp, and disputeGameFinalityDelaySeconds locally and drops the legacy *FromGame fields, since the AggregateVerifier model does not expose vm()/weth()/absolutePrestate() on its game implementation.\n template:\n- \"opstack/AnchorStateRegistry_post13\"\n+ \"opstack/AnchorStateRegistry_post20\"\n sourceHashes.1:\n- \"0xf808a203af41f7932eb8e39985e56a7c75c940a260fb17d76d1003a3793281b5\"\n+ \"0x10f64124093daab87c84d97148854054f9622bf86e09e98d496f123be3368122\"\n description:\n- \"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+ \"Contains the latest confirmed state root that can be used as a starting point in a dispute game. This variant stores respectedGameType, retirementTimestamp, and disputeGameFinalityDelaySeconds locally and drops the legacy *FromGame fields, since the AggregateVerifier model does not expose vm()/weth()/absolutePrestate() on its game implementation.\"\n values.$implementation:\n- \"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E\"\n+ \"eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281\"\n values.$pastUpgrades.1:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x36398155Cd17cfe804F69b233eDDA800DD4D5aA5\"]]\n values.$pastUpgrades.2:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.3:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281\"]]\n values.$upgradeCount:\n- 1\n+ 4\n values.absolutePrestateFromGame:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.challengePeriodFromOracle:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.oracleFromVm:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.version:\n- \"3.5.0\"\n+ \"3.9.0\"\n values.vmFromGame:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.wethFromGame:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.getStartingAnchorRoot:\n+ {\"root\":\"0xdead000000000000000000000000000000000000000000000000000000000000\",\"l2SequenceNumber\":0}\n fieldMeta.retirementTimestamp:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.disputeGameFinalityDelaySeconds:\n+ {\"severity\":\"HIGH\"}\n implementationNames.eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E:\n- \"AnchorStateRegistry\"\n implementationNames.eth:0x8F40Cc98D694AB986F026C5383A181FCc9B6B281:\n+ \"AnchorStateRegistry\"\n usedTypes.0.arg.621:\n+ \"AggregateVerifier\"\n usedTypes.0.arg.8:\n+ \"FaultDisputeGame\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DelayedWETH (eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322) [opstack/DelayedWETH]\n +++ 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```\n\n```diff\n contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) [opstack/SystemConfig] {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n sourceHashes.1:\n- \"0xaa1b3bedab4e63198240e9dea4503f0e615e4d18a545961c9f11b72143279fbc\"\n+ \"0x3d8e7cdbbdbf274bba0a11a060b01d5a50e3a478683af9ec079874d1758576d6\"\n values.$implementation:\n- \"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED\"\n+ \"eth:0x42Ad0173051225Ac784100e9acD43349707F4db9\"\n values.$pastUpgrades.6:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xd392c27B84b1cA776528F2704BC67B82a62132d2\"]]\n values.$pastUpgrades.7:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.8:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x42Ad0173051225Ac784100e9acD43349707F4db9\"]]\n values.$upgradeCount:\n- 6\n+ 9\n values.getAddresses.delayedWETH:\n+ \"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e\"\n values.getAddresses.opcm:\n+ \"eth:0x6FD5B86B93A0405c1eF082ED6Ed3b28e94f022f4\"\n values.version:\n- \"3.11.0\"\n+ \"3.14.2\"\n values.DELAYED_WETH_SLOT:\n+ \"0x51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd58ff\"\n values.delayedWETH:\n+ \"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e\"\n values.isCustomGasToken:\n+ false\n values.lastUsedOPCM:\n+ \"eth:0x6FD5B86B93A0405c1eF082ED6Ed3b28e94f022f4\"\n values.lastUsedOPCMVersion:\n+ \"7.1.17\"\n values.OPCM_SLOT:\n+ \"0x99f45962df4bc30de8d4c3c6d1ffc0f100edce16e80c7a5768b6d55ca463ff42\"\n implementationNames.eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED:\n- \"SystemConfig\"\n implementationNames.eth:0x42Ad0173051225Ac784100e9acD43349707F4db9:\n+ \"SystemConfig\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) [GnosisSafe] {\n +++ description: None\n receivedPermissions.9:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.11:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n }\n```\n\n```diff\n contract DisputeGameFactory (eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe) [opstack/DisputeGameFactory_v2] {\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them. This variant exposes per-type reads only; the legacy array views (gameImpls[], initBonds[]) were removed in the new implementation.\n template:\n- \"opstack/DisputeGameFactory\"\n+ \"opstack/DisputeGameFactory_v2\"\n sourceHashes.1:\n- \"0x7daf6049672fd2ab7dc8dd3b6287e1d0a40958346c5e2857c4616a73dcac4da6\"\n+ \"0x8912e655e26f51d4384fc950df847ae65bccf1f5ec5458642402f385c3dadf78\"\n description:\n- \"The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\"\n+ \"The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them. This variant exposes per-type reads only; the legacy array views (gameImpls[], initBonds[]) were removed in the new implementation.\"\n values.$implementation:\n- \"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50\"\n+ \"eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b\"\n values.$pastUpgrades.4:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0xc040F392E52Cb6970CA8E110c280fE24E07C5e2c\"]]\n values.$pastUpgrades.5:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.6:\n+ [\"2026-09-01T06:51:23.000Z\",\"0xdc33ac095940c214c81adf08eda36e0a14d97f397597f4d8e5d2fbbc4cd20033\",[\"eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b\"]]\n values.$upgradeCount:\n- 4\n+ 7\n values.challengerFromDGF:\n- \"UNRESOLVED\"\n+ \"eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n values.game2000:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.gameImpls:\n- [\"eth:0x0000000000000000000000000000000000000000\",\"eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\",\"eth:0x0000000000000000000000000000000000000000\"]\n values.initBonds:\n- [0,0,0,0,0]\n values.proposerFromDGF:\n- \"UNRESOLVED\"\n+ \"eth:0x4A6f5889409Bf4Bf3Bff0Fef585D7A29FdA64258\"\n values.version:\n- \"1.3.0\"\n+ \"1.6.1\"\n values.wethFromDGF:\n- \"UNRESOLVED\"\n+ \"eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e\"\n+++ severity: HIGH\n values.game0:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n+++ severity: HIGH\n values.game1:\n+ \"eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e\"\n+++ severity: HIGH\n values.game621:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n+++ severity: HIGH\n values.game8:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.game8Args:\n+ \"0x\"\n values.game8Vm:\n+ \"UNRESOLVED\"\n values.initBondGame0:\n+ 0\n values.initBondGame1:\n+ 0\n values.initBondGame621:\n+ 0\n values.initBondGame8:\n+ 0\n fieldMeta.gameImpls:\n- {\"severity\":\"HIGH\"}\n fieldMeta.game2000:\n- {\"severity\":\"HIGH\"}\n fieldMeta.game621:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.game0:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.game1:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.game8:\n+ {\"severity\":\"HIGH\"}\n implementationNames.eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50:\n- \"DisputeGameFactory\"\n implementationNames.eth:0x72B971717E088B59F26d4236BE222ADB6ACD393b:\n+ \"DisputeGameFactory\"\n usedTypes.0:\n+ {\"typeCaster\":\"SliceAddress\",\"arg\":{\"offset\":32}}\n }\n```\n\n```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x28260fD38F737e98F1599eCd385d4eB13C5A7A1f\"\n values.multisigThreshold:\n- \"2 of 10 (20%)\"\n+ \"2 of 11 (18%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DelayedWETH (eth:0x99e1fe97767683bbba69fF570b4BbEd7C3e0649e) [opstack/DelayedWETH]\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (eth:0xe1dFFCBE4e22B813F26d2106D943C102e7cAb87e) [opstack/PermissionedDisputeGame]\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```"
}
]
},
{
"id": "d922a712",
"date": "Tue, 25 Aug 2026 08:59:35 GMT",
"timestamp": 1787645431,
"description": "New selected op succinct config.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x00d68eb096f4c731512562f7a06e6bba104dbcb959261edd3eb3ec542c200c89\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x1f089f9d1cd3f727775788003d3e496037d3625e2e9de6e5005f1e9707ba3b8f\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"Katana OP Succinct v3.12.0 rollup config (Kona v1.6.0)\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0xe3fbe1170998c9f380d29247864dd07f2f17367a23ae5e0fa409ebd371d97d6f\"\n+ \"0x0f30c0b6846b034a146a47c5185fb9a4321df3569376773238ef30c831019190\"\n }\n```\n\n```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": "a3fbcb18",
"date": "Thu, 23 Jul 2026 13:53:56 GMT",
"timestamp": 1784814637,
"description": "One Polygon Labs Engineering/Security Multisig signer was rotated and another removed, changing it from 2-of-8 to 2-of-7.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```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": "7f0f13c0",
"date": "Tue, 21 Jul 2026 08:43:22 GMT",
"timestamp": 1784623318,
"description": "4 multisig signers added.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [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- \"2 of 6 (33%)\"\n+ \"2 of 10 (20%)\"\n }\n```"
}
]
},
{
"id": "c93bf0f0",
"date": "Fri, 17 Jul 2026 07:35:16 GMT",
"timestamp": 1784270104,
"description": "New op-succinct programHashes - reproduced from v3.10.0 . Add rollup config preimg and instructions to repro.",
"isHighSeverity": true,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x0034587dfb1de8163284d39f3043f5fadfa92f9e03fb3e0315eb469c550fde40\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x1b04822373ca65680026b5610c1edf424798421b032ef9117b2c264661de246f\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"Katana OP Succinct v3.10.0 rollup config (Kona v1.6.0)\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0x3cb66b8472d88440173415d4d4a316b9df81ac208e63e02829f823fccbe3f547\"\n+ \"0xe3fbe1170998c9f380d29247864dd07f2f17367a23ae5e0fa409ebd371d97d6f\"\n }\n```\n\n```diff\n contract Katana Steakhouse Financial / Morpho Multisig (eth:0x827e86072B06674a077f592A531dcE4590aDeCdB) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xfc615395336aADe67fd853a0157001a215Ea1279\"\n values.multisigThreshold:\n- \"2 of 6 (33%)\"\n+ \"2 of 7 (29%)\"\n }\n```"
}
]
},
{
"id": "67d3f4d9",
"date": "Wed, 08 Jul 2026 11:18:11 GMT",
"timestamp": 1783509417,
"description": "One multisig signer removed.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana yieldRecipient Mulsitig (eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0x34d23C4fb6542B467cA8724bAD30AC811399b184\"\n values.multisigThreshold:\n- \"2 of 7 (29%)\"\n+ \"2 of 6 (33%)\"\n }\n```\n\n```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] {\n +++ description: None\n values.$members.5:\n- \"eth:0x59cE4e1709c7E462F3b72Ca3e1256dFa7358FC29\"\n values.multisigThreshold:\n- \"2 of 7 (29%)\"\n+ \"2 of 6 (33%)\"\n }\n```"
}
]
},
{
"id": "870b374c",
"date": "Tue, 23 Jun 2026 12:57:22 GMT",
"timestamp": 1782219118,
"description": "Update op-succinct programs to v6.1.0.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) [katana/AggchainFEP_post035] {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x0095c1f31a6e1003e1e3083ca45bf69b95c9a1468708df1029c9cf4bceb8a852\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x3813362d038935ad6cb1e2566278975f08be38a92bfe7137505ef0c14a9d1972\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x352a9738897d236014fd5bd11986bf008b3b623b037405900ab338f93cdf5272\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0xe719c402037f76346e69e021164101e16954889c052f75f16a29758815723dde\"\n+ \"0x3cb66b8472d88440173415d4d4a316b9df81ac208e63e02829f823fccbe3f547\"\n }\n```"
}
]
},
{
"id": "31762479",
"date": "Tue, 16 Jun 2026 09:07:56 GMT",
"timestamp": 1781600787,
"description": "Add multisig signer.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SafeL2 (katana:0x7990513f4d64d57524a0B2519759f53B0cB1aEbd) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"katana:0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "f40af055",
"date": "Wed, 10 Jun 2026 14:34:54 GMT",
"timestamp": 1781102006,
"description": "Two conduit ms members removed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"eth:0x65D1d44B8B2fE15d45A03708E0835C7E98a56007\"\n values.$members.8:\n- \"eth:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n values.multisigThreshold:\n- \"4 of 12 (33%)\"\n+ \"4 of 10 (40%)\"\n }\n```"
}
]
},
{
"id": "25184f45",
"date": "Tue, 02 Jun 2026 13:01:35 GMT",
"timestamp": 1780404229,
"description": "Config ignores and conduit ms changes.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0xcdC931935768c0562AfE989A366a3Dc4d52F4853\"\n values.$members.8:\n- \"eth:0x3840f487A17A41100DD1Bf0946c34f132a57Fd5f\"\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": "e7d986f3",
"date": "Fri, 29 May 2026 13:34:21 GMT",
"timestamp": 1780060245,
"description": "Standard L2 contract sources have been verified.",
"isHighSeverity": false,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AgglayerBridgeL2 (katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) [katana/AgglayerBridgeL2] {\n +++ description: Agglayer bridge contract. Supports interop with Ethereum and blockchains connected to Agglayer. Escrows all preminted ETH because it cannot mint on the L2. The globalExitRootManager is used as an oracle to validate bridge messages against.\n values.claimedGlobalIndexHashChain:\n- \"0x5fede20963bde12c20e3076c4426550f570914a8a035c1381bc98f8bed306a46\"\n+ \"0xdef05ec6820a531b383dc3f9dbbc1aac9846e2eab7a821929b5a07cc51659e4c\"\n values.getRoot:\n- \"0x1d743ae7262c7410af3fb680660e6c1f336b2f49609f709a69a9fd8b9ad21bb2\"\n+ \"0x5ed5cfaf86b2b848194a0a9ebfa969a88ddee6b8f6f007a0ef658482f2665402\"\n }\n```\n\n```diff\n contract GlobalExitRootManagerL2SovereignChain (katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA) [katana/GlobalExitRootManagerL2SovereignChain] {\n +++ description: Manages Layer 2 and global merkle roots (exit roots). It stores exit roots written during bridge deposits, accepts imported global exit roots from a permissioned address, and manages historical roots.\n values.insertedGERHashChain:\n- \"0xaae24c57922b6453c1812383dba7b31cf9788b57cfc281e208b4e2911e5feee7\"\n+ \"0x59bc3b88b56a09b106e04e1ffe3fd6dc754bf81029ef9cfe2723275b8f5b347c\"\n values.lastRollupExitRoot:\n- \"0x1d743ae7262c7410af3fb680660e6c1f336b2f49609f709a69a9fd8b9ad21bb2\"\n+ \"0x5ed5cfaf86b2b848194a0a9ebfa969a88ddee6b8f6f007a0ef658482f2665402\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n contract ProxyAdmin (katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A) [global/ProxyAdmin] {\n +++ description: None\n name:\n- \"upgradeProxy\"\n+ \"ProxyAdmin\"\n unverified:\n- true\n receivedPermissions:\n- [{\"permission\":\"upgrade\",\"from\":\"katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe\",\"role\":\"admin\"},{\"permission\":\"upgrade\",\"from\":\"katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA\",\"role\":\"admin\"}]\n values.owner:\n+ \"katana:0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13\"\n implementationNames.katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A:\n- \"\"\n+ \"ProxyAdmin\"\n template:\n+ \"global/ProxyAdmin\"\n sourceHashes:\n+ [\"0xae641c7d7a83bba7fa913b9544f946dc23ca0527c2f4abb9c6a3496f49375218\"]\n directlyReceivedPermissions:\n+ [{\"permission\":\"upgrade\",\"from\":\"katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe\",\"role\":\"admin\"},{\"permission\":\"upgrade\",\"from\":\"katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA\",\"role\":\"admin\"}]\n }\n```\n\n```diff\n contract GasPriceOracle (katana:0x420000000000000000000000000000000000000F) [opstack/Layer2/GasPriceOracle] {\n +++ description: Provides the current gas price for L2 transactions.\n unverified:\n- true\n values.baseFee:\n+ 0\n values.baseFeeScalar:\n+ 1368\n values.decimals:\n+ 6\n values.DECIMALS:\n+ 6\n values.gasPrice:\n+ 0\n values.isEcotone:\n+ true\n values.isFjord:\n+ true\n values.isIsthmus:\n+ true\n values.isJovian:\n+ true\n values.version:\n+ \"1.6.0\"\n implementationNames.katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1:\n- \"\"\n+ \"GasPriceOracle\"\n template:\n+ \"opstack/Layer2/GasPriceOracle\"\n sourceHashes:\n+ [\"0xdb44b7e73254e0314f233ca790b4d44a2f9e3cebc019945c0ef84b9e3579c77a\",\"0x2a3c7909036a30543d4aaa8e9501caab6f998a671d40cc3822f89c6239e6b8ab\"]\n description:\n+ \"Provides the current gas price for L2 transactions.\"\n }\n```\n\n```diff\n contract L1Block (katana:0x4200000000000000000000000000000000000015) [opstack/Layer2/L1Block] {\n +++ description: Simple contract that returns information about the latest L1 block, which is derived permissionlessly from the L1 chain.\n unverified:\n- true\n values.baseFeeScalar:\n+ 1368\n values.batcherHash:\n+ \"0x0000000000000000000000001ffda89c755f6d4af069897d77ccabb580fd412a\"\n values.daFootprintGasScalar:\n+ 400\n values.DEPOSITOR_ACCOUNT:\n+ \"katana:0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001\"\n values.gasPayingToken:\n+ {\"addr_\":\"katana:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\"decimals_\":18}\n values.gasPayingTokenName:\n+ \"Ether\"\n values.gasPayingTokenSymbol:\n+ \"ETH\"\n values.isCustomGasToken:\n+ false\n values.l1FeeOverhead:\n+ 0\n values.l1FeeScalar:\n+ 0\n values.version:\n+ \"1.7.0\"\n implementationNames.katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C:\n- \"\"\n+ \"L1Block\"\n template:\n+ \"opstack/Layer2/L1Block\"\n sourceHashes:\n+ [\"0xdb44b7e73254e0314f233ca790b4d44a2f9e3cebc019945c0ef84b9e3579c77a\",\"0x399e57fff478211b47d61c5acb60592a4df8ffa5716959a1a6ee2ccabc44915e\"]\n description:\n+ \"Simple contract that returns information about the latest L1 block, which is derived permissionlessly from the L1 chain.\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract L2Timelock (katana:0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13) [polygon-cdk/L2Timelock]\n +++ description: A timelock with access control. The current minimum delay is 12h.\n```"
}
]
},
{
"id": "4a509311",
"date": "Thu, 28 May 2026 12:57:31 GMT",
"timestamp": 1779956198,
"description": "minimal diff upgrade to the OptiPortal that adds deposited transactions! https://flat.l2beat.com/diff/ink:0xC0D3C0d3C0d3c0d3C0d3C0D3c0D3c0d3c0D30016/katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A\n\nusers can now force transactions that do not relate to bridging (they still cannot force ETH- or token deposits). the force tx delay in op stack (or op-succinct) depends on the node config/programHash and both are unverified for katana. as soon as we have a source, we should look for `sequencerWindowSize` (OP stack standard is 3600). we will assume standard and show the delay as 12h but say that this is unverified.\n\nproposals are also still permissioned, meaning that, assuming sequencer and proposer/prover are the same entity, the system changed from 'sequencer can cherry-pick/censor' to 'proposer must blanket-censor, no cherry-pick'.\n\nthe agglayer bridge is separate from the OP stack proof system and bridge and has its own proof system and l2 smart contract. this includes the gas token (ETH) bridge. the oracle on L2 that allows to update the agglayer bridge state roots is permissioned to an EOA atm.",
"isHighSeverity": true,
"changeCount": 51,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Yearn Strategist Multisig (eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n+ \"eth:0x5E5D6f849Fa86c058f148E9D3f643C8F4c43f20b\"\n values.$members.1:\n+ \"eth:0x5250077c42627cBd112988f32D482acC9ff40bDB\"\n values.$members.2:\n+ \"eth:0xC357eE8a8DdE88Dd5a3Ea54847Adef6846A28c51\"\n values.$members.3:\n+ \"eth:0xFcc3796370e1538F8cC60bec19A8be5457f2C74F\"\n values.$members.4:\n+ \"eth:0xFafFb75e14faFf9f11315E44a2E54A22872c7a34\"\n values.$members.2:\n- \"eth:0xBD5f1429Ab467E69BEeba51E547C00A21F2a2092\"\n values.$members.3:\n- \"eth:0x787aba336583f4A1D4f8cBBFDFFD49f3a38De665\"\n values.$members.4:\n- \"eth:0x2C2dc95F8C8060a7e3B354c1B9540881AEa1613C\"\n values.$members.5:\n- \"eth:0xd0002c648CCa8DeE2f2b8D70D542Ccde8ad6EC03\"\n values.$members.6:\n- \"eth:0x1b5f15DCb82d25f91c65b53CEe151E8b9fBdD271\"\n }\n```\n\n```diff\n contract OptimismPortal2 (eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) [katana/OptimismPortal2] {\n +++ description: Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions.\n name:\n- \"OptimismPortal2_neutered\"\n+ \"OptimismPortal2\"\n template:\n- \"opstack/OptimismPortal2_noForce\"\n+ \"katana/OptimismPortal2\"\n sourceHashes.1:\n- \"0x4cc0e4525ed77b81565c05c0e673e043a93d9878924197f772581f72c11c91c5\"\n+ \"0xfcecb325a86c39482f8e9d29272f25089eec0b5fbefe21444fd1ea690c911f0c\"\n description:\n- \"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 fork of the standard contract **disables the depositTransaction() function**, which prevents 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+ \"Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions.\"\n values.$implementation:\n- \"eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4\"\n+ \"eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a\"\n values.$pastUpgrades.8:\n+ [\"2026-05-22T16:31:35.000Z\",\"0x46d8e0a3a5383c133292ef51e4d7eef96fddc443b892d38e62c39b1186055691\",[\"eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a\"]]\n values.$upgradeCount:\n- 8\n+ 9\n values.version:\n- \"5.1.1\"\n+ \"agg3.15.0\"\n fieldMeta.respectedGameType:\n+ {\"severity\":\"HIGH\"}\n implementationNames.eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4:\n- \"OptimismPortal2\"\n implementationNames.eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a:\n+ \"OptimismPortal2\"\n usedTypes.0.arg.1337:\n+ \"KailuaGame\"\n }\n```\n\n```diff\n contract AgglayerBridgeL2 (katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) [katana/AgglayerBridgeL2] {\n +++ description: Agglayer bridge contract. Supports interop with Ethereum and blockchains connected to Agglayer. Escrows all preminted ETH because it cannot mint on the L2. The globalExitRootManager is used as an oracle to validate bridge messages against.\n values.claimedGlobalIndexHashChain:\n- \"0xfcb94fe6eae1dd3db9426645c49bdd5a55f574591df36333e3822c2e28a6aa5d\"\n+ \"0x5fede20963bde12c20e3076c4426550f570914a8a035c1381bc98f8bed306a46\"\n values.getRoot:\n- \"0x77b2c19aaa8daa89496903e91a84dfdf09cbc2821671eb351e953ed0c646be5b\"\n+ \"0x1d743ae7262c7410af3fb680660e6c1f336b2f49609f709a69a9fd8b9ad21bb2\"\n }\n```\n\n```diff\n contract GlobalExitRootManagerL2SovereignChain (katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA) [katana/GlobalExitRootManagerL2SovereignChain] {\n +++ description: Manages Layer 2 and global merkle roots (exit roots). It stores exit roots written during bridge deposits, accepts imported global exit roots from a permissioned address, and manages historical roots.\n values.insertedGERHashChain:\n- \"0x64bc5ca77fa29cfc3cd117f2314df1d7c1c5f3d01f31f2c58bd277f3e75b1016\"\n+ \"0xaae24c57922b6453c1812383dba7b31cf9788b57cfc281e208b4e2911e5feee7\"\n values.lastRollupExitRoot:\n- \"0x77b2c19aaa8daa89496903e91a84dfdf09cbc2821671eb351e953ed0c646be5b\"\n+ \"0x1d743ae7262c7410af3fb680660e6c1f336b2f49609f709a69a9fd8b9ad21bb2\"\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract upgradeProxy (katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AgglayerBridgeL2 (katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) [katana/AgglayerBridgeL2]\n +++ description: Agglayer bridge contract. Supports interop with Ethereum and blockchains connected to Agglayer. Escrows all preminted ETH because it cannot mint on the L2. The globalExitRootManager is used as an oracle to validate bridge messages against.\n```\n\n```diff\n+ Status: CREATED\n contract DeployerWhitelist (katana:0x4200000000000000000000000000000000000002) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2CrossDomainMessenger (katana:0x4200000000000000000000000000000000000007) [opstack/Layer2/L2CrossDomainMessenger]\n +++ description: The L2CrossDomainMessenger (L2xDM) contract sends messages from L2 to L1, and relays messages from L1 onto L2 with a system tx. In the event that a message sent from L2 to L1 is rejected for exceeding the L1 gas limit, it can be resubmitted via this contract’s replay function.\n```\n\n```diff\n+ Status: CREATED\n contract GasPriceOracle (katana:0x420000000000000000000000000000000000000F) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2StandardBridge (katana:0x4200000000000000000000000000000000000010) [opstack/Layer2/L2StandardBridge]\n +++ description: The L2StandardBridge contract is the main entry point to deposit or withdraw ERC20 tokens from L2 to L1. This contract can store any token.\n```\n\n```diff\n+ Status: CREATED\n contract SequencerFeeVault (katana:0x4200000000000000000000000000000000000011) [opstack/Layer2/SequencerFeeVault]\n +++ description: Collects the sequencer fees.\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC20Factory (katana:0x4200000000000000000000000000000000000012) [opstack/Layer2/OptimismMintableERC20Factory]\n +++ description: Factory contract to create bridge compliant ERC20 IOU token representations of bridged L1 ERC20 tokens.\n```\n\n```diff\n+ Status: CREATED\n contract L1BlockNumber (katana:0x4200000000000000000000000000000000000013) [opstack/Layer2/L1BlockNumber]\n +++ description: Simple contract that returns the latest L1 block number.\n```\n\n```diff\n+ Status: CREATED\n contract L2ERC721Bridge (katana:0x4200000000000000000000000000000000000014) [opstack/Layer2/L2ERC721Bridge]\n +++ description: The L2ERC721Bridge contract is the main entry point to deposit or withdraw ERC721 tokens from L2 to L1. This contract can store any token.\n```\n\n```diff\n+ Status: CREATED\n contract L1Block (katana:0x4200000000000000000000000000000000000015) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2ToL1MessagePasser (katana:0x4200000000000000000000000000000000000016) [katana/L2ToL1MessagePasser]\n +++ description: Contract used internally by the L2CrossDomainMessenger to send messages to L1. It can also be used directly as a low-level interface.\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC721Factory (katana:0x4200000000000000000000000000000000000017) [opstack/Layer2/OptimismMintableERC721Factory]\n +++ description: Factory contract to create bridge compliant ERC721 IOU token representations of bridged L1 ERC721 tokens.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (katana:0x4200000000000000000000000000000000000018) [global/ProxyAdmin]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract BaseFeeVault (katana:0x4200000000000000000000000000000000000019) [opstack/Layer2/BaseFeeVault]\n +++ description: Collects EIP-1559 base fees\n```\n\n```diff\n+ Status: CREATED\n contract L1FeeVault (katana:0x420000000000000000000000000000000000001A) [opstack/Layer2/L1FeeVault]\n +++ description: Collects the L1 portion of the L2 transaction fees.\n```\n\n```diff\n+ Status: CREATED\n contract OperatorFeeVault (katana:0x420000000000000000000000000000000000001b) [opstack/Layer2/OperatorFeeVault]\n +++ description: Holds the 'operator fees' for the L2 network, which are part of the L2 fees that users pay.\n```\n\n```diff\n+ Status: CREATED\n contract SchemaRegistry (katana:0x4200000000000000000000000000000000000020) [opstack/Layer2/SchemaRegistry]\n +++ description: Contracts to register schemas for the Ethereum Attestation Service (EAS).\n```\n\n```diff\n+ Status: CREATED\n contract EAS (katana:0x4200000000000000000000000000000000000021) [opstack/Layer2/EAS]\n +++ description: Contract containing the main logic for the Ethereum Attestation Service (EAS).\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafeL2 (katana:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (katana:0x7990513f4d64d57524a0B2519759f53B0cB1aEbd) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GlobalExitRootManagerL2SovereignChain (katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA) [katana/GlobalExitRootManagerL2SovereignChain]\n +++ description: Manages Layer 2 and global merkle roots (exit roots). It stores exit roots written during bridge deposits, accepts imported global exit roots from a permissioned address, and manages historical roots.\n```\n\n```diff\n+ Status: CREATED\n contract BridgeLib (katana:0xb30C032b183525de7427f04e79F45Cd19866E124) [katana/BridgeLib]\n +++ description: Utility library contract for the AgglayerBridgeL2.\n```\n\n```diff\n+ Status: CREATED\n contract SafeL2 (katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenWrappedBridgeUpgradeable (katana:0xF0777a825470092b3Debc9af291634460b8E1a2c) [katana/TokenWrappedBridgeUpgradeable]\n +++ description: An ERC-20 implementation designed for cross-chain assets on the L2. It restricts token minting or burning strictly to the primary bridge contract.\n```"
}
]
},
{
"id": "dbd2c228",
"date": "Wed, 13 May 2026 12:37:16 GMT",
"timestamp": 1778675724,
"description": "ms member change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) [GnosisSafe] {\n +++ description: None\n values.$members.4:\n- \"eth:0x6c20ea7778EA9F3Afd74Ce4538bc4D9d61E6ABb1\"\n+ \"eth:0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3\"\n }\n```"
}
]
},
{
"id": "af60feb7",
"date": "Wed, 29 Apr 2026 08:37:50 GMT",
"timestamp": 1777451715,
"description": "Two unrelated changes:\n\n1. **EOA `0x227D9Ea8...` set up an EIP-7702 delegation.** This EOA is a signer on two katana multisigs. It now delegates to `0x63c0c19a...` (MetaMask's `EIP7702StatelessDeleGator` v1.3.0) with `delegationManager = 0xdb9B1e94...` and `entryPoint = 0x00000000...da032` (ERC-4337 EntryPoint v0.7). No protocol change for katana — just the signer's own EOA upgrading to a smart-account setup that runs through ERC-4337.\n\n2. **Conduit Multisig 1 (`eth:0x4a496227...`)** — signer `0x381624F7` removed. Threshold unchanged at 4; total signers 13 → 12 (31% → 33%). Same shared multisig change observed on `forknet`.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x41c6ce964a4ef3e910f9ddf78152734dae8d1b1094ffc8334c50249a3b112bbf\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x876a24e12d1595ba43f838917743b4ea108e3957c4df5ec812cf3348b156d941\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```\n\n```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.1:\n- \"eth:0x381624F7912BddD83dc67c6C53Ef6FE61B87Cf07\"\n values.multisigThreshold:\n- \"4 of 13 (31%)\"\n+ \"4 of 12 (33%)\"\n }\n```"
}
]
},
{
"id": "08710e37",
"date": "Fri, 24 Apr 2026 10:10:16 GMT",
"timestamp": 1777024331,
"description": "New opsuccinct config.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x0065e407807b2b3610cc9ff6637ea16e815552bc34b48c206529d3cfcd9d1152\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x5c7c05114bc5dd360fdb52ec2b4977a45f7e22806bc949a72759ea1172202229\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x352a9738897d236014fd5bd11986bf008b3b623b037405900ab338f93cdf5272\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0x36e852219a68060b42e38154cd2c3e2b36ae97ea0445b1b9a034232cda5b3c00\"\n+ \"0xe719c402037f76346e69e021164101e16954889c052f75f16a29758815723dde\"\n }\n```"
}
]
},
{
"id": "388d9a35",
"date": "Wed, 22 Apr 2026 13:08:46 GMT",
"timestamp": 1776863221,
"description": "fee and multisig changes.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Steakhouse Financial / Morpho Multisig (eth:0x827e86072B06674a077f592A531dcE4590aDeCdB) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6\"\n values.multisigThreshold:\n- \"2 of 5 (40%)\"\n+ \"2 of 6 (33%)\"\n }\n```\n\n```diff\n contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.minBaseFee:\n- 0\n+ 1000000\n values.operatorFeeConstant:\n- 1351351351351\n+ 0\n values.operatorFeeScalar:\n- 0\n+ 100000\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a\"\n values.multisigThreshold:\n- \"3 of 4 (75%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "7769cde1",
"date": "Fri, 10 Apr 2026 08:24:59 GMT",
"timestamp": 1775809429,
"description": "Rotated one member, removed two members from Polygon admin ms.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n values.$members.0:\n- \"eth:0x1B054e6c9F424879d8ad829EE254F88B4D3ac304\"\n+ \"eth:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b\"\n values.$members.3:\n- \"eth:0x34d23C4fb6542B467cA8724bAD30AC811399b184\"\n values.$members.4:\n- \"eth:0x1DD6473a6bb5fF9041D945C7d15AC8fBc2Ee1164\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "50934e46",
"date": "Tue, 07 Apr 2026 11:34:04 GMT",
"timestamp": 1775561575,
"description": "Rotated MS member.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana yieldRecipient Mulsitig (eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756) {\n +++ description: None\n values.$members.2:\n- \"eth:0x6c20ea7778EA9F3Afd74Ce4538bc4D9d61E6ABb1\"\n+ \"eth:0xf2dc90d4645579f261cA36E81181986dB576BbEe\"\n }\n```"
}
]
},
{
"id": "5acfd848",
"date": "Mon, 16 Mar 2026 12:53:36 GMT",
"timestamp": 1773665394,
"description": "progHashes changed, cannot find on githubs.",
"isHighSeverity": true,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x00987c64e3710bc9ab5f3a93f3f1249be821b1a6eedb14dbc1ae2d6fc4fd9337\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x05f486d43f4066c24b8652cd52e122df59f0ea4c33c0df8155dc58de37f93330\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x352a9738897d236014fd5bd11986bf008b3b623b037405900ab338f93cdf5272\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0xf7803dc0ac1322b6bff3d4f9a48ffd57102e4076d8e40333dd72084f0cf9cc68\"\n+ \"0x36e852219a68060b42e38154cd2c3e2b36ae97ea0445b1b9a034232cda5b3c00\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x1B054e6c9F424879d8ad829EE254F88B4D3ac304\"\n values.$members.0:\n- \"eth:0x2483A0d6a3Bd89D5C17aA80B3f8f6102ac053361\"\n+ \"eth:0xA697656ac37ee1f59A8a5318F61601B4C208960D\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 6 (50%)\"\n }\n```"
}
]
},
{
"id": "d3280720",
"date": "Fri, 06 Mar 2026 08:59:26 GMT",
"timestamp": 1772786542,
"description": "progHash changed to op succinct 3.5.0.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x0077f45ec2258cc98fa879d13a2773190bffb9cafb9f428ce3c5718dc768f03e\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x0e5158b64c46007c04e5972727a2a26832337fbe765162294b0ce1ed0db36f9d\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x352a9738897d236014fd5bd11986bf008b3b623b037405900ab338f93cdf5272\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0xfda6f1430e8363d3850cb5ff3f026f6ce01ad0fad017cb06a1dcbeb72c00304d\"\n+ \"0xf7803dc0ac1322b6bff3d4f9a48ffd57102e4076d8e40333dd72084f0cf9cc68\"\n }\n```"
}
]
},
{
"id": "a0780ac7",
"date": "Wed, 04 Mar 2026 08:43:04 GMT",
"timestamp": 1772612116,
"description": "Upgrade to known op-contracts version.\n\nOptimism portal is neutered, diff to standard: https://disco.l2beat.com/diff/eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202/eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4\n\nrest of the contracts are standard.",
"isHighSeverity": true,
"changeCount": 118,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1ERC721Bridge (eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F) {\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0x28669b49da3effd51f0f9424ca9cdd455c5b9327c09a40c65fc06f114a6eb837\"\n+ \"0x75cd470a9d1c1afc343b599b1c14731f55bb36fe8a4e844ddb88a0b791918795\"\n values.$implementation:\n- \"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013\"\n+ \"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9\"\n values.$pastUpgrades.3:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x7f1d12fB2911EB095278085f721e644C1f675696\"]]\n values.$pastUpgrades.4:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9\"]]\n values.$upgradeCount:\n- 3\n+ 5\n values.version:\n- \"2.4.0\"\n+ \"2.9.0\"\n values.initVersion:\n+ 3\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.systemConfig:\n+ \"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\"\n implementationNames.eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013:\n- \"L1ERC721Bridge\"\n implementationNames.eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9:\n+ \"L1ERC721Bridge\"\n }\n```\n\n```diff\n contract ProxyAdmin (eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) {\n +++ description: None\n directlyReceivedPermissions.2:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\"}\n directlyReceivedPermissions.5:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"role\":\"admin\"}\n directlyReceivedPermissions.6:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xaA8a62563CFe4E36118ED479B5486F503b438376\",\"role\":\"admin\"}\n directlyReceivedPermissions.7:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322\",\"role\":\"admin\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract AnchorStateRegistry (eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n contract L1CrossDomainMessenger (eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E) {\n +++ 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 sourceHashes.1:\n- \"0x03bcdc719cb7bd0a1377c01bb50b30a6122b308f673b7d7b15a3bb8628e6bd8c\"\n+ \"0xfa9c986019a03bd66efb7584a7064e708f6fb71956643a9d4daa2c0972a29c03\"\n values.$implementation:\n- \"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B\"\n+ \"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0\"\n values.$pastUpgrades.3:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x22D12E0FAebD62d429514A65EBAe32dd316c12D6\"]]\n values.$pastUpgrades.4:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0\"]]\n values.$upgradeCount:\n- 3\n+ 5\n values.version:\n- \"2.6.0\"\n+ \"2.11.0\"\n values.initVersion:\n+ 3\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.systemConfig:\n+ \"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\"\n implementationNames.eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B:\n- \"L1CrossDomainMessenger\"\n implementationNames.eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0:\n+ \"L1CrossDomainMessenger\"\n }\n```\n\n```diff\n contract OptimismPortal2_neutered (eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) {\n +++ 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 fork of the standard contract **disables the depositTransaction() function**, which prevents 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 sourceHashes.1:\n- \"0x9cf3cb8a68c82a3a8328495d5f019daa51e9098a69b69ee8e349e3058b789338\"\n+ \"0x9b5cb94efaca7f6a941c6e29cd8f71079ec5ea2360e3f4948e59560dd107d7f9\"\n values.$implementation:\n- \"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc\"\n+ \"eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4\"\n values.$pastUpgrades.5:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x381E729FF983FA4BCEd820e7b922d79bF653B999\"]]\n values.$pastUpgrades.6:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202\"]]\n values.$pastUpgrades.7:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4\"]]\n values.$upgradeCount:\n- 5\n+ 8\n values.respectedGameTypeUpdatedAt:\n- 1746742811\n+ 1772552963\n values.version:\n- \"3.14.0\"\n+ \"5.1.1\"\n values.anchorStateRegistry:\n+ \"eth:0xaA8a62563CFe4E36118ED479B5486F503b438376\"\n values.ethLockbox:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.initVersion:\n+ 3\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc:\n- \"OptimismPortal2\"\n implementationNames.eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4:\n+ \"OptimismPortal2\"\n }\n```\n\n```diff\n contract SuperchainConfig (eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811) {\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system. Since the OptimismPortal is not used for state root management in this setup, the guardian role and pausing may be inconsequential.\n sourceHashes.1:\n- \"0x03dba37173051b02bc81487e181c791bcf1aef664c249e5d035f11f488bdd686\"\n+ \"0x53a6b3db7f270298025bbfef7f6c77b420a9808341212fa9cf54a5e157a18567\"\n values.$implementation:\n- \"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7\"\n+ \"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"\n values.$pastUpgrades.4:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0xCe28685EB204186b557133766eCA00334EB441E4\"]]\n values.$pastUpgrades.5:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"]]\n values.$upgradeCount:\n- 4\n+ 6\n values.GUARDIAN_SLOT:\n- \"0xd30e835d3f35624761057ff5b27d558f97bd5be034621e62240e5c0b784abe68\"\n values.PAUSED_SLOT:\n- \"0x54176ff9944c4784e5857ec4e5ef560a462c483bf534eda43f91bb01a470b1b6\"\n values.version:\n- \"1.2.0\"\n+ \"2.4.0\"\n values.initVersion:\n+ 2\n values.pauseExpiry:\n+ 7884000\n values.proxyAdmin:\n+ \"eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7:\n- \"SuperchainConfig\"\n implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957:\n+ \"SuperchainConfig\"\n }\n```\n\n```diff\n- Status: DELETED\n contract PermissionedDisputeGame (eth:0x667b7DA73DA7B2A75286378FF45637eEaE9B4793)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger. In the context of this permissioned aggkit deployment, there are no state proposals made here and the op stack fault proof system is not used.\n```\n\n```diff\n- Status: DELETED\n contract DelayedWETH (eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32)\n +++ 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```\n\n```diff\n contract L1StandardBridge (eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC) {\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0x4e15d99844dc5a4304c2396a66c95ec41218ea311c8e524b118fad7beed0bb53\"\n+ \"0x0114d3af66179d6404d14360203dc6bcf404f23e2db4ee1b5848e923e131bc00\"\n values.$implementation:\n- \"eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A\"\n+ \"eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A\"\n values.version:\n- \"2.3.0\"\n+ \"2.8.0\"\n values.initVersion:\n+ 3\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.systemConfig:\n+ \"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\"\n implementationNames.eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A:\n- \"L1StandardBridge\"\n implementationNames.eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A:\n+ \"L1StandardBridge\"\n }\n```\n\n```diff\n contract OptimismMintableERC20Factory (eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E) {\n +++ 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 sourceHashes.1:\n- \"0x9650b4bba6299e410f01a369a95a2c57e1c3ca35f0d80c13f4f59fc468f370e5\"\n+ \"0x25bad2bdb7df4347412a48e271dea1489299460192b43b8ca52ed191b4940992\"\n values.$implementation:\n- \"eth:0x5493f4677A186f64805fe7317D6993ba4863988F\"\n+ \"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB\"\n values.$pastUpgrades.2:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB\"]]\n values.$upgradeCount:\n- 2\n+ 3\n values.version:\n- \"1.10.1\"\n+ \"1.10.2\"\n implementationNames.eth:0x5493f4677A186f64805fe7317D6993ba4863988F:\n- \"OptimismMintableERC20Factory\"\n implementationNames.eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB:\n+ \"OptimismMintableERC20Factory\"\n }\n```\n\n```diff\n contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n sourceHashes.1:\n- \"0x921de6fc906d159fdcef862d2b9559063f5e7b9b7588fa5f33153360ddf296e7\"\n+ \"0x09e12b8c0307a4da75a8b84ed7c88ced81e386ec09025ec5b36873b4f69614d0\"\n values.$implementation:\n- \"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647\"\n+ \"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED\"\n values.$pastUpgrades.4:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x2bFE4A5Bd5A41e9d848d843ebCDFa15954e9A557\"]]\n values.$pastUpgrades.5:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED\"]]\n values.$upgradeCount:\n- 4\n+ 6\n values.DISPUTE_GAME_FACTORY_SLOT:\n- \"0x52322a25d9f59ea17656545543306b7aef62bc0cc53a0e65ccfa0c75b97aa906\"\n values.getAddresses.disputeGameFactory:\n- \"eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe\"\n values.maximumGasLimit:\n- 200000000\n+ 500000000\n values.version:\n- \"2.5.0\"\n+ \"3.11.0\"\n values.daFootprintGasScalar:\n+ 0\n values.guardian:\n+ \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n values.initVersion:\n+ 3\n values.l2ChainId:\n+ 747474\n values.minBaseFee:\n+ 0\n values.paused:\n+ false\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.superchainConfig:\n+ \"eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811\"\n implementationNames.eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647:\n- \"SystemConfig\"\n implementationNames.eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED:\n+ \"SystemConfig\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n receivedPermissions.2:\n- {\"permission\":\"interact\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\"}\n receivedPermissions.6:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.10:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xaA8a62563CFe4E36118ED479B5486F503b438376\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n }\n```\n\n```diff\n contract DisputeGameFactory (eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe) {\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n sourceHashes.1:\n- \"0x85ca17941ef36ac6b28a4f8f89803d0d41ef419c47586dcd3acdb47ee9617285\"\n+ \"0x19f3f7c7ee3977705261bfb86f826d5f97b885796f2246be7cc3e815c3e95dca\"\n values.$implementation:\n- \"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0\"\n+ \"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50\"\n values.$pastUpgrades.2:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D\"]]\n values.$pastUpgrades.3:\n+ [\"2026-03-03T15:49:23.000Z\",\"0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961\",[\"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50\"]]\n values.$upgradeCount:\n- 2\n+ 4\n+++ severity: HIGH\n values.gameImpls.1:\n- \"eth:0x667b7DA73DA7B2A75286378FF45637eEaE9B4793\"\n+ \"eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D\"\n values.version:\n- \"1.0.1\"\n+ \"1.3.0\"\n values.initVersion:\n+ 1\n values.proxyAdmin:\n+ \"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"\n values.proxyAdminOwner:\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n implementationNames.eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0:\n- \"DisputeGameFactory\"\n implementationNames.eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50:\n+ \"DisputeGameFactory\"\n }\n```\n\n```diff\n- Status: DELETED\n contract MIPS (eth:0xF027F4A985560fb13324e943edf55ad6F1d15Dc1)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (eth:0x6463dEE3828677F6270d83d45408044fc5eDB908)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n+ Status: CREATED\n contract AnchorStateRegistry (eth:0xaA8a62563CFe4E36118ED479B5486F503b438376)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract DelayedWETH (eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322)\n +++ 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```"
}
]
},
{
"id": "8237ac0a",
"date": "Mon, 02 Mar 2026 13:34:20 GMT",
"timestamp": 1772458371,
"description": "gas config change + ms member changes.",
"isHighSeverity": false,
"changeCount": 14,
"sections": [
{
"kind": "watched-changes",
"body": "```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```\n\n```diff\n- Status: DELETED\n reference (eth:0xAb3506507449bF1880f3337825efd19ac89E235E)\n +++ description: None\n```\n\n```diff\n contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n+++ description: volatility param: lower denominator -> quicker fee changes on L2\n values.eip1559Denominator:\n- 250\n+ 50\n values.eip1559Elasticity:\n- 60\n+ 6\n+++ description: Gas limit for blocks on L2.\n+++ severity: LOW\n values.gasLimit:\n- 60000000\n+ 120000000\n }\n```\n\n```diff\n- Status: DELETED\n reference (eth:0xcAB31b6A7b4d2eCd562A09e2BfA46535a18862f9)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n reference (eth:0xEad77b01ea770839F7f576Cd1516Ff6A298d9dB2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n reference (eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n reference (eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC)\n +++ description: None\n```"
}
]
},
{
"id": "b182e3dc",
"date": "Thu, 19 Feb 2026 08:41:37 GMT",
"timestamp": 1771490328,
"description": "optimistic mode manager moved to Polygon Multisig 2.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.optimisticModeManager:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.pendingOptimisticModeManager:\n- \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"interact\",\"from\":\"eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666\",\"description\":\"toggle the 'optimisticMode'.\",\"role\":\".optimisticModeManager\"}]\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666\",\"description\":\"toggle the 'optimisticMode'.\",\"role\":\".optimisticModeManager\"}\n }\n```"
}
]
},
{
"id": "5c066b30",
"date": "Mon, 16 Feb 2026 13:57:07 GMT",
"timestamp": 1771250113,
"description": "Move aggchain and op mode manager to Polygon Multisig 2.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.aggchainManager:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n values.pendingOptimisticModeManager:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"interact\",\"from\":\"eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666\",\"description\":\"change verification keys (aggregationVkey, rangeVkeyCommitment, aggchainVkey) and the rollupConfigHash, manage multisig signers for permissioned state transitions and change critical configs for state validation.\",\"role\":\".aggchainManager\"}\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666\",\"description\":\"change verification keys (aggregationVkey, rangeVkeyCommitment, aggchainVkey) and the rollupConfigHash, manage multisig signers for permissioned state transitions and change critical configs for state validation.\",\"role\":\".aggchainManager\"}\n }\n```"
}
]
},
{
"id": "092d0a96",
"date": "Wed, 11 Feb 2026 12:54:49 GMT",
"timestamp": 1770814418,
"description": "Owner changes (Polygon Multisig 2 claiming more permissions).",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions.2:\n- {\"permission\":\"interact\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\"}\n receivedPermissions.3:\n- {\"permission\":\"interact\",\"from\":\"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"description\":\"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract DelayedWETH (eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32) {\n +++ 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 values.owner:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract SystemConfig (eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.owner:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\"}\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"description\":\"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract DisputeGameFactory (eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe) {\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n values.owner:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```"
}
]
},
{
"id": "2760d96c",
"date": "Mon, 02 Feb 2026 14:49:25 GMT",
"timestamp": 1770035635,
"description": "upgrade admin change.",
"isHighSeverity": false,
"changeCount": 16,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) {\n +++ description: None\n values.owner:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions.4:\n- {\"permission\":\"interact\",\"from\":\"eth:0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65\",\"description\":\"set and change address mappings.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.5:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.6:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.7:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.8:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.9:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\"}]}\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.11:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC\",\"description\":\"upgrading the bridge implementation can give access to all funds escrowed therein.\",\"role\":\".$admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.12:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.13:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.14:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n directlyReceivedPermissions:\n- [{\"permission\":\"act\",\"from\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\",\"role\":\".owner\"},{\"permission\":\"act\",\"from\":\"eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\",\"role\":\".owner\"}]\n }\n```\n\n```diff\n contract ProxyAdmin (eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52) {\n +++ description: None\n values.owner:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"eth:0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65\",\"description\":\"set and change address mappings.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC\",\"description\":\"upgrading the bridge implementation can give access to all funds escrowed therein.\",\"role\":\".$admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}]\n directlyReceivedPermissions:\n+ [{\"permission\":\"act\",\"from\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\",\"role\":\".owner\"},{\"permission\":\"act\",\"from\":\"eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\",\"role\":\".owner\"}]\n }\n```"
}
]
},
{
"id": "7217acf2",
"date": "Tue, 27 Jan 2026 12:37:20 GMT",
"timestamp": 1769516922,
"description": "New member added to Conduit Multisig 1, increasing from 4 of 12 to 4 of 13 threshold.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09\"\n values.multisigThreshold:\n- \"4 of 12 (33%)\"\n+ \"4 of 13 (31%)\"\n }\n```"
}
]
},
{
"id": "ff6e8897",
"date": "Wed, 21 Jan 2026 12:34:25 GMT",
"timestamp": 1768998796,
"description": "conduit ms change.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x381624F7912BddD83dc67c6C53Ef6FE61B87Cf07\"\n values.multisigThreshold:\n- \"4 of 11 (36%)\"\n+ \"4 of 12 (33%)\"\n }\n```"
}
]
},
{
"id": "5ff094a2",
"date": "Mon, 19 Jan 2026 09:54:14 GMT",
"timestamp": 1768816385,
"description": "admin change and multisig member change.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.admin:\n- \"eth:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```\n\n```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 11 (36%)\"\n }\n```\n\n```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) {\n +++ description: None\n values.$members.6:\n- \"eth:0xfd5E854b73a239c9052d89C53D1313f5AfB860ac\"\n+ \"eth:0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4\"\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 7 (43%)\"\n+ \"2 of 7 (29%)\"\n }\n```"
}
]
},
{
"id": "83b025ef",
"date": "Wed, 14 Jan 2026 06:06:21 GMT",
"timestamp": 1768370407,
"description": "new pending admin: the admin can change the trusted sequencer address, which in turn can finalize state by signature, but only in optimistic mode, managed by the optimistic mode manager address.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.pendingAdmin:\n- \"eth:0x0000000000000000000000000000000000000000\"\n+ \"eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC\"\n }\n```"
}
]
},
{
"id": "e17f828d",
"date": "Mon, 15 Dec 2025 07:24:43 GMT",
"timestamp": 1765783036,
"description": "new opsuccinct vkeys:\n\naggregationVkey\n- unchanged: 0x007efdd073c9845bbc446e0e62018af999bde96ecec416725391efa4a3f0a44d\n\nrangeVkeyCommitment\n- old: 0x4b8234c47685b3361b22399702416a8010783b1b701b279073b4f0831e55da63\n- new: 0x64c8517c14f10577381d8961139a4420420e90e528d02be96e2b0961671db248\n\non gh this corresponds to [this pr](https://github.com/agglayer/provers/pull/316/changes)\n- update sp1 to 5.2.2\n- update alloy to 1.0\n- update agglayer to 0.12.0",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x007efdd073c9845bbc446e0e62018af999bde96ecec416725391efa4a3f0a44d\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x64c8517c14f10577381d8961139a4420420e90e528d02be96e2b0961671db248\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x7179e8c558e26751a56fc2fe9ce0a84ce248cfc98cb5b7a5178655b0c5c42ea5\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0x4a6e8c6abb9ec46b76062d422b6d87bb4b7e0304b4b06d554037828ce3006650\"\n+ \"0xfda6f1430e8363d3850cb5ff3f026f6ce01ad0fad017cb06a1dcbeb72c00304d\"\n }\n```\n\n```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": "83414157",
"date": "Fri, 05 Dec 2025 11:22:21 GMT",
"timestamp": 1764933676,
"description": "Conduit multisig key rotation.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x2103c69696CB2D3779f5445393808239034E911c\"\n values.$members.0:\n- \"eth:0xFe0ab87ebE03DD0bF52DaF34Dfda6639c335e2d4\"\n+ \"eth:0x65D1d44B8B2fE15d45A03708E0835C7E98a56007\"\n values.$members.4:\n- \"eth:0xF0B77EaE7F2dabCC2571c7418406A0dCA3afA4f0\"\n }\n```"
}
]
},
{
"id": "c1c0c241",
"date": "Wed, 26 Nov 2025 13:37:44 GMT",
"timestamp": 1764164180,
"description": "ms change in yearn.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Yearn Strategist Multisig (eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x80a3887BA60F76acAb48EE4aEAd0a71A0774A8B2\"\n values.$members.6:\n- \"eth:0x254f44F45ac892730e511f143DEd3Cd920b075aF\"\n+ \"eth:0x0Dca0FDC170baA4CA9c1dCd37Ffe01f97bCfD504\"\n values.multisigThreshold:\n- \"3 of 7 (43%)\"\n+ \"3 of 8 (38%)\"\n }\n```"
}
]
},
{
"id": "64df4461",
"date": "Tue, 25 Nov 2025 08:37:28 GMT",
"timestamp": 1764059644,
"description": "New opsuccinct vkeys.",
"isHighSeverity": true,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n values.selectedOpSuccinctConfig.aggregationVkey:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x007efdd073c9845bbc446e0e62018af999bde96ecec416725391efa4a3f0a44d\"\n values.selectedOpSuccinctConfig.rangeVkeyCommitment:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x4b8234c47685b3361b22399702416a8010783b1b701b279073b4f0831e55da63\"\n values.selectedOpSuccinctConfig.rollupConfigHash:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n+ \"0x7179e8c558e26751a56fc2fe9ce0a84ce248cfc98cb5b7a5178655b0c5c42ea5\"\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n- \"0x622142ba8035695383551428b698950d3d4a6a53629c90a86d7192cfb221ae4e\"\n+ \"0x4a6e8c6abb9ec46b76062d422b6d87bb4b7e0304b4b06d554037828ce3006650\"\n }\n```"
}
]
},
{
"id": "edc85324",
"date": "Mon, 17 Nov 2025 11:29:07 GMT",
"timestamp": 1763378838,
"description": "New multisig member.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xF045025C845E786E343Df30cC6f67ec6BB822b34\"\n values.multisigThreshold:\n- \"3 of 6 (50%)\"\n+ \"3 of 7 (43%)\"\n }\n```"
}
]
},
{
"id": "819eb143",
"date": "Tue, 04 Nov 2025 13:55:22 GMT",
"timestamp": 1762264436,
"description": "ms signer added.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Steakhouse Financial / Morpho Multisig (eth:0x827e86072B06674a077f592A531dcE4590aDeCdB) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b\"\n values.multisigThreshold:\n- \"2 of 4 (50%)\"\n+ \"2 of 5 (40%)\"\n }\n```"
}
]
},
{
"id": "f0f02b3e",
"date": "Fri, 31 Oct 2025 13:46:31 GMT",
"timestamp": 1761895573,
"description": "Agglayer 0.3.5 upgrade:\n\nAggchainFEP - https://disco.l2beat.com/diff/eth:0xe7FE45579D784DC83B0feD844A65f4cEEFDe5682/eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660\n- aggchainManager added\n- vkey manager removed, new aggchainManager has inherited their permissions\n- oppsuccinctConfig is now a single struct with range, agg vkeys and the confighash (all keys changed)\n- aggchainVkey changed, still defined in the AgglayerGateway and not in this contract",
"isHighSeverity": true,
"changeCount": 43,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n template:\n- \"polygon-cdk/AggchainFEP\"\n+ \"katana/AggchainFEP_post035\"\n sourceHashes.1:\n- \"0xe893ad152fe92e36431300818c1be2ef9c1d514a53c4ea4beba3dc0f4f9b8e4f\"\n+ \"0xd4a4d01788e8425e9dc0f2cd6f1954d521d3d0b021487bb0daeec6d8e26091c9\"\n description:\n- \"The main system contract defining the katana Layer 2 logic. As this contract is based on the OP-Succinct L2OutputOracle, OP stack outputRoots (L2 state roots) are saved here.\"\n+ \"The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\"\n values.$implementation:\n- \"eth:0xe7FE45579D784DC83B0feD844A65f4cEEFDe5682\"\n+ \"eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660\"\n values.$pastUpgrades.3:\n+ [\"2025-10-29T14:11:11.000Z\",\"0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939\",[\"eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.pendingVKeyManager:\n- \"eth:0x0000000000000000000000000000000000000000\"\n values.useDefaultGateway:\n- true\n values.version:\n- \"v2.0.0\"\n+ \"v3.0.0\"\n values.vKeyManager:\n- \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n values._legacypendingVKeyManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values._legacyvKeyManager:\n+ \"eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n values.AGGCHAIN_FEP_VERSION:\n+ \"v3.0.0\"\n values.aggchainMetadataManager:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n+++ severity: HIGH\n values.aggchainMultisigHash:\n+ \"0xa57d26181a2caeea2b3fd5057d852d665445bd502aac8281622f922335bcc7d7\"\n values.aggchainSigners:\n+ [\"eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439\"]\n values.GENESIS_CONFIG_NAME:\n+ \"0xae8304f40f7123e0c87b97f8a600e94ff3a3a25be588fc66b8a3717c8959ce77\"\n values.getAggchainMultisigHash:\n+ \"0xa57d26181a2caeea2b3fd5057d852d665445bd502aac8281622f922335bcc7d7\"\n values.getAggchainSignerInfos:\n+ [{\"addr\":\"eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439\",\"url\":\"https://rpc.katanarpc.com\"}]\n values.getAggchainSigners:\n+ [\"eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439\"]\n values.getAggchainSignersCount:\n+ 1\n values.getThreshold:\n+ 1\n values.MAX_AGGCHAIN_SIGNERS:\n+ 255\n values.selectedOpSuccinctConfig:\n+ {\"aggregationVkey\":\"0x00afb45d8064ae10aa6a1793b8f39a24c27268efae2917b5c02950b2377fbf00\",\"rangeVkeyCommitment\":\"0x416d710344b6b6fa2a0b1a1445f3d6ba4fdd5ab43f0e863b1c522db20f28ad9b\",\"rollupConfigHash\":\"0x6cd1b72f40b6ddf464897d8d1b084241f38ae5fda17175ff45afb3307b2523e9\"}\n+++ description: currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\n+++ severity: HIGH\n values.selectedOpSuccinctConfigName:\n+ \"0x622142ba8035695383551428b698950d3d4a6a53629c90a86d7192cfb221ae4e\"\n values.threshold:\n+ 1\n+++ severity: HIGH\n values.useDefaultSigners:\n+ false\n+++ severity: HIGH\n values.useDefaultVkeys:\n+ true\n fieldMeta.optimisticMode.description:\n- \"degrades the system into a permissioned finalization mode without validity proofs. the state root in the aggchain proof in optimistic mode does not need an op succinct validity proof, but only a signature of the trustedSequencer.\"\n+ \"degrades the system into a permissioned finalization mode without validity proofs. The state root in the aggchain proof in optimistic mode does not need an op succinct validity proof, but only a signature of the trustedSequencer.\"\n fieldMeta.aggregationVkey.severity:\n- \"HIGH\"\n+ \"LOW\"\n fieldMeta.aggregationVkey.description:\n- \"Verification key for the aggregation step which aggregates multiple range proofs into a single proof. The aggregation proof ensures that all range proofs in a given block range are linked and use the `rangeVkeyCommitment` as the verification key. This proof is in turn wrapped by the aggchainVkey.\"\n+ \"DEPRECATED - Verification key for the aggregation step which aggregates multiple range proofs into a single proof. The aggregation proof ensures that all range proofs in a given block range are linked and use the `rangeVkeyCommitment` as the verification key. This proof is in turn wrapped by the aggchainVkey.\"\n fieldMeta.rangeVkeyCommitment.severity:\n- \"HIGH\"\n+ \"LOW\"\n fieldMeta.rangeVkeyCommitment.description:\n- \"Verification key for the OP Stack derivation + STF proof for a range of blocks. This proof is the bottom level proof, wrapped by the aggregationVkey.\"\n+ \"DEPRECATED - Verification key for the OP Stack derivation + STF proof for a range of blocks. This proof is the bottom level proof, wrapped by the aggregationVkey.\"\n fieldMeta.useDefaultGateway:\n- {\"severity\":\"HIGH\",\"description\":\"If set to false then aggchainVKey will be loaded from this contract and not from AggLayerGateway. In this case you can uncomment two handlers in this template to track ownedAggchainVKeys.\"}\n fieldMeta.aggchainMultisigHash:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.selectedOpSuccinctConfigName:\n+ {\"severity\":\"HIGH\",\"description\":\"currently enforced OpSuccinctConfig. update the call handler for the full config if this changes.\"}\n fieldMeta.useDefaultSigners:\n+ {\"severity\":\"HIGH\"}\n fieldMeta.useDefaultVkeys:\n+ {\"severity\":\"HIGH\"}\n implementationNames.eth:0xe7FE45579D784DC83B0feD844A65f4cEEFDe5682:\n- \"AggchainFEP\"\n implementationNames.eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660:\n+ \"AggchainFEP\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions.0.description:\n- \"change the op-succinct related verification keys (aggregationVkey, rangeVkeyCommitment) and the rollupConfigHash.\"\n+ \"change verification keys (aggregationVkey, rangeVkeyCommitment, aggchainVkey) and the rollupConfigHash, manage multisig signers for permissioned state transitions and change critical configs for state validation.\"\n }\n```\n\n```diff\n EOA (eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439) {\n +++ description: None\n receivedPermissions.0.role:\n- \".trustedSequencer\"\n+ \".aggchainSigners\"\n receivedPermissions.0.description:\n- \"finalize any state root with only their signature.\"\n+ \"sign state transitions (replaces state validation for this aggchain).\"\n }\n```"
}
]
},
{
"id": "da765ddf",
"date": "Fri, 03 Oct 2025 08:42:02 GMT",
"timestamp": 1759480843,
"description": "Member removed from multisig.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.2:\n- \"eth:0x50930d652266EF4127FA3A1906B7Cb9951076628\"\n values.multisigThreshold:\n- \"4 of 11 (36%)\"\n+ \"4 of 10 (40%)\"\n }\n```"
}
]
},
{
"id": "bf919acb",
"date": "Fri, 29 Aug 2025 07:41:35 GMT",
"timestamp": 1756453226,
"description": "Msig changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana yieldRecipient Mulsitig (0x67C912fF560951526BffDff66dFbD4DF8AE23756) {\n +++ description: None\n values.$members.2:\n- \"eth:0x0A4857fD89ABfB7536a6D0Bd4400EF769E84Ec8b\"\n+ \"eth:0x6c20ea7778EA9F3Afd74Ce4538bc4D9d61E6ABb1\"\n }\n```\n\n```diff\n contract Safe (0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb) {\n +++ description: None\n values.$members.1:\n- \"eth:0x0A4857fD89ABfB7536a6D0Bd4400EF769E84Ec8b\"\n+ \"eth:0x6624307a4f672ec5C289fBA196952902BB518dc0\"\n }\n```"
}
]
},
{
"id": "3bbda47f",
"date": "Tue, 26 Aug 2025 13:28:38 GMT",
"timestamp": 1756214657,
"description": "Conduit msig: removed one address",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.2:\n- \"eth:0x860e06Fe384D1A3340111e7D142E02642178c053\"\n values.multisigThreshold:\n- \"4 of 12 (33%)\"\n+ \"4 of 11 (36%)\"\n }\n```"
}
]
},
{
"id": "c12d6309",
"date": "Wed, 20 Aug 2025 10:48:46 GMT",
"timestamp": 1755686907,
"description": "Updated the range program for proving L2 STF. I was not able to check the vkey commitment.",
"isHighSeverity": true,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AggchainFEP (0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666) {\n +++ description: The main system contract defining the katana Layer 2 logic. As this contract is based on the OP-Succinct L2OutputOracle, OP stack outputRoots (L2 state roots) are saved here.\n+++ description: Verification key for the OP Stack derivation + STF proof for a range of blocks. This proof is the bottom level proof, wrapped by the aggregationVkey.\n+++ severity: HIGH\n values.rangeVkeyCommitment:\n- \"0x2ebb1e0d5380158f22adf3750cc6056100a133d274fd7c5b457148ff29dfe173\"\n+ \"0x490685ea27adbbb83301073734f40a5656c984fe352359d54dd637e828e66872\"\n }\n```"
}
]
},
{
"id": "31d79549",
"date": "Thu, 14 Aug 2025 07:33:34 GMT",
"timestamp": 1755156807,
"description": "signer change.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Safe (0x261a25ec6c396389B75B6b22BD4A8227070E3B50) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21\"\n values.multisigThreshold:\n- \"1 of 3 (33%)\"\n+ \"1 of 4 (25%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21)\n +++ description: None\n```"
}
]
},
{
"id": "0802cea0",
"date": "Tue, 12 Aug 2025 14:40:13 GMT",
"timestamp": 1755009465,
"description": "Conduit Multisig 1 signer added.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Conduit Multisig 1 (0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xFe0ab87ebE03DD0bF52DaF34Dfda6639c335e2d4\"\n values.multisigThreshold:\n- \"4 of 11 (36%)\"\n+ \"4 of 12 (33%)\"\n }\n```"
}
]
},
{
"id": "d298481e",
"date": "Mon, 11 Aug 2025 10:53:22 GMT",
"timestamp": 1754909593,
"description": "yield recipient changed.",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract vbWBTC (0x2C24B57e2CCd1f273045Af6A5f632504C432374F) {\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\n description:\n- \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\"\n+ \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\"\n }\n```\n\n```diff\n contract vbETH (0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF) {\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\n description:\n- \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\"\n+ \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\"\n }\n```\n\n```diff\n contract vbUSDS (0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855) {\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\n description:\n- \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\"\n+ \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\"\n }\n```\n\n```diff\n contract vbUSDC (0x53E82ABbb12638F09d9e624578ccB666217a765e) {\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\n description:\n- \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\"\n+ \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\"\n }\n```\n\n```diff\n contract vbUSDT (0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC) {\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\n description:\n- \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\"\n+ \"This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50.\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x261a25ec6c396389B75B6b22BD4A8227070E3B50)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb)\n +++ description: None\n```"
}
]
},
{
"id": "e39f12d9",
"date": "Fri, 01 Aug 2025 13:23:05 GMT",
"timestamp": 1754054572,
"description": "op stack operator fee constant set.\n\nthree members added to multisig, threshold increased.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.operatorFeeConstant:\n- 0\n+ 1351351351351\n }\n```\n\n```diff\n contract Polygon Multisig 2 (0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x2483A0d6a3Bd89D5C17aA80B3f8f6102ac053361\"\n values.$members.1:\n+ \"eth:0x73D8846324B30477EA3Ac055589e40F39DE497F8\"\n values.$members.2:\n+ \"eth:0x34d23C4fb6542B467cA8724bAD30AC811399b184\"\n values.$threshold:\n- 1\n+ 3\n values.multisigThreshold:\n- \"1 of 2 (50%)\"\n+ \"3 of 5 (60%)\"\n }\n```"
}
]
},
{
"id": "627293ca",
"date": "Thu, 24 Jul 2025 11:38:32 GMT",
"timestamp": 1753357112,
"description": "Upgrade op stack contracts to known versions. The only aberrant contract is the new OptiPortal2, which, like the old one, [disallows deposited transactions](https://disco.l2beat.com/diff/eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4/eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc).\n\nConfig: Kailua added to OptimismPortal2 and DisputeGameFactory.",
"isHighSeverity": true,
"changeCount": 90,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1ERC721Bridge (0x15a32FCeA89617Ff450F094cDE102CCa46598B7F) {\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0x482ec6e91304ac39a3fb4505634427bddfddee23b8e93a4f7f995ca5083ae3c3\"\n+ \"0x28669b49da3effd51f0f9424ca9cdd455c5b9327c09a40c65fc06f114a6eb837\"\n values.$implementation:\n- \"eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d\"\n+ \"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013\"\n values.$pastUpgrades.1:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x276d3730f219f7ec22274f7263180b8452B46d47\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"2.1.0\"\n+ \"2.4.0\"\n implementationNames.eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d:\n- \"L1ERC721Bridge\"\n implementationNames.eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013:\n+ \"L1ERC721Bridge\"\n }\n```\n\n```diff\n contract ProxyAdmin (0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) {\n +++ description: None\n directlyReceivedPermissions.2:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\"}\n directlyReceivedPermissions.5:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract L1CrossDomainMessenger (0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E) {\n +++ 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 sourceHashes.1:\n- \"0x1cc8a3b7de3d2c54c4706bb3f3015714d3b56647fc9fbfd6f8b068f5f63c1c25\"\n+ \"0x03bcdc719cb7bd0a1377c01bb50b30a6122b308f673b7d7b15a3bb8628e6bd8c\"\n values.$implementation:\n- \"eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65\"\n+ \"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B\"\n values.$pastUpgrades.1:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x3eA6084748ED1b2A9B5D4426181F1ad8C93F6231\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.version:\n- \"2.3.0\"\n+ \"2.6.0\"\n values.ENCODING_OVERHEAD:\n+ 260\n values.FLOOR_CALLDATA_OVERHEAD:\n+ 40\n values.TX_BASE_GAS:\n+ 21000\n implementationNames.eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65:\n- \"L1CrossDomainMessenger\"\n implementationNames.eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B:\n+ \"L1CrossDomainMessenger\"\n }\n```\n\n```diff\n contract OptimismPortal2 (0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) {\n +++ 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 fork of the standard contract **disables the depositTransaction() function**, which prevents 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 sourceHashes.1:\n- \"0x1e6e48895b45b98acfe8b9c9f4568d3662e2932d82019f4ea721e2f7b57a58fc\"\n+ \"0x9cf3cb8a68c82a3a8328495d5f019daa51e9098a69b69ee8e349e3058b789338\"\n values.$implementation:\n- \"eth:0x9a6C2Dcc7e523f87716e17Ba36D10CCfFA0A60bb\"\n+ \"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc\"\n values.$pastUpgrades.2:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd\"]]\n values.$pastUpgrades.3:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4\"]]\n values.$pastUpgrades.4:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc\"]]\n values.$upgradeCount:\n- 2\n+ 5\n values.version:\n- \"3.11.0-beta.6\"\n+ \"3.14.0\"\n implementationNames.eth:0x9a6C2Dcc7e523f87716e17Ba36D10CCfFA0A60bb:\n- \"OptimismPortal2\"\n implementationNames.eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc:\n+ \"OptimismPortal2\"\n }\n```\n\n```diff\n- Status: DELETED\n contract PermissionedDisputeGame (0x2d4B822F8B74AdE7fcD5F740967f4dFcD2fef5e4)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n contract SuperchainConfig (0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811) {\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n sourceHashes.1:\n- \"0x3f0bcc82f3184c1cb2e9aa6d3ecdd7c863186eea851dda56dd7e100d9174b840\"\n+ \"0x03dba37173051b02bc81487e181c791bcf1aef664c249e5d035f11f488bdd686\"\n values.$implementation:\n- \"eth:0x838897A86Cb4F130D0eFC1203d7dA6D0db4bEd1A\"\n+ \"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7\"\n values.$pastUpgrades.3:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.version:\n- \"1.1.1-beta.1\"\n+ \"1.2.0\"\n implementationNames.eth:0x838897A86Cb4F130D0eFC1203d7dA6D0db4bEd1A:\n- \"SuperchainConfig\"\n implementationNames.eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7:\n+ \"SuperchainConfig\"\n }\n```\n\n```diff\n contract Katana Foundation Engineering/Security Multisig (0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n receivedPermissions.6:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}\n }\n```\n\n```diff\n- Status: DELETED\n contract MIPS (0x5fE03a12C1236F9C22Cb6479778DDAa4bce6299C)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n contract DelayedWETH (0x74034597d29613CC8C0BDc8780e1d292A553Bd32) {\n +++ 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 sourceHashes.1:\n- \"0xfff6f4cca21febd4323222e2ca87ec8b78edfdeeca942468fbf331e537815484\"\n+ \"0x1c7d0fda5ed6d8fc7f5b5f7df5e307f0fcfd173fa5833ea9fce8875d5d44d86a\"\n values.$implementation:\n- \"eth:0x71e966Ae981d1ce531a7b6d23DC0f27B38409087\"\n+ \"eth:0x5e40B9231B86984b5150507046e354dbFbeD3d9e\"\n values.$pastUpgrades.1:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x5e40B9231B86984b5150507046e354dbFbeD3d9e\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.delay:\n- 604800\n+ 302400\n values.version:\n- \"1.1.0\"\n+ \"1.3.0\"\n implementationNames.eth:0x71e966Ae981d1ce531a7b6d23DC0f27B38409087:\n- \"DelayedWETH\"\n implementationNames.eth:0x5e40B9231B86984b5150507046e354dbFbeD3d9e:\n+ \"DelayedWETH\"\n }\n```\n\n```diff\n- Status: DELETED\n contract AnchorStateRegistry (0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n contract L1StandardBridge (0x98906C3f90A06B5484DD67bf32938815d2993dBC) {\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n sourceHashes.1:\n- \"0x1010ff7f40ab4d53e6d9996aefa04423dabe9d0e22fac2d02b330ed3aa2c5740\"\n+ \"0x4e15d99844dc5a4304c2396a66c95ec41218ea311c8e524b118fad7beed0bb53\"\n values.$implementation:\n- \"eth:0x64B5a5Ed26DCb17370Ff4d33a8D503f0fbD06CfF\"\n+ \"eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A\"\n values.version:\n- \"2.1.0\"\n+ \"2.3.0\"\n implementationNames.eth:0x64B5a5Ed26DCb17370Ff4d33a8D503f0fbD06CfF:\n- \"L1StandardBridge\"\n implementationNames.eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A:\n+ \"L1StandardBridge\"\n }\n```\n\n```diff\n- Status: DELETED\n contract PreimageOracle (0x9c065e11870B891D214Bc2Da7EF1f9DDFA1BE277)\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n contract OptimismMintableERC20Factory (0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E) {\n +++ 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 sourceHashes.1:\n- \"0x4c5ac4e53576924cabbd2a471f368a541bc3f4b1f53fa41a389692fcc62f6176\"\n+ \"0x9650b4bba6299e410f01a369a95a2c57e1c3ca35f0d80c13f4f59fc468f370e5\"\n values.$implementation:\n- \"eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846\"\n+ \"eth:0x5493f4677A186f64805fe7317D6993ba4863988F\"\n values.$pastUpgrades.1:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x5493f4677A186f64805fe7317D6993ba4863988F\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.version:\n- \"1.9.0\"\n+ \"1.10.1\"\n implementationNames.eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846:\n- \"OptimismMintableERC20Factory\"\n implementationNames.eth:0x5493f4677A186f64805fe7317D6993ba4863988F:\n+ \"OptimismMintableERC20Factory\"\n }\n```\n\n```diff\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n sourceHashes.1:\n- \"0xc7135dbd2a53312d36df3f3ee91ce0a5a459ab8fc7725880a3a9c55a5fa0ed6c\"\n+ \"0x921de6fc906d159fdcef862d2b9559063f5e7b9b7588fa5f33153360ddf296e7\"\n values.$implementation:\n- \"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375\"\n+ \"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647\"\n values.$pastUpgrades.2:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x760C48C62A85045A6B69f07F4a9f22868659CbCc\"]]\n values.$pastUpgrades.3:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647\"]]\n values.$upgradeCount:\n- 2\n+ 4\n values.gasPayingToken:\n- {\"addr_\":\"eth:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\"decimals_\":18}\n values.gasPayingTokenName:\n- \"Ether\"\n values.gasPayingTokenSymbol:\n- \"ETH\"\n values.isCustomGasToken:\n- false\n values.version:\n- \"2.3.0\"\n+ \"2.5.0\"\n values.getAddresses:\n+ {\"l1CrossDomainMessenger\":\"eth:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E\",\"l1ERC721Bridge\":\"eth:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F\",\"l1StandardBridge\":\"eth:0x98906C3f90A06B5484DD67bf32938815d2993dBC\",\"disputeGameFactory\":\"eth:0xe06278351d120288eDfCB963F934113Ca3C21AFe\",\"optimismPortal\":\"eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E\",\"optimismMintableERC20Factory\":\"eth:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E\"}\n values.operatorFeeConstant:\n+ 0\n values.operatorFeeScalar:\n+ 0\n implementationNames.eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375:\n- \"SystemConfig\"\n implementationNames.eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647:\n+ \"SystemConfig\"\n }\n```\n\n```diff\n contract DisputeGameFactory (0xe06278351d120288eDfCB963F934113Ca3C21AFe) {\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n sourceHashes.1:\n- \"0x7f307d6191215a72b6c24c01b3c2fc87c84f7fb346790132e58736caa2d1dd14\"\n+ \"0x85ca17941ef36ac6b28a4f8f89803d0d41ef419c47586dcd3acdb47ee9617285\"\n values.$implementation:\n- \"eth:0xc641A33cab81C559F2bd4b21EA34C290E2440C2B\"\n+ \"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0\"\n values.$pastUpgrades.1:\n+ [\"2025-07-23T17:04:59.000Z\",\"0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2\",[\"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.gameImpls.1:\n- \"eth:0x2d4B822F8B74AdE7fcD5F740967f4dFcD2fef5e4\"\n+ \"eth:0x667b7DA73DA7B2A75286378FF45637eEaE9B4793\"\n values.version:\n- \"1.0.0\"\n+ \"1.0.1\"\n implementationNames.eth:0xc641A33cab81C559F2bd4b21EA34C290E2440C2B:\n- \"DisputeGameFactory\"\n implementationNames.eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0:\n+ \"DisputeGameFactory\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract AnchorStateRegistry (0x1AaA08d577cbC3da3b955DC1B7a281D7b8fE3372)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract PreimageOracle (0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3)\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (0x667b7DA73DA7B2A75286378FF45637eEaE9B4793)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (0xF027F4A985560fb13324e943edf55ad6F1d15Dc1)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```"
}
]
},
{
"id": "f8d1fbbf",
"date": "Mon, 21 Jul 2025 10:08:59 GMT",
"timestamp": 1753092539,
"description": "MS two members added.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana yieldRecipient Mulsitig (0x67C912fF560951526BffDff66dFbD4DF8AE23756) {\n +++ description: None\n values.$members.0:\n+ \"eth:0x34d23C4fb6542B467cA8724bAD30AC811399b184\"\n values.$members.1:\n+ \"eth:0x09f5F2592791208219A1F51e3855Be9419fF6bE4\"\n values.multisigThreshold:\n- \"2 of 5 (40%)\"\n+ \"2 of 7 (29%)\"\n }\n```"
}
]
},
{
"id": "5f70de70",
"date": "Mon, 14 Jul 2025 12:45:14 GMT",
"timestamp": 1752497114,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 39,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract AggchainFEP (0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666)\n +++ description: The main system contract defining the katana Layer 2 logic. As this contract is based on the OP-Succinct L2OutputOracle, OP stack outputRoots (L2 state roots) are saved here.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x14Be6579A41342ca6B402ec85E7be538e6Ade951)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC721Bridge (0x15a32FCeA89617Ff450F094cDE102CCa46598B7F)\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract Yearn Strategist Multisig (0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal2 (0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E)\n +++ 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 fork of the standard contract **disables the depositTransaction() function**, which prevents 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```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x263b251D67BB154DD6b8352539466ACE7948ED56)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract vbWBTC (0x2C24B57e2CCd1f273045Af6A5f632504C432374F)\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\n```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (0x2d4B822F8B74AdE7fcD5F740967f4dFcD2fef5e4)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n+ Status: CREATED\n contract vbETH (0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF)\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\n```\n\n```diff\n+ Status: CREATED\n contract Katana vaultBridge Multisig 1 (0x2De242e27386e224E5fbF110EA8406d5B70740ec)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainConfig (0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811)\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x377a9e5df2882DC1DF8A0bD162cbc640eA634010)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract vbUSDS (0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855)\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\n```\n\n```diff\n+ Status: CREATED\n contract MigrationManager (0x417d01B64Ea30C4E163873f3a1f77b727c689e02)\n +++ description: Helper contract for the vaultBridge tokens on Layer 2. If any vbTokens are minted 'natively' on Layer 2, this contract can receive the underlying assets and lock them in the Layer 1 vaults.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x420693B32113a0e00Eb9f3315D5D5ec3b32C2d69)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Conduit Multisig 1 (0x4a4962275DF8C60a80d3a25faEc5AA7De116A746)\n +++ description: None\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 vbUSDC (0x53E82ABbb12638F09d9e624578ccB666217a765e)\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (0x5fE03a12C1236F9C22Cb6479778DDAa4bce6299C)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n+ Status: CREATED\n contract Katana yieldRecipient Mulsitig (0x67C912fF560951526BffDff66dFbD4DF8AE23756)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x6d0ff67fb427422AfF35EEa8596949B374b09a52)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract vbUSDT (0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC)\n +++ description: This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756.\n```\n\n```diff\n+ Status: CREATED\n contract DelayedWETH (0x74034597d29613CC8C0BDc8780e1d292A553Bd32)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract AnchorStateRegistry (0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract Katana Steakhouse Financial / Morpho Multisig (0x827e86072B06674a077f592A531dcE4590aDeCdB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8970650CF3f1E57cA804C65B4DBcFf698789FE30)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardBridge (0x98906C3f90A06B5484DD67bf32938815d2993dBC)\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract PreimageOracle (0x9c065e11870B891D214Bc2Da7EF1f9DDFA1BE277)\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract Polygon Labs Engineering/Security Multisig (0x9d851f8b8751c5FbC09b9E74E6e68E9950949052)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC20Factory (0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract Katana vaultBridge Multisig 2 (0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174)\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n```\n\n```diff\n+ Status: CREATED\n contract Polygon Multisig 2 (0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xD1e389c046FB734D2a0c7C390312210c408ba832)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DisputeGameFactory (0xe06278351d120288eDfCB963F934113Ca3C21AFe)\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65)\n +++ description: Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\n```\n\n```diff\n+ Status: CREATED\n contract Katana vaultBridge Multisig 3 (0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E)\n +++ description: None\n```"
}
]
},
{
"id": "b3e7b2fc",
"date": "Fri, 11 Jul 2025 12:28:54 GMT",
"timestamp": 1752236934,
"description": "2 member added, 1 member switch.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Foundation Engineering/Security Multisig (0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a) {\n +++ description: None\n values.$members.4:\n- \"0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37\"\n+ \"0xcAB31b6A7b4d2eCd562A09e2BfA46535a18862f9\"\n }\n```\n\n```diff\n contract Katana yieldRecipient Mulsitig (0x67C912fF560951526BffDff66dFbD4DF8AE23756) {\n +++ description: None\n values.$members.0:\n+ \"0x0A4857fD89ABfB7536a6D0Bd4400EF769E84Ec8b\"\n values.$members.1:\n+ \"0x54DFA4B635E7eB98515fEBA81d360A3871739277\"\n values.multisigThreshold:\n- \"2 of 3 (67%)\"\n+ \"2 of 5 (40%)\"\n }\n```"
}
]
},
{
"id": "9620535b",
"date": "Thu, 03 Jul 2025 09:54:26 GMT",
"timestamp": 1751536466,
"description": "add op stack gasconfig parameters.\n\nconfig: refine descriptions and permissions.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n+++ description: volatility param: lower denominator -> quicker fee changes on L2\n values.eip1559Denominator:\n- 0\n+ 250\n values.eip1559Elasticity:\n- 0\n+ 60\n }\n```"
}
]
},
{
"id": "0682952c",
"date": "Tue, 01 Jul 2025 16:11:11 GMT",
"timestamp": 1751386271,
"description": "Predeposits ended (limit 0), chain is live.\n\nadd the AggchainFEP core contract of Katana.\n\nmove TVS to L2 configs.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Pre-Deposit USDT Token (0x48c03B6FfD0008460F8657Db1037C7e09dEedfcb) {\n +++ description: None\n values.deposit_limit:\n- \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n+ 0\n values.deposit_limit_module:\n- \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DepositModule (0x793D85F585145c050487c7AfBF0e9B97143fF1CB)\n +++ description: None\n```\n\n```diff\n contract Katana Pre-Deposit USDC Token (0x7B5A0182E400b241b317e781a4e9dEdFc1429822) {\n +++ description: None\n values.deposit_limit:\n- \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n+ 0\n values.deposit_limit_module:\n- \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract Katana Pre-Deposit WBTC Token (0x92C82f5F771F6A44CfA09357DD0575B81BF5F728) {\n +++ description: None\n values.deposit_limit:\n- \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n+ 0\n values.deposit_limit_module:\n- \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n contract Katana Pre-Deposit WETH Token (0xcc6a16Be713f6a714f68b0E1f4914fD3db15fBeF) {\n +++ description: None\n values.deposit_limit:\n- \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n+ 0\n values.deposit_limit_module:\n- \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x67C912fF560951526BffDff66dFbD4DF8AE23756)\n +++ description: None\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract AggchainFEP (0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666)\n +++ description: The main system contract defining the katana Layer 2 logic. As this contract is based on the OP-Succinct L2OutputOracle, OP stack outputRoots (L2 state roots) are saved here.\n```"
}
]
},
{
"id": "41b0c8bb",
"date": "Mon, 30 Jun 2025 11:04:12 GMT",
"timestamp": 1751281452,
"description": "New owner / admin for the opstack contracts: tagged it katana multisig 2.\n\nmove project under review with activity, TVS.",
"isHighSeverity": false,
"changeCount": 20,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832) {\n +++ description: None\n values.owner:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract OptimismPortal2 (0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E) {\n +++ description: [PAUSED] The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame. This specific fork of the standard contract **disables the depositTransaction() function**, which prevents users from sending or forcing any transactions from L1 to L2, including token deposits.\n values.guardian:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract GenericVaultBridgeToken (0x2C24B57e2CCd1f273045Af6A5f632504C432374F) {\n +++ description: None\n values.accessControl.YIELD_COLLECTOR_ROLE.members.1:\n+ \"0xcB1e45481461aeF38E6B0a34F1444E9C5D647645\"\n }\n```\n\n```diff\n contract VbETH (0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF) {\n +++ description: None\n values.accessControl.YIELD_COLLECTOR_ROLE.members.1:\n+ \"0xcB1e45481461aeF38E6B0a34F1444E9C5D647645\"\n }\n```\n\n```diff\n contract SuperchainConfig (0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811) {\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n values.$pastUpgrades.1:\n+ [\"2025-06-30T10:33:47.000Z\",\"0x56f6765801bec01f9aa2a5c9750daada809b1f7a3f5343800c0b76c6308b4558\",[\"0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC\"]]\n values.$pastUpgrades.2:\n+ [\"2025-06-30T10:33:47.000Z\",\"0x56f6765801bec01f9aa2a5c9750daada809b1f7a3f5343800c0b76c6308b4558\",[\"0x838897A86Cb4F130D0eFC1203d7dA6D0db4bEd1A\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.guardian:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract GenericVaultBridgeToken (0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855) {\n +++ description: None\n values.accessControl.YIELD_COLLECTOR_ROLE.members.1:\n+ \"0xcB1e45481461aeF38E6B0a34F1444E9C5D647645\"\n }\n```\n\n```diff\n contract Conduit Multisig 1 (0x4a4962275DF8C60a80d3a25faEc5AA7De116A746) {\n +++ description: None\n receivedPermissions:\n- [{\"permission\":\"guard\",\"from\":\"ethereum:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811\",\"role\":\".guardian\"},{\"permission\":\"interact\",\"from\":\"ethereum:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\"},{\"permission\":\"interact\",\"from\":\"ethereum:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"description\":\"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\",\"role\":\".owner\"},{\"permission\":\"interact\",\"from\":\"ethereum:0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65\",\"description\":\"set and change address mappings.\",\"role\":\".owner\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x15a32FCeA89617Ff450F094cDE102CCa46598B7F\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x74034597d29613CC8C0BDc8780e1d292A553Bd32\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0x98906C3f90A06B5484DD67bf32938815d2993dBC\",\"description\":\"upgrading the bridge implementation can give access to all funds escrowed therein.\",\"role\":\".$admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]},{\"permission\":\"upgrade\",\"from\":\"ethereum:0xe06278351d120288eDfCB963F934113Ca3C21AFe\",\"role\":\"admin\",\"via\":[{\"address\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\"}]}]\n directlyReceivedPermissions:\n- [{\"permission\":\"act\",\"from\":\"ethereum:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832\",\"role\":\".owner\"},{\"permission\":\"act\",\"from\":\"ethereum:0x6d0ff67fb427422AfF35EEa8596949B374b09a52\",\"role\":\".owner\"}]\n }\n```\n\n```diff\n contract GenericVaultBridgeToken (0x53E82ABbb12638F09d9e624578ccB666217a765e) {\n +++ description: None\n values.accessControl.YIELD_COLLECTOR_ROLE.members.1:\n+ \"0xcB1e45481461aeF38E6B0a34F1444E9C5D647645\"\n }\n```\n\n```diff\n contract ProxyAdmin (0x6d0ff67fb427422AfF35EEa8596949B374b09a52) {\n +++ description: None\n values.owner:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract GenericVaultBridgeToken (0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC) {\n +++ description: None\n values.accessControl.YIELD_COLLECTOR_ROLE.members.1:\n+ \"0xcB1e45481461aeF38E6B0a34F1444E9C5D647645\"\n }\n```\n\n```diff\n contract DelayedWETH (0x74034597d29613CC8C0BDc8780e1d292A553Bd32) {\n +++ 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 values.owner:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract Polygon Multisig 2 (0x9d851f8b8751c5FbC09b9E74E6e68E9950949052) {\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```\n\n```diff\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.owner:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n contract DisputeGameFactory (0xe06278351d120288eDfCB963F934113Ca3C21AFe) {\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n values.owner:\n- \"0x4a4962275DF8C60a80d3a25faEc5AA7De116A746\"\n+ \"0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract Katana Multisig 2 (0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a)\n +++ description: None\n```"
}
]
},
{
"id": "042fcf4f",
"date": "Fri, 27 Jun 2025 10:25:59 GMT",
"timestamp": 1751019959,
"description": "found the opstack part of katana and some middleware between yearn, morpho and agglayer.\n\nkatana is using an OptiPortal2 that [denies all L1->L2 messages.](https://disco.l2beat.com/diff/eth:0x3Da872782f9fB696fD72Af2ec9313a56bDA6f06d/eth:0x9a6C2Dcc7e523f87716e17Ba36D10CCfFA0A60bb) It also does not have any state updates yet. The rest of the system is 'standard' opstack **with** custom gas token support (ETH is set atm, could only be changed with a major upgrade) and standard PermissionedDisputeGame without any games created. Notably this deployment also does not use the latest 7702 protections that the superchain does use.\n\nbehind its yearn vaults, katana seems to use a system of smart contracts written by polygon called vaultBridge. For each yielding asset, a vaultBridge contract (erc20 and vault standards) exists and a MigrationManager allows to migrate these derivative vbTokens to the lxly bridge (agglayer shared bridge), which has not happened yet. All user yields are currently accruing to three different Multisigs that have signers from Katana, Agglayer and Yearn (not sure abt morpho).",
"isHighSeverity": false,
"changeCount": 36,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ProxyAdmin (0x14Be6579A41342ca6B402ec85E7be538e6Ade951)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC721Bridge (0x15a32FCeA89617Ff450F094cDE102CCa46598B7F)\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract Yearn Strategist Multisig (0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0x2008A6Ba8CAF85AaFAe7880664Dfe681D533ac2E)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal2 (0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E)\n +++ description: [PAUSED] The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame. This specific fork of the standard contract **disables the depositTransaction() function**, which prevents users from sending or forcing any transactions from L1 to L2, including token deposits.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x263b251D67BB154DD6b8352539466ACE7948ED56)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GenericVaultBridgeToken (0x2C24B57e2CCd1f273045Af6A5f632504C432374F)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (0x2d4B822F8B74AdE7fcD5F740967f4dFcD2fef5e4)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n+ Status: CREATED\n contract VbETH (0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x2De242e27386e224E5fbF110EA8406d5B70740ec)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainConfig (0x2F439B95fa789C5d3a5C99cc70EB3ee83D08a811)\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x377a9e5df2882DC1DF8A0bD162cbc640eA634010)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GenericVaultBridgeToken (0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MigrationManager (0x417d01B64Ea30C4E163873f3a1f77b727c689e02)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x420693B32113a0e00Eb9f3315D5D5ec3b32C2d69)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Conduit Multisig 1 (0x4a4962275DF8C60a80d3a25faEc5AA7De116A746)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GenericVaultBridgeToken (0x53E82ABbb12638F09d9e624578ccB666217a765e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (0x5fE03a12C1236F9C22Cb6479778DDAa4bce6299C)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x6d0ff67fb427422AfF35EEa8596949B374b09a52)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GenericVaultBridgeToken (0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelayedWETH (0x74034597d29613CC8C0BDc8780e1d292A553Bd32)\n +++ 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```\n\n```diff\n+ Status: CREATED\n contract AnchorStateRegistry (0x79ecD8d8040496014bcD3bA16AdF3914b23f8Fd5)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0x827e86072B06674a077f592A531dcE4590aDeCdB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x8970650CF3f1E57cA804C65B4DBcFf698789FE30)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardBridge (0x98906C3f90A06B5484DD67bf32938815d2993dBC)\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract PreimageOracle (0x9c065e11870B891D214Bc2Da7EF1f9DDFA1BE277)\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract Polygon Multisig 2 (0x9d851f8b8751c5FbC09b9E74E6e68E9950949052)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC20Factory (0xA84C37cD0b9bA1B43276C11976DBE9d1344C7f4E)\n +++ 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 OptimismMintablERC20 as this chain's representation of a token on the host chain, or vice-versa.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SystemConfig (0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174)\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xD1e389c046FB734D2a0c7C390312210c408ba832)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DisputeGameFactory (0xe06278351d120288eDfCB963F934113Ca3C21AFe)\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0xEaB94275eD336D80d4F46EA8Ea0427e351f11D65)\n +++ description: Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\n```\n\n```diff\n+ Status: CREATED\n contract Katana Multisig (0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E)\n +++ description: None\n```"
}
]
},
{
"id": "19a3fae3",
"date": "Wed, 25 Jun 2025 07:57:08 GMT",
"timestamp": 1750838228,
"description": "deposit limit removed for a deposit module governed by yearn strategist MS.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Katana Pre-Deposit USDT Token (0x48c03B6FfD0008460F8657Db1037C7e09dEedfcb) {\n +++ description: None\n values.deposit_limit:\n- 250000000000000\n+ \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n values.deposit_limit_module:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n }\n```\n\n```diff\n contract Katana Pre-Deposit USDC Token (0x7B5A0182E400b241b317e781a4e9dEdFc1429822) {\n +++ description: None\n values.deposit_limit:\n- 300000000000000\n+ \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n values.deposit_limit_module:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n }\n```\n\n```diff\n contract Katana Pre-Deposit WBTC Token (0x92C82f5F771F6A44CfA09357DD0575B81BF5F728) {\n +++ description: None\n values.deposit_limit:\n- 250000000000\n+ \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n values.deposit_limit_module:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n }\n```\n\n```diff\n contract Katana Pre-Deposit WETH Token (0xcc6a16Be713f6a714f68b0E1f4914fD3db15fBeF) {\n +++ description: None\n values.deposit_limit:\n- \"140000000000000000000000\"\n+ \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n values.deposit_limit_module:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x793D85F585145c050487c7AfBF0e9B97143fF1CB\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract DepositModule (0x793D85F585145c050487c7AfBF0e9B97143fF1CB)\n +++ description: None\n```"
}
]
},
{
"id": "b83c8243",
"date": "Thu, 05 Jun 2025 12:10:05 GMT",
"timestamp": 1749125405,
"description": "initial katana predeposit disco.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract Accountant (0x40a87104AEb279C061Af6b7C48F7E08c4A6e388D)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Katana Pre-Deposit USDT Token (0x48c03B6FfD0008460F8657Db1037C7e09dEedfcb)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Katana Pre-Deposit USDC Token (0x7B5A0182E400b241b317e781a4e9dEdFc1429822)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ShareReceiver (0x836304B832687f3811a0dF935934C724B40578eB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Katana Pre-Deposit WBTC Token (0x92C82f5F771F6A44CfA09357DD0575B81BF5F728)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DepositRelayer (0xB01dADEC98308528ee57A17b24A473213c1704bb)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Katana Pre-Deposit WETH Token (0xcc6a16Be713f6a714f68b0E1f4914fD3db15fBeF)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AllowanceModule (0xCFbFaC74C26F8647cBDb8c5caf80BB5b32E43134)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC20Router (0xeeeeee9eC4769A09a76A83C7bC42b185872860eE)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52)\n +++ description: None\n```"
}
]
}
]
+1 -31
+0 -30
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x3971EB866AA9b2b8aFEa8a7C816F3b7e8b195a35",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x2af8a383C395EBa6551E674EeD02344936fE36f5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880903,
"transactionHash": "0x3dcaff162fff51f2f6ba6264967bb5a3e6e9aefeb290b159109038ae38455e10",
"implementations": [
"eth:0x2af8a383C395EBa6551E674EeD02344936fE36f5"
]
}
],
"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 SecurityCouncilTokenOwners\n * **batcherHash**: EOA 1\n * **owner**: Timelock; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3971EB866AA9b2b8aFEa8a7C816F3b7e8b195a35#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x46B8bB4C5dd27bB42807Db477af4d1a7C8A5B746",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x675924D68200F2C967Ba12349d5d510676C7214c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880687,
"transactionHash": "0xc077167cfc27b631ad397c64fd72bcaf2c8fcc7c9f08498eb247abc0094354a5",
"implementations": [
"eth:0x675924D68200F2C967Ba12349d5d510676C7214c"
]
}
],
"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 SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x46B8bB4C5dd27bB42807Db477af4d1a7C8A5B746#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0x46d07221dfC313afe1BF104F4bB1f185301D65B9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0xbB1cDB5Cc35B1c9801DA8772aCBcDbd323A912D9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693288091,
"transactionHash": "0xb5f090dda7636b95e017de8e0619fc4d6f706b7b4a2a9bbd07996bd85ef70bad",
"implementations": [
"eth:0x0257e4d92C00C9EfcCa1d641b224d7d09cfa4522"
]
},
{
"timestamp": 1693880735,
"transactionHash": "0x2aaca06bcfebdfe7511fe20033c1af5dd9c4cae053340995621ce10da29392ec",
"implementations": [
"eth:0xbB1cDB5Cc35B1c9801DA8772aCBcDbd323A912D9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x46d07221dfC313afe1BF104F4bB1f185301D65B9#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x827962404D7104202C5aaa6b929115C8211d9596",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x404133EdF24F56b7dD9c6d89Fb56bb35244461B4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880711,
"transactionHash": "0xe67e8f042d304b70f1fd718343378219e0be9c49ed4a8242f8f96ea9ced2c0fd",
"implementations": [
"eth:0x404133EdF24F56b7dD9c6d89Fb56bb35244461B4"
]
}
],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x827962404D7104202C5aaa6b929115C8211d9596#code"
},
{
"name": "ZKProofVerifier",
"isVerified": true,
"address": "eth:0x005DDC466C804c79adB079c120347dDE48132105",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x9f2Ec7196596581806218D3D183581b00e5a444E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739162903,
"transactionHash": "0x78625237350cb2047aa1ec6392d2402dabf1a5d44d54e0142ae27d19546c8c74",
"implementations": [
"eth:0x9f2Ec7196596581806218D3D183581b00e5a444E"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x005DDC466C804c79adB079c120347dDE48132105#code"
},
{
"name": "L2OutputOracle",
"isVerified": true,
"address": "eth:0x180c77aE51a9c505a43A2C7D81f8CE70cacb93A6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x4B68F22d96a04F6d80e284C20A648f8Da2fD569b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880807,
"transactionHash": "0xf1ce5facb5ac6b858552c8af4867797e1c69ad89629f1c836b7f489770683783",
"implementations": [
"eth:0x14126FFa3889a026A79F0f99FaE80B3dc9E38095"
]
},
{
"timestamp": 1729744127,
"transactionHash": "0xb2a500d332d7b3348b8ffa91aba9b8a5a3bc018b44225a1b6e99605c56c6564e",
"implementations": [
"eth:0x4B68F22d96a04F6d80e284C20A648f8Da2fD569b"
]
}
],
"description": "The L2OutputOracle contract contains a list of proposed state roots which Proposers assert to be a result of block execution. Anyone can participate as a Proposer by depositing in the ValidatorPool. A root can be proposed every 1800 blocks (2s block time).\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x180c77aE51a9c505a43A2C7D81f8CE70cacb93A6#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0x22605A12cB77Fe420B0cC1263cEb58a77352FDc1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0xe44da6e9fA92E3FD897Da84d38fa6B9322Dd22c3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693881035,
"transactionHash": "0xc92251d7f8a454b533f0e272ba324cb7572ca4142aabf17cd29821e1d8ebfe1b",
"implementations": [
"eth:0x595E1b330892Fcbf18b2BF099DE501Ad4d6A07C4"
]
},
{
"timestamp": 1700638271,
"transactionHash": "0xf4e23f51e23f9549e6bed354f5330524c65d5796b765bd38fdacdb6758e7f8ff",
"implementations": [
"eth:0xe44da6e9fA92E3FD897Da84d38fa6B9322Dd22c3"
]
}
],
"description": "A standard timelock with access control. The current minimum delay is 0s.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners\n * **canceller**: UpgradeGovernor; ultimately SecurityCouncilTokenOwners\n * **executor**: UpgradeGovernor; ultimately SecurityCouncilTokenOwners\n * **proposer**: UpgradeGovernor; ultimately SecurityCouncilTokenOwners\n * **timelockAdmin**: Timelock, UpgradeGovernor; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x22605A12cB77Fe420B0cC1263cEb58a77352FDc1#code"
},
{
"name": "ValidatorManager",
"isVerified": true,
"address": "eth:0x232277d9672eEdd53c4B26C0F386C2Eb88DC7363",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x8687b9ecD75ea00997a999B9DdE54C735DE9DEE1"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729744127,
"transactionHash": "0xb2a500d332d7b3348b8ffa91aba9b8a5a3bc018b44225a1b6e99605c56c6564e",
"implementations": [
"eth:0x0Ed7bb332F7307F5c97E566E74A4A73ab6671082"
]
},
{
"timestamp": 1739162903,
"transactionHash": "0x78625237350cb2047aa1ec6392d2402dabf1a5d44d54e0142ae27d19546c8c74",
"implementations": [
"eth:0x8687b9ecD75ea00997a999B9DdE54C735DE9DEE1"
]
}
],
"description": "Manages the set of Proposers (Validators in Kroma) and selects the next proposer with the window to submit the output root within 30m, after which anyone can propose for them. It is also the entry point for other contracts, such as the L2OutputOracle and the Colosseum, which distribute output rewards and slash challenge losers. It makes successive calls to the AssetManager to apply changes to the proposers' assets.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x232277d9672eEdd53c4B26C0F386C2Eb88DC7363#code"
},
{
"name": "KromaPortal",
"isVerified": true,
"address": "eth:0x31F648572b67e60Ec6eb8E197E1848CC5F5558de",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x5C8eE8323a33ebBF3ea3c6c3b84DACFca44A9316"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880879,
"transactionHash": "0x3166f6173eb630e96f74c5c9d6765cd93e39566dc592a423fddae11eb09f8d17",
"implementations": [
"eth:0x381F53695230BAF83a39D1a08304D233A35730Fa"
]
},
{
"timestamp": 1739162903,
"transactionHash": "0x78625237350cb2047aa1ec6392d2402dabf1a5d44d54e0142ae27d19546c8c74",
"implementations": [
"eth:0x5C8eE8323a33ebBF3ea3c6c3b84DACFca44A9316"
]
}
],
"description": "This is a fork of the standard OP stack OptimismPortal contract, the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners\n * **guardian**: KromaSecurityCouncil",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x31F648572b67e60Ec6eb8E197E1848CC5F5558de#code"
},
{
"name": "ZKMerkleTrie",
"isVerified": true,
"address": "eth:0x339208824010425cBE73201ceD4372308ACD610B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Merkle Trie contract used to prove withdrawals that were initiated in the legacy system, deprecated for new withdrawals and succeeded by a merkle tree library in the KromaPortal.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x339208824010425cBE73201ceD4372308ACD610B#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x665c23A5722B6A237fa6Be2B49c0A94504db1edd#code"
},
{
"name": "ZkVerifier",
"isVerified": true,
"address": "eth:0x6deb6a630D7b486c1C08d4016AEe3835a2F52Fa7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x4cd05aB629055a449617a28E3466660403eA7126"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693288163,
"transactionHash": "0x6ab34004b7846a1d1406bc53825ee386d905f8499c72ab9bfe07f4721d773ae9",
"implementations": [
"eth:0xD3b1D396330EA8dd79615f12433B856160d7D8B4"
]
},
{
"timestamp": 1693539719,
"transactionHash": "0x66fecb7dffc867d91d6f840e65fc28f81ad1301204cfca38b3bbb22146ffa361",
"implementations": [
"eth:0x7E79726560B140fd6e089547bD049509F5423BFf"
]
},
{
"timestamp": 1718950391,
"transactionHash": "0xe56ba658fc810d727438e3bb124aa2e8ef1c25e5c21cbfe9715983ba5ce65a63",
"implementations": [
"eth:0x4cd05aB629055a449617a28E3466660403eA7126"
]
}
],
"description": "ZK verifier used to verify the last step of a legacy zkEVM proof, which corresponds to a block.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6deb6a630D7b486c1C08d4016AEe3835a2F52Fa7#code"
},
{
"name": "Colosseum",
"isVerified": true,
"address": "eth:0x713C2BEd44eB45D490afB8D4d1aA6F12290B829a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0xBFcA810D1c26a3aC6F81a32Ab5C023F24bE93dAC"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880831,
"transactionHash": "0x70494d42df3a5668be6ac9bd1a46cdcfebe8980cae31dddcb7ec86c97200d60f",
"implementations": [
"eth:0x7526F997ea040B3949415c3a44e708273863AA2b"
]
},
{
"timestamp": 1712304899,
"transactionHash": "0xd420f3a8af8254ca1095409b3c4c2a3a1faa26fbe50c0477663e1bcb39727dfc",
"implementations": [
"eth:0x311b4A33b6dC4e080eE0d98caAaf8dF86C833066"
]
},
{
"timestamp": 1714032551,
"transactionHash": "0x0fb2eca6483b1d042af562bf0e8e804c1356df56d7b8094e9d6edd4b63edf715",
"implementations": [
"eth:0xb87eaB624EE684C1799f1E8b24936A1c90759eEc"
]
},
{
"timestamp": 1729744127,
"transactionHash": "0xb2a500d332d7b3348b8ffa91aba9b8a5a3bc018b44225a1b6e99605c56c6564e",
"implementations": [
"eth:0xAB54b3e775f645cf4486039bfA4dA539E70c9f99"
]
},
{
"timestamp": 1739162903,
"transactionHash": "0x78625237350cb2047aa1ec6392d2402dabf1a5d44d54e0142ae27d19546c8c74",
"implementations": [
"eth:0xBFcA810D1c26a3aC6F81a32Ab5C023F24bE93dAC"
]
}
],
"description": "Contract used to challenge state roots and prove fraud. If successful, the wrong state root in the L2OutputOracle is replaced.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners\n * **security_council**: KromaSecurityCouncil",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x713C2BEd44eB45D490afB8D4d1aA6F12290B829a#code"
},
{
"name": "USDCBridge",
"isVerified": true,
"address": "eth:0x7e1Bdb9ee75B6ef1BCAAE3B1De1c616C7B11ef6e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x22605A12cB77Fe420B0cC1263cEb58a77352FDc1"
],
"implementations": [
"eth:0xE4e9F3AD8A6F224c4b39854D3550AD258441AfE3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700122631,
"transactionHash": "0x04a7ec0dad1a7a0ebf4cb2bd1f983b19d43e57972e91c4e73aabf2bff3530014",
"implementations": [
"eth:0xE4e9F3AD8A6F224c4b39854D3550AD258441AfE3"
]
}
],
"description": "* Roles:\n * **admin**: Timelock; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7e1Bdb9ee75B6ef1BCAAE3B1De1c616C7B11ef6e#code"
},
{
"name": "AssetManager",
"isVerified": true,
"address": "eth:0xa295310DE52b86F236A815AFb2f518F3C0F5A6D3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0xf34fa8D3ac4AAcAD8307da8C8E51bDddCDa60Ede"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729744127,
"transactionHash": "0xb2a500d332d7b3348b8ffa91aba9b8a5a3bc018b44225a1b6e99605c56c6564e",
"implementations": [
"eth:0xf34fa8D3ac4AAcAD8307da8C8E51bDddCDa60Ede"
]
}
],
"description": "Manages the delegation and undelegation of KRO tokens and Kroma Guardian House (KGH) NFTs for Proposers (Kroma Validators) and distributes rewards.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa295310DE52b86F236A815AFb2f518F3C0F5A6D3#code"
},
{
"name": "UpgradeGovernor",
"isVerified": true,
"address": "eth:0xb3c415c2Aad428D5570208e1772cb68e7D06a537",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x64F8F4EB207D51F74caf6db644Bf710Ad86989b3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693881059,
"transactionHash": "0x1474ff104cbd078775403ee9b33a18394d045e5e00e03e94586e73a3596cbde0",
"implementations": [
"eth:0x2a51e099CC7AF922CcDe7F3db909DC7b71B8D030"
]
},
{
"timestamp": 1700638271,
"transactionHash": "0xf4e23f51e23f9549e6bed354f5330524c65d5796b765bd38fdacdb6758e7f8ff",
"implementations": [
"eth:0x64F8F4EB207D51F74caf6db644Bf710Ad86989b3"
]
}
],
"description": "A governance proxy contract using token voting with SecurityCouncilTokenOwners as identification of actors allowed to vote/sign a proposal which is passed to the Timelock afterwards.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners\n * **token**: SecurityCouncilTokenOwners",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb3c415c2Aad428D5570208e1772cb68e7D06a537#code"
},
{
"name": "ValidatorPool",
"isVerified": true,
"address": "eth:0xFdFF462845953D90719A78Fd12a2d103541d2103",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0xE36776FFA20a9206dcD742C981402a3f3d81938d"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880783,
"transactionHash": "0x31c5282eb4cc1bcf3b3a3fbbbb0116c0ee335b4ccabd497f02b2761b0bc65dbd",
"implementations": [
"eth:0x6e1781678ffE6CDc109fd3bC0833c47BD0F23de1"
]
},
{
"timestamp": 1700638271,
"transactionHash": "0xf4e23f51e23f9549e6bed354f5330524c65d5796b765bd38fdacdb6758e7f8ff",
"implementations": [
"eth:0x3eb033BAc5c449bDcb6D082c4f728eDAfC8D75fa"
]
},
{
"timestamp": 1712304899,
"transactionHash": "0xd420f3a8af8254ca1095409b3c4c2a3a1faa26fbe50c0477663e1bcb39727dfc",
"implementations": [
"eth:0x8EDc4cCa2aF96f5D5141d55333043a65c3f59Ec4"
]
},
{
"timestamp": 1729744127,
"transactionHash": "0xb2a500d332d7b3348b8ffa91aba9b8a5a3bc018b44225a1b6e99605c56c6564e",
"implementations": [
"eth:0xE36776FFA20a9206dcD742C981402a3f3d81938d"
]
}
],
"description": "Contract used to manage the Proposers. Anyone can submit a deposit and bond to a state root, or create a challenge. It also manages the Proposer rotation for each submittable block using a random selection. If the selected proposer fails to publish a root within 30m then the submission becomes open to everyone.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SecurityCouncilTokenOwners\n * **security_council**: KromaSecurityCouncil",
"upgradableBy": [
{
"name": "SecurityCouncilTokenOwners",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFdFF462845953D90719A78Fd12a2d103541d2103#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x31F648572b67e60Ec6eb8E197E1848CC5F5558de",
"sinceTimestamp": 1693880555,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x31F648572b67e60Ec6eb8E197E1848CC5F5558de",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x5C8eE8323a33ebBF3ea3c6c3b84DACFca44A9316"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880879,
"transactionHash": "0x3166f6173eb630e96f74c5c9d6765cd93e39566dc592a423fddae11eb09f8d17",
"implementations": [
"eth:0x381F53695230BAF83a39D1a08304D233A35730Fa"
]
},
{
"timestamp": 1739162903,
"transactionHash": "0x78625237350cb2047aa1ec6392d2402dabf1a5d44d54e0142ae27d19546c8c74",
"implementations": [
"eth:0x5C8eE8323a33ebBF3ea3c6c3b84DACFca44A9316"
]
}
],
"description": "Main entry point for users depositing ETH.",
"url": "https://etherscan.io/address/0x31F648572b67e60Ec6eb8E197E1848CC5F5558de#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x827962404D7104202C5aaa6b929115C8211d9596",
"sinceTimestamp": 1693880555,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x827962404D7104202C5aaa6b929115C8211d9596",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x665c23A5722B6A237fa6Be2B49c0A94504db1edd"
],
"implementations": [
"eth:0x404133EdF24F56b7dD9c6d89Fb56bb35244461B4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1693880711,
"transactionHash": "0xe67e8f042d304b70f1fd718343378219e0be9c49ed4a8242f8f96ea9ced2c0fd",
"implementations": [
"eth:0x404133EdF24F56b7dD9c6d89Fb56bb35244461B4"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens that do not require custom gateway.",
"url": "https://etherscan.io/address/0x827962404D7104202C5aaa6b929115C8211d9596#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x7e1Bdb9ee75B6ef1BCAAE3B1De1c616C7B11ef6e",
"sinceTimestamp": 1700122827,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0x7e1Bdb9ee75B6ef1BCAAE3B1De1c616C7B11ef6e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x22605A12cB77Fe420B0cC1263cEb58a77352FDc1"
],
"implementations": [
"eth:0xE4e9F3AD8A6F224c4b39854D3550AD258441AfE3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700122631,
"transactionHash": "0x04a7ec0dad1a7a0ebf4cb2bd1f983b19d43e57972e91c4e73aabf2bff3530014",
"implementations": [
"eth:0xE4e9F3AD8A6F224c4b39854D3550AD258441AfE3"
]
}
],
"description": "Main entry point for users depositing USDC.",
"url": "https://etherscan.io/address/0x7e1Bdb9ee75B6ef1BCAAE3B1De1c616C7B11ef6e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
]
}
+1 -1
{
"baseTimestamp": 1783679422,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+16 -2
+2 -2
{
"contracts": {
"addresses": {
"ethereum": [
{
"name": "EndpointV2",
"isVerified": true,
"address": "eth:0x1a44076050125825900e736c501f859c50fE728c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Part of the LayerZero messaging protocol. OApp owners or their delegates can configure custom verification- (message libraries) and execution settings here.\n* Roles:\n * **owner**: LayerZero Multisig\n * **rsETHAdapterDelegate**: GnosisSafe",
"discoveryDrivenData": true
},
{
"name": "ReceiveUln302",
"isVerified": true,
"address": "eth:0xc02Ab410f0734EFa3F14628780e6e695156024C2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "LayerZero-deployed receive library, defining the validation of received messages.\n* Roles:\n * **getUlnConfig**: Canary DVN, Horizen DVN, LayerZero DVN, Netherming DVN\n * **owner**: LayerZero Multisig",
"discoveryDrivenData": true
},
{
"name": "RsETHOFTAdapter",
"isVerified": true,
"address": "eth:0x85d456B2DfF1fd8245387C0BfB64Dfb700e98Ef3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "An OApp in the LayerZero protocol that adapts an existing ERC20 token into the OFT standard. Its owner can configure peers and LayerZero security settings for connected routes.\n* Roles:\n * **owner**: GnosisSafe",
"discoveryDrivenData": true
},
{
"name": "BlockedMessageLib",
"isVerified": true,
"address": "eth:0x1ccBf0db9C192d969de57E25B3fF09A25bb1D862",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple LayerZero library that blocks all messages if selected.\n",
"discoveryDrivenData": true
},
{
"name": "ReadLib1002",
"isVerified": true,
"address": "eth:0x74F55Bc2a79A27A0bF1D1A35dB5d0Fc36b9FDB9D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "LayerZero library used to read state from remote blockchains.\n* Roles:\n * **owner**: LayerZero Multisig",
"discoveryDrivenData": true
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xa36797bA947b378AefE5f726Cd87766CD3c25Ee3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 1",
"discoveryDrivenData": true
},
{
"name": "SendUln302",
"isVerified": true,
"address": "eth:0xbB2Ea70C9E858123480642Cf96acbcCE1372dCe1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Send Library used by LayerZero, defining the protocol/execution of sent messages.\n* Roles:\n * **getExecutorConfig**: Executor\n * **getUlnConfig**: Canary DVN, Horizen DVN, LayerZero DVN, Netherming DVN\n * **owner**: LayerZero 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": "LayerZero OFT (omnichain fungible token) is a multichain token framework built on the modular, highly customizable LayerZero messaging protocol. While it theoretically supports any form of validation, ~100% of messages are validated by multisig-like smart contracts called DVNs (\"Decentralized\" Validator Networks). The protocol supports a vast set of EVM and non-EVM destinations.",
"detailedDescription": "# Architecture\nLayerZero deploys a single `Endpoint` contract on each supported chain. This contract serves as the chain-central registry for omnichain apps (*OApp*s) and their *owners* and *delegates*. An *Oapp* is a smart contract that interacts with the LayerZero protocol through a standardized messaging interface. The most popular OApp flavor is the omnichain fungible token (*OFT*) standard, which enables the transport of tokens across LayerZero-supported chains. Token owners can deploy *OFT Adapter* smart contracts (*OApps* themselves) that connect traditional tokens to the LayerZero protocol. New tokens can be directly bound to LayerZero by deploying them as a native *OFT* smart contract, which is automatically an OApp on LayerZero.\n\n\n# Crosschain oracle and validation\nThe modular LayerZero messaging protocol supports any smart contract logic as its validation mechanism. In practice and by default, multisignature wallets and EOAs validate and deliver crosschain messages, called *packets* in LZ terms. *OApp owner* addresses or their onchain *delegates* can override the default security config for their OApp in each local `Endpoint` contract. Each library or setting that is not explicitly configured falls back to the default config. Security configs consist of a validation library (smart contract) and its various settings (like the actual validating multisigs and their threshold) and importantly can be set **on each chain separately** and then **for each *peer* chain from/to that chain**. For example, a single OFT that is live on 20 chains can have 20x20=400 security configs, counting incoming configs only. A misconfiguration or exploit in any single one of those 400 validation configs can compromise the example OFT.\n\n# Upgradeability\nCore protocol contract code forms a framework that points at security-critical contracts. Although the core framework contract code is immutable, the security config and its implementation contracts can be changed by permissioned actors like the LayerZero team and the *OApp* owners, which effectively results in system upgrades. Application-level contracts like OApps have custom upgradeability.\n\n# Monitoring\nLayerZero provides a [block explorer](https://layerzeroscan.com/) which is mostly intended for users and researchers tracking crosschain transactions and for aggregate metrics. There currently is no security or monitoring related tooling for OApp owners like global OFT accounting or global security config tracking.",
"isAggregate": true,
"permissions": {
"ethereum": {
"roles": [],
"actors": [
{
"id": "LayerZero Multisig",
"name": "LayerZero Multisig",
"description": "A Multisig with 5/7 threshold. \nCustom multisignature contract allowing offchain signing and execution on multiple target chains.\n* Can interact with EndpointV2\n * configure the default send/receive libraries used for verification, affecting all OApps that have not set up a custom security config \n* Can interact with ReadLib1002\n * configure the settings of this library, affecting all OApps that have not set up a custom security config \n* Can interact with SendUln302\n * configure the settings of this library, affecting all OApps that have not set up a custom security config \n* Can interact with ReceiveUln302\n * configure the settings of this library, affecting all OApps that have not set up a custom security config ",
"accounts": [
{
"address": "eth:0xBe010A7e3686FdF65E93344ab664D065A0B02478",
"type": "Contract",
"isVerified": true,
"name": "0xBe01…2478",
"url": "https://etherscan.io/address/0xBe010A7e3686FdF65E93344ab664D065A0B02478"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0cb72C1F6a36c225A7E2B21712E8853A4A1acc47",
"type": "EOA",
"isVerified": true,
"name": "0x0cb7…cc47",
"url": "https://etherscan.io/address/0x0cb72C1F6a36c225A7E2B21712E8853A4A1acc47"
},
{
"address": "eth:0x5bC6AA6ad117A8B50ABf9E1658971f5DA1968c5c",
"type": "EOA",
"isVerified": true,
"name": "0x5bC6…8c5c",
"url": "https://etherscan.io/address/0x5bC6AA6ad117A8B50ABf9E1658971f5DA1968c5c"
},
{
"address": "eth:0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e",
"type": "EOA",
"isVerified": true,
"name": "0x73E9…0e1e",
"url": "https://etherscan.io/address/0x73E9c017Ad37e2113e709D8070Cc9E1b28180e1e"
},
{
"address": "eth:0x771dcAcB96024d1e55Fd21Fe8a8187AA7EC9e77e",
"type": "EOA",
"isVerified": true,
"name": "0x771d…e77e",
"url": "https://etherscan.io/address/0x771dcAcB96024d1e55Fd21Fe8a8187AA7EC9e77e"
},
{
"address": "eth:0xe67DB04d7eFF4e9ec282eD929632D4FF058112d7",
"type": "EOA",
"isVerified": true,
"name": "0xe67D…12d7",
"url": "https://etherscan.io/address/0xe67DB04d7eFF4e9ec282eD929632D4FF058112d7"
},
{
"address": "eth:0xdFE4027209C795B84d39FfBfF86bf73572571BAd",
"type": "EOA",
"isVerified": true,
"name": "0xdFE4…1BAd",
"url": "https://etherscan.io/address/0xdFE4027209C795B84d39FfBfF86bf73572571BAd"
},
{
"address": "eth:0x2be094F1C9AaF76aD3A789EA4f047BBE7D1DB552",
"type": "EOA",
"isVerified": true,
"name": "0x2be0…B552",
"url": "https://etherscan.io/address/0x2be094F1C9AaF76aD3A789EA4f047BBE7D1DB552"
}
],
"discoveryDrivenData": true
},
{
"id": "GnosisSafe",
"name": "GnosisSafe",
"description": "A Multisig with 3/6 threshold. \n* Can interact with EndpointV2\n * manage all settings of the LZ crosschain security stack for the respective OApp: change libraries, DVN configs etc \n* Can interact with RsETHOFTAdapter\n * can configure the OFT adapter, including LayerZero peer and delegate settings ",
"accounts": [
{
"address": "eth:0xCbcdd778AA25476F203814214dD3E9b9c46829A1",
"type": "Contract",
"isVerified": true,
"name": "0xCbcd…29A1",
"url": "https://etherscan.io/address/0xCbcdd778AA25476F203814214dD3E9b9c46829A1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFCc1C98F887C93C38Deb5e38A6Fb820AD3fB9DFD",
"type": "EOA",
"isVerified": true,
"name": "0xFCc1…9DFD",
"url": "https://etherscan.io/address/0xFCc1C98F887C93C38Deb5e38A6Fb820AD3fB9DFD"
},
{
"address": "eth:0x51C59785639CCa31c09D0833749e76A5D945C9F3",
"type": "EOA",
"isVerified": true,
"name": "0x51C5…C9F3",
"url": "https://etherscan.io/address/0x51C59785639CCa31c09D0833749e76A5D945C9F3"
},
{
"address": "eth:0x601767c4ba4134cc2E906ea7cf25EaB845152A7C",
"type": "EOA",
"isVerified": true,
"name": "0x6017…2A7C",
"url": "https://etherscan.io/address/0x601767c4ba4134cc2E906ea7cf25EaB845152A7C"
},
{
"address": "eth:0xb859DD2Cb50F19a53Ad25b279750ba5DEC76D306",
"type": "EOA",
"isVerified": true,
"name": "0xb859…D306",
"url": "https://etherscan.io/address/0xb859DD2Cb50F19a53Ad25b279750ba5DEC76D306"
},
{
"address": "eth:0x7AAd74b7f0d60D5867B59dbD377a71783425af47",
"type": "EOA",
"isVerified": true,
"name": "0x7AAd…af47",
"url": "https://etherscan.io/address/0x7AAd74b7f0d60D5867B59dbD377a71783425af47"
},
{
"address": "eth:0xa85B57bD7433dCC4679d638b87d80F155A689Fc1",
"type": "EOA",
"isVerified": true,
"name": "0xa85B…9Fc1",
"url": "https://etherscan.io/address/0xa85B57bD7433dCC4679d638b87d80F155A689Fc1"
}
],
"discoveryDrivenData": true
},
{
"id": "Horizen DVN",
"name": "Horizen DVN",
"accounts": [
{
"address": "eth:0x380275805876Ff19055EA900CDb2B46a94ecF20D",
"type": "Contract",
"isVerified": true,
"name": "0x3802…F20D",
"url": "https://etherscan.io/address/0x380275805876Ff19055EA900CDb2B46a94ecF20D"
}
],
"chain": "ethereum",
"description": "Defines the logic that validates LayerZero Packets for this DVN.\n* Can interact with SendUln302\n * receive validation fees for rsETH OFT messages sent to Unichain through LayerZero (the incoming vaidating DVN is defined on Unichain) \n* Can interact with ReceiveUln302\n * verify rsETH OFT messages sent from Unichain through LayerZero ",
"discoveryDrivenData": true
},
{
"id": "LayerZero DVN",
"name": "LayerZero DVN",
"accounts": [
{
"address": "eth:0x589dEDbD617e0CBcB916A9223F4d1300c294236b",
"type": "Contract",
"isVerified": true,
"name": "0x589d…236b",
"url": "https://etherscan.io/address/0x589dEDbD617e0CBcB916A9223F4d1300c294236b"
}
],
"chain": "ethereum",
"description": "Defines the logic that validates LayerZero Packets for this DVN.\n* Can interact with SendUln302\n * receive validation fees for rsETH OFT messages sent to Unichain through LayerZero (the incoming vaidating DVN is defined on Unichain) \n* Can interact with ReceiveUln302\n * verify rsETH OFT messages sent from Unichain through LayerZero ",
"discoveryDrivenData": true
},
{
"id": "Canary DVN",
"name": "Canary DVN",
"accounts": [
{
"address": "eth:0xa4fE5A5B9A846458a70Cd0748228aED3bF65c2cd",
"type": "Contract",
"isVerified": true,
"name": "0xa4fE…c2cd",
"url": "https://etherscan.io/address/0xa4fE5A5B9A846458a70Cd0748228aED3bF65c2cd"
}
],
"chain": "ethereum",
"description": "Defines the logic that validates LayerZero Packets for this DVN.\n* Can interact with SendUln302\n * receive validation fees for rsETH OFT messages sent to Unichain through LayerZero (the incoming vaidating DVN is defined on Unichain) \n* Can interact with ReceiveUln302\n * verify rsETH OFT messages sent from Unichain through LayerZero ",
"discoveryDrivenData": true
},
{
"id": "Netherming DVN",
"name": "Netherming DVN",
"accounts": [
{
"address": "eth:0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5",
"type": "Contract",
"isVerified": true,
"name": "0xa59B…0BA5",
"url": "https://etherscan.io/address/0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5"
}
],
"chain": "ethereum",
"description": "Defines the logic that validates LayerZero Packets for this DVN.\n* Can interact with SendUln302\n * receive validation fees for rsETH OFT messages sent to Unichain through LayerZero (the incoming vaidating DVN is defined on Unichain) \n* Can interact with ReceiveUln302\n * verify rsETH OFT messages sent from Unichain through LayerZero ",
"discoveryDrivenData": true
},
{
"id": "Executor",
"name": "Executor",
"accounts": [
{
"address": "eth:0x173272739Bd7Aa6e4e214714048a9fE699453059",
"type": "Contract",
"isVerified": true,
"isVerified": false,
"name": "0x1732…3059",
"url": "https://etherscan.io/address/0x173272739Bd7Aa6e4e214714048a9fE699453059"
}
],
"chain": "ethereum",
"description": "Contract that can be used to execute LayerZero message payloads at the destination. Also manages fee logic, gas drop and permissioned addresses who can call this contract.\n* Can interact with SendUln302\n * receive execution fees for rsETH OFT messages sent to Unichain through LayerZero ",
"description": "Upgradeable contract referenced as an executor by LayerZero message libraries. Its current implementation is unverified, so execution and fee handling cannot be checked against source.\n* Can interact with SendUln302\n * receive execution fees for rsETH OFT messages sent to Unichain through LayerZero ",
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x76F6d257CEB5736CbcAAb5c48E4225a45F74d6e5",
"type": "EOA",
"isVerified": true,
"name": "0x76F6…d6e5",
"url": "https://etherscan.io/address/0x76F6d257CEB5736CbcAAb5c48E4225a45F74d6e5",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * Executor [via: ProxyAdmin]",
"discoveryDrivenData": true
}
]
}
},
"plugins": [
{
"plugin": "layerzero-v2-ofts",
"bridgeType": "burnAndMint"
},
{
"plugin": "layerzero-v2-ofts",
"bridgeType": "lockAndMint"
},
{
"plugin": "layerzero-v2-ofts",
"bridgeType": "nonMinting"
}
],
"type": "multichain"
}
+14 -0
[
{
"id": "88a5944c",
"date": "Mon, 12 Oct 2026 08:03:19 GMT",
"timestamp": 1791789568,
"description": "The Ethereum executor upgraded to an unverified implementation.\n\n[Executor diff](https://disco.l2beat.com/diff/eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805/eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0).",
"isHighSeverity": true,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Executor (eth:0x173272739Bd7Aa6e4e214714048a9fE699453059) [N/A] {\n +++ description: Upgradeable contract referenced as an executor by LayerZero message libraries. Its current implementation is unverified, so execution and fee handling cannot be checked against source.\n template:\n- \"layerzero/LayerZeroExecutor\"\n sourceHashes:\n- [\"0x4a43bdaa7c21f911802bc9e3457cf5fef469f43b372ea6944d53823caf2f53f2\",\"0x914fbceaba4b6418a09bd2104433bfcb47eed119a783154a8f7f6301c06a6d2b\"]\n values.$implementation:\n- \"eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805\"\n+ \"eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0\"\n values.$pastUpgrades.3:\n+ [\"2026-10-02T00:08:11.000Z\",\"0x682248f5070d80b5c52e90030913f204331e1f0516ed6a0e5d471e6417c3fb52\",[\"eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.allowlistSize:\n- 0\n values.DEFAULT_ADMIN_ROLE:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.defaultMultiplierBps:\n- 12000\n values.endpoint:\n- \"eth:0x1a44076050125825900e736c501f859c50fE728c\"\n values.localEidV2:\n- 30101\n values.paused:\n- false\n values.priceFeed:\n- \"eth:0xC03f31fD86a9077785b7bCf6598Ce3598Fa91113\"\n values.receiveUln301:\n- \"eth:0x245B6e8FFE9ea5Fc301e32d16F66bD4C2123eEfC\"\n values.workerFeeLib:\n- \"eth:0x4e9C57FD2Bd0f47C43F2D62642C1b05894fb9ed0\"\n implementationNames.eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805:\n- \"Executor\"\n implementationNames.eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0:\n+ \"\"\n unverified:\n+ true\n }\n```"
}
]
},
{
"id": "13612088",
"date": "Mon, 10 Aug 2026 09:02:39 GMT",
"timestamp": 1786352489,
"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": "6314d6c3",
"date": "Thu, 23 Jul 2026 13:56:17 GMT",
"timestamp": 1784814910,
"description": "One Safe signer was rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0xCbcdd778AA25476F203814214dD3E9b9c46829A1) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0x86CbBAEB08861D005fD2147A5123E43e558db167\"\n+ \"eth:0xb859DD2Cb50F19a53Ad25b279750ba5DEC76D306\"\n }\n```"
}
]
},
{
"id": "9306b56d",
"date": "Fri, 17 Jul 2026 07:49:26 GMT",
"timestamp": 1784274500,
"description": "Single signer change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GnosisSafe (eth:0xCbcdd778AA25476F203814214dD3E9b9c46829A1) [GnosisSafe] {\n +++ description: None\n values.$members.5:\n- \"eth:0xFbF8084Fb81da2e24f9EdD821172efef1b74F218\"\n+ \"eth:0xa85B57bD7433dCC4679d638b87d80F155A689Fc1\"\n }\n```"
}
]
},
{
"id": "cc504a7b",
"date": "Tue, 16 Jun 2026 10:00:27 GMT",
"timestamp": 1781603942,
"description": "Unichain peer blocked in ethereum rsETH OApp.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract RsETHOFTAdapter (eth:0x85d456B2DfF1fd8245387C0BfB64Dfb700e98Ef3) [layerzero/OFTAdapter] {\n +++ description: An OApp in the LayerZero protocol that adapts an existing ERC20 token into the OFT standard. Its owner can configure peers and LayerZero security settings for connected routes.\n+++ description: The configured peer for the rsETH OFT route from Unichain.\n values.peerUnichain:\n- \"unichain:0xc3eACf0612346366Db554C991D7858716db09f58\"\n+ \"unichain:0x0000000000000000000000000000000000000000\"\n }\n```"
}
]
},
{
"id": "4b6f822a",
"date": "Tue, 28 Apr 2026 10:00:05 GMT",
"timestamp": 1777285916,
"description": "tidy up config after ai changes and make it FE-ready.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Executor (eth:0x173272739Bd7Aa6e4e214714048a9fE699453059)\n +++ description: Used to execute LayerZero message payloads at the destination. Also manages fee logic, gas drop and access control.\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 ProxyAdmin (eth:0xa36797bA947b378AefE5f726Cd87766CD3c25Ee3)\n +++ description: None\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```"
}
]
},
{
"id": "90949d16",
"date": "Mon, 27 Apr 2026 10:38:19 GMT",
"timestamp": 1777285916,
"description": "initial ai-disco with skill after revive.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract EndpointV2 (eth:0x1a44076050125825900e736c501f859c50fE728c)\n +++ description: Part of the LayerZero messaging protocol. The rsETH OFT adapter owner can configure custom receive libraries and verification 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 DVN (eth:0x380275805876Ff19055EA900CDb2B46a94ecF20D)\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```\n\n```diff\n+ Status: CREATED\n contract DVN (eth:0x589dEDbD617e0CBcB916A9223F4d1300c294236b)\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```\n\n```diff\n+ Status: CREATED\n contract RsETHOFTAdapter (eth:0x85d456B2DfF1fd8245387C0BfB64Dfb700e98Ef3)\n +++ description: An OApp in the LayerZero protocol that adapts an existing ERC20 token into the OFT standard. Its owner can configure peers and LayerZero security settings for connected routes.\n```\n\n```diff\n+ Status: CREATED\n contract DVN (eth:0xa4fE5A5B9A846458a70Cd0748228aED3bF65c2cd)\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```\n\n```diff\n+ Status: CREATED\n contract DVN (eth:0xa59BA433ac34D2927232918Ef5B2eaAfcF130BA5)\n +++ description: Defines the logic that validates LayerZero Packets for this DVN.\n```\n\n```diff\n+ Status: CREATED\n contract LayerZero Multisig (eth:0xBe010A7e3686FdF65E93344ab664D065A0B02478)\n +++ description: Custom multisignature contract allowing offchain signing and execution on multiple target chains.\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 GnosisSafe (eth:0xCbcdd778AA25476F203814214dD3E9b9c46829A1)\n +++ description: None\n```"
}
]
}
]
+1 -33
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xc29d04A93F893700015138E3E334eB828dAC3cef",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740009695,
"transactionHash": "0x303a3be5647b6474268d2c9bac62d2a4852abe503ad8eb2c71fc85c63881cfbd",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1740009695,
"transactionHash": "0x303a3be5647b6474268d2c9bac62d2a4852abe503ad8eb2c71fc85c63881cfbd",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1742293595,
"transactionHash": "0xc0985a7dad204c5f7efd6ac87d9877049570eee2fd4f9100f3258b6174cae43e",
"implementations": [
"eth:0x0665d51e2342F5D5EAEaAaA175C6fdEEf122c542",
"eth:0xff6fb8160DC28260d4027C80eAd7e1eD147c963F",
"eth:0xbE8988304816cbbd36624567AFe1A223DBF58c82",
"eth:0x8480803516B7390Ff9C57eC4dD233B634FB493B8"
]
},
{
"timestamp": 1742928599,
"transactionHash": "0x4b3cb9b8f9a1aea99e804b16f63ec89011315bde09b37ea60f77b2d1d1e2b572",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747255211,
"transactionHash": "0x37a2cb789916112d5c2824569ee4f44d4078b9ab00b55017eebf83124309b54c",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751481779,
"transactionHash": "0x8d2c504c58a659511bef547888186da42708e16923743741cd11acf4c6d908b3",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755181427,
"transactionHash": "0xe1e89cb3eb4b704457d700ce847e9f682c50ef505c08b5ca0873a833e9d4ff2a",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1763413091,
"transactionHash": "0xd0833923639a4693c45fe165c6d30094dbfbc7c0b9e77b89981696519eb579a9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769715095,
"transactionHash": "0x54184d1aa0137620015290fe57ef7376cc15718acb77989eec3b7f4d0e0d14e5",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1780515515,
"transactionHash": "0x8f7d04ce7012bfb248543385dc44825a6d21c4752f98bff93eba04da47368d4e",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786263395,
"transactionHash": "0x49096e35ef0401c7d2d263edf1e9441da8f0805ff3c1fa2677b99b90363aed86",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786273499,
"transactionHash": "0xd00f75efe10c54a7f0df37b44b22205a3e3545b334856fe4bb3ba4f51687279c",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786910003,
"transactionHash": "0xd346a85316db66f6ed0cde76b5a129fb23a52351118a15822e158bf59f693f34",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: LensZkEvmAdmin; ultimately Lens Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc29d04A93F893700015138E3E334eB828dAC3cef#code"
},
{
"name": "AvailL1DAValidator",
"isVerified": true,
"address": "eth:0x8f50d93B9955B285f787043B30B5F51D09bE0120",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies that the validiums data was made available on Avail by querying the AvailBridgeV1 on Ethereum for a merkle proof of inclusion.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8f50d93B9955B285f787043B30B5F51D09bE0120#code"
},
{
"name": "BridgeHub",
"isVerified": true,
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520639,
"transactionHash": "0xdbb03a14ea223de3db4ac0916e78123bd0a1dde68e98952326d8382d29ac4d61",
"implementations": [
"eth:0x12f893689f9603991a8c22C249FFd0509Be95661"
]
},
{
"timestamp": 1725887363,
"transactionHash": "0x21aec24a9df97ce4886d699314be627b0818da4d1987349421fb3df102c43f2b",
"implementations": [
"eth:0x509dA1BE24432F8804C4A9FF4a3c3f80284CDd13"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x0029e562c0b54C0b88cB22adF4346DbfEC87400c"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xb720523EC3c615b069453bF4B0584CEbF034706f"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcdd748d4A80CE6831080f1dA2CA9084CDa87Cc87"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x08A98B1048Fb61E9Fff7d7d98305aC6286Ae9F32"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
}
],
"description": "The main registry (hub) for all the contracts in the ZK stack cluster and central entrypoint for bridge transactions. Stores important mappings like from chainId to diamond address, from chainId to parent CTM, from chainId to base token etc. A clone of Bridgehub is also deployed on each L2 chain, but this clone is only used on settlement layers.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x303a465B659cBB0ab36eE643eA362c509EEb5213#code"
},
{
"name": "MessageRoot",
"isVerified": true,
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109035,
"transactionHash": "0xc47e24e8cc6c7a493bbb1a46b74f1ff113fad2e35d7596aa688df5bf0402fc65",
"implementations": [
"eth:0x19347Fb8eD3E8e35eb4a01c8B18Bd330194Cf0ad"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x382fb241396eA915108e7B7Ce1adE1322bA73aeE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
}
],
"description": "Aggregates remote bridge message roots from all ZK stack chains. To be used with the Gateway when deployed.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD#code"
},
{
"name": "CTMDeploymentTracker",
"isVerified": true,
"address": "eth:0x6078F6B379f103de1Aa912dc46bb8Df0c8809860",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109203,
"transactionHash": "0x8b5a21b3473a638022e84097a99c4668bb0a454686b737e87957729c4822741b",
"implementations": [
"eth:0x1E405E5cdF127Dc98Eb490AB0e97345f892Ff7E1"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
}
],
"description": "Asset deployment tracker where the 'asset' is a ChainTypeManager. The registering of asset IDs for ChainTypeManagers is necessary to be able to migrate them to a given settlement layer, for example the Gateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6078F6B379f103de1Aa912dc46bb8Df0c8809860#code"
},
{
"name": "RollupL1DAValidator",
"isVerified": true,
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies the data availability of ethereum calldata and blobs. Can be used by ZK stack rollups as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72213dfe8CA61B0A782970dCFebFb877778f9119#code"
},
{
"name": "L1AssetRouter",
"isVerified": true,
"address": "eth:0x8829AD80E425C646DAB305381ff105169FeEcE56",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109071,
"transactionHash": "0x2c945c00f7a9f08b1a0bc749a08d76ca4cd5ee6f8890011ab43898e9fa1fcdf2",
"implementations": [
"eth:0x20E17D0280DeaBb78f7c193E3Ef05F62adC0936E"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcaD49896F3d54d9A93eDdBFd370c8A4a1b239315"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x0cb7f11BA981E13598D70625dF8f4597d59f2F4F"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
}
],
"description": "Canonical central asset router for all ZK stack chains. Routes deposits and withdrawals to the respective asset handlers (like the L1NativeTokenVault); does not escrow funds itself.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8829AD80E425C646DAB305381ff105169FeEcE56#code"
},
{
"name": "ChainTypeManager",
"isVerified": true,
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520663,
"transactionHash": "0x514bbf46d227eee8567825bf5c8ee1855aa8a1916f7fee7b191e2e3d5ecba849",
"implementations": [
"eth:0x8279B7E48fA074f966385d87AEf29Bd031e54fD5"
]
},
{
"timestamp": 1722934619,
"transactionHash": "0xc1e73b06359759201b76ab7654e0bd49011f33c0230dfc24423985fbf36ea817",
"implementations": [
"eth:0xed1Dc7F0Be2B19cb02a2476150C8ea24A37c5274"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xb39B175a5E0945F2FB6A7F31764c0e31D9cF5b75"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xA3bCcAEe38cb0273A979118a0DE483E47D50F6Cb"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x6D598c77AF57Bfa17201483400615c61819dD45A"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x345314c7E4af84B763d98d23f772622E23AfB5CE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
}
],
"description": "Defines L2 diamond contract versions, creation and upgrade data and the proof system for all ZK stack chains connected to it. ZK chains are children of this central contract and can only upgrade to versions that were previously registered here. The current protocol version is 0,30,1.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C#code"
},
{
"name": "L1Nullifier",
"isVerified": true,
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717521479,
"transactionHash": "0xce3d72f23297a281cb58502dcc6a6c029489316a2faf9c4ef83141b1b254017c",
"implementations": [
"eth:0xCba1aF8f0bB223b2544F8eB8f69d1c7960f788dB"
]
},
{
"timestamp": 1724658671,
"transactionHash": "0xaec33529b74f8f9d56d7aa568c6358be299228a85e49ea85cb106eca5af7367c",
"implementations": [
"eth:0xb56A8225A745756DD215faf22E4796f373561AcD"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xF5A14DCdde1143443f06033200D345c2a2828A99"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xda2866AF0e170d0867a3F3bB52Db10D6E09Df78A"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x3B4FD84B27fE7B9247d5B8C6d1A29B2889C81518"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xC6f08EFb7BA78f40d00F41aFAC00211d59eb9431"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
}
],
"description": "Contract responsible for bookkeeping L1 bridging transactions. Used to finalize withdrawals and reclaim failed deposits. Does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB#code"
},
{
"name": "ProtocolUpgradeHandler",
"isVerified": true,
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e"
],
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1738855967,
"transactionHash": "0xa3d1fa107e6dc4ce67d92a5af74aa7dc34602c2a1d46727790819c1f974bed95",
"implementations": [
"eth:0xD5e9D3d483a93d03D8d604CC79dC9f2F4B78C604"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x0A67f0Fd2f7523057039F14969Fe23a5f620f19A"
]
},
{
"timestamp": 1760519471,
"transactionHash": "0x2309df20dd1cb3f3a3289e97517d10d399989292f966578240ec387246a13e61",
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
}
],
"description": "The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2 and emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **emergencyUpgradeBoard**: EmergencyUpgradeBoard\n * **guardians**: Guardians\n * **l2_protocol_governor**: ProtocolTimelockController; ultimately ZkProtocolGovernor\n * **securityCouncil**: SecurityCouncil",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3#code"
},
{
"name": "RollupDAManager",
"isVerified": true,
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple registry for allowed DA address pairs for the 'rollup' data availability mode (can be permanently enforced with isPermanentRollup=true). Rollup DA address pairs (especially the L1 part) usually point to contracts that validate if data was made available on Ethereum.\n* Roles:\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "LensZkEvmAdmin",
"isVerified": true,
"address": "eth:0x6bd8d33551077Ed281Cb047835a2aE4033eEc433",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Lens Multisig act through it.\n* Roles:\n * **owner**: Lens Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6bd8d33551077Ed281Cb047835a2aE4033eEc433#code"
},
{
"name": "EraChainAdminProxy",
"isVerified": true,
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Matter Labs Multisig act through it.\n* Roles:\n * **owner**: Matter Labs Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2cf3bD6a9056b39999F3883955E183F655345063#code"
},
{
"name": "L1USDCBridge",
"isVerified": true,
"address": "eth:0xf553E6D903AA43420ED7e3bc2313bE9286A8F987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1734114251,
"transactionHash": "0x5428361f75c29b1f0e9959bd21fef8fb179b22f009f314e6403a305770e8735f",
"implementations": [
"eth:0x86dF12f51E3531689e0615bb2F739ddf01337715"
]
},
{
"timestamp": 1737484199,
"transactionHash": "0x152dc623c52d7f2b058ec5b4dfb67f5e0fee14c04dc9c0db4ae02ed2dc4ab998",
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to EraVerifierFflonk or EraVerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EraChainAdminProxy",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B#code"
},
{
"name": "L1NativeTokenVault",
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Canonical central asset escrow for all ZK stack chains.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1#code"
},
{
"name": "ChainAssetHandler",
"isVerified": true,
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758286391,
"transactionHash": "0x960c2e5bb98f4b9a07087b3b50fdc4681bbea1467aab3748dbb0050311f54ede",
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
}
],
"description": "Specialized contract for managing chain assets, i.e. chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDd5CB8B9037357B4cD37391A073798f8aaB61076#code"
},
{
"name": "ServerNotifier",
"isVerified": true,
"address": "eth:0xfca808A744735D9919EEBe4660B8Fd897456Ce31",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B"
],
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747199375,
"transactionHash": "0xbeb7447fc88b154a4730b01cb1a75b7093095056e88818c3659253111d06e66f",
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
},
{
"timestamp": 1784714999,
"transactionHash": "0xdbd5285f559e4ae32457b8425f67e1dfe76575c40999499e0b55d5cf985b85d8",
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
}
],
"description": "A simple contract that can be called by the ChainAdmin to emit notifications about chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Matter Labs Multisig",
"upgradableBy": [
{
"name": "Matter Labs Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfca808A744735D9919EEBe4660B8Fd897456Ce31#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 3\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"zksync2": [
{
"name": "ProtocolTimelockController",
"isVerified": true,
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 0s.\n* Roles:\n * **canceller**: ZkProtocolGovernor\n * **executor**: ZkProtocolGovernor\n * **proposer**: ZkProtocolGovernor\n * **timelockAdmin**: ProtocolTimelockController; ultimately ZkProtocolGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714#code"
},
{
"name": "ZkToken",
"isVerified": true,
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC"
],
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
},
"chain": "zksync2",
"pastUpgrades": [
{
"timestamp": 1716317326,
"transactionHash": "0x5bfce59c2ad18019ef20d58a3f1ec496cdc85537fc9564c932f7dcbbb2a15b56",
"implementations": [
"zksync:0x3931e73ebA79a7C898D3b0e02c7C62bA4F11cB14"
]
},
{
"timestamp": 1718011538,
"transactionHash": "0xa6bc022ba0f60ac6f10a6efb84b261e9ca1b327a611bdd7a1f4d37cc9b027a3c",
"implementations": [
"zksync:0x01a6715d3560241E09E865a46122bf347A576c09"
]
},
{
"timestamp": 1765195612,
"transactionHash": "0x749b9e6eed328052d679eb86639be807b4acf811ac8786f730b45258ba41ce6f",
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
}
],
"description": "The ZK token contract on ZKsync Era. Mintable through access control roles. Used for voting in the ZK stack governance system.\n* Roles:\n * **admin**: ZkTokenProxyAdmin; ultimately ProtocolUpgradeHandler_l2Alias\n * **defaultAdmin**: ProtocolUpgradeHandler_l2Alias\n * **minterAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"upgradableBy": [
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E#code"
},
{
"name": "ZkTokenProxyAdmin",
"isVerified": true,
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler_l2Alias",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xdB1E46B448e68a5E35CB693a99D59f784aD115CC#code"
},
{
"name": "ZkTokenTimelockController",
"isVerified": true,
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkTokenGovernor\n * **executor**: ZkTokenGovernor\n * **proposer**: ZkTokenGovernor\n * **timelockAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d#code"
}
]
},
"escrows": [
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": [
"LGHO",
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Shared bridge for depositing tokens to Lens and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x8116A750e2091B2bA0D94223e7b20a6A65A279f4",
"l2EtherAddress": "0xE5ecd226b3032910CEaa43ba92EE8232f8237553",
"tokensToAssignFromL1": [
"LGHO"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.29.2",
"description": "EraVM program that proves the correct execution of a batch of ZK Stack L2 blocks.",
"proverSystemProject": "boojum",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.29.2/system-contracts/bootloader/bootloader.yul",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.29.2`. Commit hash should be `dbfc9b5a40d68007dc405a9b669230104c1646e4`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 4d 3h - 8d 3h delay on code upgrades unless upgrade is initiated by the EmergencyUpgradeBoard in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1790944827,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+22 -59
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710467267,
"transactionHash": "0x667a55493b70812eedb69586be570fa87bb305ff046ebd1419cdc71163f770ac",
"implementations": [
"eth:0x6Dbb7D9C5dC60844B8CF442ddC6Be081c060B2E3"
]
},
{
"timestamp": 1776322715,
"transactionHash": "0xa9f65671c6b80206db6f058626a8702cf9171dc5d5ab7e382bf124d2b0e1e55a",
"implementations": [
"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310"
]
}
],
"description": "Contains configuration parameters such as the batch submitter (Sequencer) address, the L2 gas limit, the unsafe block signer address and the Arsia fee/gas mechanics (base/blob scalars, EIP-1559 params, minimum base fee, DA footprint gas scalar and EIP-7706-style operator fee).\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **batcherHash**: EOA 1\n * **owner**: MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x427Ea0710FA5252057F0D88274f7aeb308386cAf#code"
},
{
"name": "OptimismPortal",
"isVerified": true,
"address": "eth:0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
}
],
"description": "The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **guardian**: MantleEngineeringMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x676A795fe6E43C17c668de16730c3F690FEB7120",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1687958039,
"transactionHash": "0x3ef2116cdd9366a646b6625affcf0cbe96bb3c59c3ffc629432d3f79ff1f886c",
"implementations": [
"eth:0x4692363048d0F32a2dE7816860D48fff0c61B24B"
]
},
{
"timestamp": 1710467267,
"transactionHash": "0x667a55493b70812eedb69586be570fa87bb305ff046ebd1419cdc71163f770ac",
"implementations": [
"eth:0x0000000000000000000000000000000000000000"
]
},
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308"
]
}
],
"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 MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x676A795fe6E43C17c668de16730c3F690FEB7120#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012#code"
},
{
"name": "MantleTokenProxyAdmin",
"isVerified": true,
"address": "eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0cac2B1a172ac24012621101634DD5ABD6399ADd#code"
},
{
"name": "OPSuccinctL2OutputOracle",
"isVerified": true,
"address": "eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xD1230865641561653406906Fb08873F011c19080"
]
},
{
"timestamp": 1758005207,
"transactionHash": "0xf9fc68effd8cbd421d25e87a357757fe6710c6c9c0d9c5270d2af5a37f675259",
"implementations": [
"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50"
]
}
],
"description": "Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **challenger**: MantleEngineeringMultisig\n * **initialProposer**: EOA 2\n * **owner**: MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481#code"
},
{
"name": "L1MantleToken",
"isVerified": true,
"address": "eth:0x3c3a81e81dc49A522A592e7622A7E711c06bf354",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd"
],
"implementations": [
"eth:0xCd368c1d80120b0Dd92447c87eB570154f8e685c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1687241795,
"transactionHash": "0x8f7867724cfba4b9b1b19ca140711809b40dda9ae245caf7bcff9473a5a7e45e",
"implementations": [
"eth:0xCd368c1d80120b0Dd92447c87eB570154f8e685c"
]
}
],
"description": "MNT token contract: Mantle uses Mantle (MNT) as the designated gas token, allowing users pay for gas in MNT.\n* Roles:\n * **admin**: MantleTokenProxyAdmin; ultimately MantleSecurityMultisig\n * **owner**: MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3c3a81e81dc49A522A592e7622A7E711c06bf354#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: MantleSecurityMultisig\n * **defaultAdmin**: MantleSecurityMultisig, TimelockController; ultimately MantleSecurityMultisig\n * **executor**: MantleSecurityMultisig\n * **proposer**: MantleSecurityMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xca35F8338054739D138884685e08b39EE2217794",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: MantleSecurityMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xca35F8338054739D138884685e08b39EE2217794#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"sinceTimestamp": 1710439967,
"tokens": [
"ETH",
"MNT"
],
"contract": {
"isVerified": true,
"address": "eth:0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
}
],
"description": "Main entry point for users depositing ETH, MNT.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"sinceTimestamp": 1687954103,
"tokens": "*",
"excludedTokens": [
"SolvBTC",
"SolvBTC.BBN",
"FBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Main entry point for users depositing ERC20 token that do not require custom gateway.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client. Data availability layer is set to Ethereum blobs.",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1/programs/aggregation",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0`\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1) repo: `git checkout mantle-v1.6.1`. Commit hash should be `8d280ded13f3fcba3d85fb6babedaf75cab5e9c0`.\n2. Make sure docker is running by running `docker ps`\n3. Delete the committed ELFs so that only rebuilt ones get hashed: `rm elf/aggregation-elf elf/range-elf-embedded`\n4. From the `op-succinct` dir: `just build-elfs` to rebuild the SP1 programs in docker.\n5. From the `op-succinct` dir: `just vkeys` to print the verification key hashes. This program hash is the `Aggregation Verification Key Hash`.",
"hash": "0x00fa36417110bce994f3054a68baef78ca51dee1a38659c70e108da7eb3d6bbf"
},
{
"title": "Range program of OP Succinct",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks. Data availability layer is set to Ethereum blobs.",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1/programs/range/ethereum",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0`\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1) repo: `git checkout mantle-v1.6.1`. Commit hash should be `8d280ded13f3fcba3d85fb6babedaf75cab5e9c0`.\n2. Make sure docker is running by running `docker ps`\n3. Delete the committed ELFs so that only rebuilt ones get hashed: `rm elf/aggregation-elf elf/range-elf-embedded`\n4. From the `op-succinct` dir: `just build-elfs` to rebuild the SP1 programs in docker.\n5. From the `op-succinct` dir: `just vkeys` to print the verification key hashes. This program hash is the `Range Verification Key Hash`.",
"hash": "0x1e2b863405480e5509bcae955f9e23e1170419ba26af2f271cd0199f1e228fdb"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1789917555,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+21 -26
{
"changes": [
{
"timestamp": 1710467267,
"type": "code",
"earliest": 1710467267
},
{
"timestamp": 1710490775,
"type": "code",
"earliest": 1710490775
},
{
"timestamp": 1710490775,
"type": "code",
"updateId": "5dc1a14e",
"earliest": 1710490775
},
{
"timestamp": 1739846111,
"type": "state",
"earliest": 1739846111
},
{
"timestamp": 1758005207,
"type": "code",
"earliest": 1758005207
},
{
"timestamp": 1758005207,
"type": "state",
"updateId": "df347cbc",
"earliest": 1758005207
},
{
"timestamp": 1758610559,
"type": "state",
"updateId": "d7e3f45d",
"earliest": 1758610559
},
{
"timestamp": 1767768479,
"type": "state",
"updateId": "58e087bc",
"earliest": 1767768479
},
{
"timestamp": 1769160827,
"type": "state",
"updateId": "930cf6f5",
"earliest": 1769160827
},
{
"timestamp": 1771445567,
"type": "state",
"updateId": "eeb61c0d",
"earliest": 1771445567
},
{
"timestamp": 1776322715,
"type": "code",
"earliest": 1776322715
},
{
"timestamp": 1776322715,
"type": "state",
"updateId": "3460a30b",
"earliest": 1776322715
},
{
"timestamp": 1776370439,
"type": "state",
"updateId": "13fde891",
"earliest": 1776370439
},
{
"timestamp": 1776868559,
"type": "state",
"updateId": "c3e9d0e9",
"earliest": 1776868559
},
{
"timestamp": 1777434335,
"type": "state",
"updateId": "d64f0885",
"earliest": 1777434335
},
{
"timestamp": 1781079551,
"type": "state",
"updateId": "32d5466d",
"earliest": 1781079551
},
{
"timestamp": 1785314135,
"type": "state",
"updateId": "7337d399",
"earliest": 1785314135
},
{
"timestamp": 1788925163,
"type": "state",
"updateId": "2437125d",
"earliest": 1788925163
},
{
"timestamp": 1789615739,
"type": "state",
"updateId": "706bc529",
"earliest": 1789615739
},
{
"timestamp": 1791526391,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526391
},
{
"timestamp": 1791526499,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526499
}
],
"contracts": [
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1791526499,
"codeChangeCount": 0,
"stateChangeCount": 4
},
{
"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": 2
},
{
"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": 1758005207,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MantleTokenProxyAdmin",
"address": "eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd",
"isVerified": true,
"ossifyingSince": 1739846111,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"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": 1710439895,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L1MantleToken",
"address": "eth:0x3c3a81e81dc49A522A592e7622A7E711c06bf354",
"isVerified": true,
"ossifyingSince": 1688314886,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "AddressManager",
"address": "eth:0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42",
"isVerified": true,
"ossifyingSince": 1688314886,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"deployments": [
1687241639,
1687241795,
1687951883,
1687954103,
1687958039,
1710439895,
1710467267,
1710490775,
1710490775,
1720099223,
1739349323,
1748550023,
1771084331,
1771497368,
1776172415
],
"observedSince": 1688314886
}
+1 -33
+0 -32
{
"addresses": {
"arbitrum": [
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d"
],
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xc326D023758d7D212d529D1E58D7f271CAe49fcf",
"arb1:0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x4f82B5de97Ad3690ee319878083503178Fd8E0B9",
"arb1:0x8522769aEF1A87bE45530E0C84834BCce38CA9Bd"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 1, EOA 1\n * **validators**: EOA 3",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0f28D76Ec5c62b502625351726b4A3E3F54FF5F0#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x1d182075d07744D71E37f77f1654165f6DAFad08"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x79177caeDf321963EFed06E562017181B2e8aDC7"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0x645341A2C76cD94324cBA658c19Acca2297b619C"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x7A9A0974F98052dA2F10DC9a50E3e348CDc62607"
]
},
{
"timestamp": 1751386630,
"transactionHash": "0x6e4d22b6b61eeffdbd42e8fe52446bb966dd46592ba723bc43edaf1a7cc4f678",
"implementations": [
"arb1:0x481863c96f949F5E13932ec2F65470C0CF83808d"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **batchPosterManager**: EOA 2\n * **batchPosters**: EOA 2",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0fFe9ACC296ddd4De5F616Aa482C99fA4b41A3E2#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x935239e066F4F449D87D600e6d7c1a4F24c50f97"
]
},
{
"timestamp": 1731472488,
"transactionHash": "0xa3cef71c7eacc17dedd4ff7a2c732cd42e982d2ca5c620fe8364225fce9760ab",
"implementations": [
"arb1:0x3bD530a9a48F17052D5d3c30e7582Fcb42BdFD23"
]
},
{
"timestamp": 1731480884,
"transactionHash": "0x9a8ae683e857b80a843f7f071b0f831ac8162c6ac2c09fd9a8a514809d80c7af",
"implementations": [
"arb1:0x84c179B5651A762a81A490BA03D27997A5922EC1"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0x0686dc9F334F8C0f0a9646f48775aa002757AFFE"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7BB97862CA342B5fbe2AE2cF2E954F6327f587b1#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0x92ff91308F5f1036435f23c2F4F136Bb7475425d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1\n * **executors**: Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x92ff91308F5f1036435f23c2F4F136Bb7475425d#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x235000876bd58336C802B3546Fc0250f285fCc79",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0x2675b9DEb473ECaC13ddd71dF8A0Ef13FeF6a75D"
]
},
{
"timestamp": 1746463926,
"transactionHash": "0x6018ec86bbda22965cae10bd0862c749181c4101bbc3eaff562cfd66a67f0377",
"implementations": [
"arb1:0xdec03E497222017550Fb83273d8FB4546eaDA625"
]
},
{
"timestamp": 1746649259,
"transactionHash": "0xcd0e8af41249440524c34f999e8033e63b5b2120088982cba91c32976a0a81d8",
"implementations": [
"arb1:0xbFfd05964F6d7AE4B55eB8A7086d88EEEcbF5f76"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x235000876bd58336C802B3546Fc0250f285fCc79#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xCa2F31F3C6553c2FD9897f7AA464406a431959A9"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb255de22d39a26D4CbcAFd6Cf660ccaCa047e95B#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x922db00d292477AD99Ef8A0c41101a664Ee79D2b"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xAeAe9616A02dA527FceA2AC444EC918C7BfB9CdF#code"
},
{
"name": "NitroEnclaveVerifier",
"isVerified": true,
"address": "arb1:0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "ZK-backed verifier for AWS Nitro enclave attestations. Verifies ZK proofs (RiscZero, Succinct SP1 or Pico) that attest AWS Nitro cert chain validation was executed correctly off-chain.\n* Roles:\n * **owner**: EOA 4",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0d4cD6C0E9a0f2e744C83547f22Caf03414A3B22#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x23b7734232dA19D2Cf73010a25C8Ffc4eBfc2f5f#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x59CDE86f1a538a7a2329269d3704CA302DF23736",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x59CDE86f1a538a7a2329269d3704CA302DF23736#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "arb1:0x69523d25E25e5c78d828Df90459b75F189D40Cf7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x0d089B3fA00CBAD0a5098025519e9e4620622acF), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x69523d25E25e5c78d828Df90459b75F189D40Cf7#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "TEE gateway contract that can be used to 1) register signers that were generated inside a TEE and 2) verify the signatures of such signers. It supports both Intel SGX and AWS Nitro TEEs through modular contracts.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7A7E3B3eB8c799360E65d4fE2f0e108dB78721c3#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7d46570d3Cd9D8F5e01bad3144141a031a94d7B8#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0x7E67B50d510929610f840fb09707feA01b8E457B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7E67B50d510929610f840fb09707feA01b8E457B#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0x9676D55Ccd46ce72235b16bA645008D1D3350B14",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xf2bCB26dbb571EBC82CFAe6453AeF0DE90d93421"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9676D55Ccd46ce72235b16bA645008D1D3350B14#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x9e83136d4B3AD04C766591EA51712F9aEa3194C0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9e83136d4B3AD04C766591EA51712F9aEa3194C0#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xD9d5C8456a168Dd25561064F47bF116111131B1D#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0xe3b13e7b160aE4b799A7B3F9877316e717706291",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe3b13e7b160aE4b799A7B3F9877316e717706291#code"
},
{
"name": "EspressoSGXTEEVerifier",
"isVerified": true,
"address": "arb1:0xEA25045bC30ceE23A280c51020F0bBb78781A297",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an Intel SGX TEE.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEA25045bC30ceE23A280c51020F0bBb78781A297#code"
},
{
"name": "EspressoNitroTEEVerifier",
"isVerified": true,
"address": "arb1:0xF99De72165cB3A56766e118B3a20874d4A0aCa89",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifies attestations of an AWS Nitro TEE. \nNote: currently only Succinct proofs are used.\n* Roles:\n * **owner**: SafeL2",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xF99De72165cB3A56766e118B3a20874d4A0aCa89#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 5, EOA 6",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xE1d32C985825562edAa906fAC39295370Db72195",
"sinceTimestamp": 1712019082,
"tokens": [
"MOLTEN"
],
"contract": {
"isVerified": true,
"address": "arb1:0xE1d32C985825562edAa906fAC39295370Db72195",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019082,
"transactionHash": "0x95b91b77f8acfeba7f9d6fdb02826847e1a437c49ba88d2c32cd42ec716850da",
"implementations": [
"arb1:0xC5Db571093C4600559e239497d147476F7543b15"
]
},
{
"timestamp": 1745531035,
"transactionHash": "0x3b143e23963a08ef4f73468ac748608d292faa7062295e86224befc1c41e8726",
"implementations": [
"arb1:0x7DD439Ec22c91b0703EE7d80175fd8d5319906A1"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows MOLTEN sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xE1d32C985825562edAa906fAC39295370Db72195#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"sinceTimestamp": 1712019098,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8Ab2f49A085490c1592325eE32B6e6a4DA35D238"
],
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1712019098,
"transactionHash": "0x23ef7ccf294b19a7ece9a717b1f66c067825a5c354b3ada4c8e323742e562d64",
"implementations": [
"arb1:0x652F65f950b71d7aD04AffB1725F43786ed5f6Cc"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x5a6f8ea5e1028C80CB98Fd8916afBBC4E6b23D80#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "Celestia Blobstream DA bridge program",
"description": "ZK-friendly implementation of Celestia Blobstream DA bridge that proves that enough Celestia validators have confirmed a given data root.",
"programUrl": "https://github.com/succinctlabs/sp1-blobstream/tree/78a9d3419339a8c60bf51e1e3241f242bc44d434/program",
"proverSystemProject": "sp1hypercube",
"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 commit hash in [sp1-blobstream](https://github.com/succinctlabs/sp1-blobstream/tree/main) repo: `git checkout 78a9d3419339a8c60bf51e1e3241f242bc44d434`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-blobstream/program` dir run: `cargo prove build --docker --tag v6.1.0 --elf-name blobstream-elf --output-directory ../elf` to build the blobstream program elf within a docker container and place it in `sp1-blobstream/elf`.\n4. From `sp1-blobstream` run: `cargo run --bin vkey --release` to print the vkey of the `blobstream-elf` program.",
"hash": "0x00b451fcd696cd0a4025e30bfed96343b1767ac6523a360fee1183f9e2e20745"
},
{
"title": "Nitro TEE Verifer",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/8607619cc620a93d029a9569bccf752f341aad99/crates/sp1-methods/sp1-verifier",
"description": "Verifies correctness of a single TEE attestation for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`\n2. Make sure SP1 v6.1.0 is active: `sp1up -v 6.1.0` (must match the workspace `sp1-sdk = \"^6.1.0\"` dependency)\n3. Install docker [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [automata-network/aws-nitro-enclave-attestation](https://github.com/automata-network/aws-nitro-enclave-attestation/tree/feat/reproducible_build) repo: `git checkout feat/reproducible_build`. Commit hash should be `8607619cc620a93d029a9569bccf752f341aad99`.\n2. Make sure docker is running by running `docker ps`.\n3. From the repo root: `cargo clean -p sp1-methods` to clear any stale build artifacts.\n4. From the repo root run: `REPRODUCIBLE_BUILD=docker cargo run --release -p nitro-attest-cli --no-default-features --features sp1 -- program-id --sp1`. The `REPRODUCIBLE_BUILD=docker` env var triggers the SP1 docker reproducible rebuild of `sp1-verifier` and `sp1-aggregator` ELFs (replacing `USE_DOCKER=1` used on older branches). The CLI then prints `Verifier ID`, `Verifier Proof ID`, and `Aggregator ID`.",
"hash": "0x00643c7149cf335e7ec9d3f3301e69658a7f0ef2bc7546509c257ed8809f28e1"
},
{
"title": "Nitro TEE Aggregated Verifer",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/automata-network/aws-nitro-enclave-attestation/tree/8607619cc620a93d029a9569bccf752f341aad99/crates/sp1-methods/sp1-aggregator",
"description": "Verifies correctness of several aggregated TEE attestations for correctly running Arbitrum Nitro within a trusted enclave.",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`\n2. Make sure SP1 v6.1.0 is active: `sp1up -v 6.1.0` (must match the workspace `sp1-sdk = \"^6.1.0\"` dependency)\n3. Install docker [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [automata-network/aws-nitro-enclave-attestation](https://github.com/automata-network/aws-nitro-enclave-attestation/tree/feat/reproducible_build) repo: `git checkout feat/reproducible_build`. Commit hash should be `8607619cc620a93d029a9569bccf752f341aad99`.\n2. Make sure docker is running by running `docker ps`.\n3. From the repo root: `cargo clean -p sp1-methods` to clear any stale build artifacts.\n4. From the repo root run: `REPRODUCIBLE_BUILD=docker cargo run --release -p nitro-attest-cli --no-default-features --features sp1 -- program-id --sp1`. The `REPRODUCIBLE_BUILD=docker` env var triggers the SP1 docker reproducible rebuild of `sp1-verifier` and `sp1-aggregator` ELFs (replacing `USE_DOCKER=1` used on older branches). The CLI then prints `Verifier ID`, `Verifier Proof ID`, and `Aggregator ID`.",
"hash": "0x00294928e44f0cdc9c74848c4cafcdb29f733a3bc07408c240be3d5afe750b3e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
]
}
+1 -1
{
"baseTimestamp": 1783679422,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -31
+0 -30
{
"addresses": {
"arbitrum": [
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x2e988Ea0873C9d712628F0bf38DAFdE754927C89",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0x139C5A235632EDdad741ff380112B3161d31a21C"
],
"implementations": [
"arb1:0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42",
"arb1:0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0xc326D023758d7D212d529D1E58D7f271CAe49fcf",
"arb1:0xD92D49e8A2230E2C7a73c3ff4Df1AED09dA32a07"
]
},
{
"timestamp": 1730751274,
"transactionHash": "0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357",
"implementations": [
"arb1:0x8470c94a718f062156a4663ea797359E908b5836",
"arb1:0x5bc2d4D25446Fa7C51Eefe10e2FdF846bD355A5d"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0x086Fe1f212A4F311f1e3027A35dE3d45dC4AFA42",
"arb1:0x107B8ff1daeEFc37c27fc794fdb0828A1B5Af262"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Caldera Multisig 1, SafeL2\n * **owner**: UpgradeExecutor; ultimately Caldera Multisig 1, SafeL2\n * **validators**: EOA 2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2e988Ea0873C9d712628F0bf38DAFdE754927C89#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0xA436f1867adD490BF1530c636f2FB090758bB6B3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x1d182075d07744D71E37f77f1654165f6DAFad08"
]
},
{
"timestamp": 1730748413,
"transactionHash": "0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6",
"implementations": [
"arb1:0x305eD6932AbF2e997832C570E467320BbA1491F4"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0xa8968d1dbA3F93FB7412d15F4139C0f63537e9E2"
]
},
{
"timestamp": 1738182192,
"transactionHash": "0xb59494487d444c465d61f19a4fe9830806da172e2883ae0861c155f3066592a7",
"implementations": [
"arb1:0xE2DdF957261A6d8a96A7eff29C51460707FfbBE5"
]
},
{
"timestamp": 1738289135,
"transactionHash": "0x206804ee59ae4cd1cd13fc2c92c59958f3ecfcf3f210b2d583a6816e3a4a0b10",
"implementations": [
"arb1:0x805dc3546d99AfB35EfB261b907679b67A08256e"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0xF39c8d67B55Fef4851f9267304aA1A030E0DecAC"
]
}
],
"description": "The Espresso TEE sequencer (registered in this contract) can submit transaction batches or commitments here. This version of the SequencerInbox also supports commitments to data that is posted to Celestia.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2\n * **batchPosterManager**: EOA 1\n * **batchPosters**: EOA 1",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA436f1867adD490BF1530c636f2FB090758bB6B3#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x935239e066F4F449D87D600e6d7c1a4F24c50f97"
]
},
{
"timestamp": 1730748413,
"transactionHash": "0x2def26eb81ac9d539c866215344b91b71bef86d51fb556eaf6bafd6703e68bb6",
"implementations": [
"arb1:0xa24eF25c521d7927c11d7Da940b4B63e0E9575C6"
]
},
{
"timestamp": 1730751274,
"transactionHash": "0x3da8ef35136e3b37f5b7ea453a773a9a22a9195d2fac287a5b30ebac420f1357",
"implementations": [
"arb1:0x7Eac96FDa155F0cE911d93D540e405e4020B082D"
]
},
{
"timestamp": 1734537691,
"transactionHash": "0xf6ba2a68694536996ab068340a4b4abc811a9d72c0ad5c2af34ccea6c7a25c88",
"implementations": [
"arb1:0xFd7A2567C6b56153f1b0D4FDbCc671d178a971fc"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0x5DD914a56853Da4C6Cee07827483F532e65B6FeD"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0x7e4c2B3405cA7900d0f7C2DBEF3Dc127D9f3Cb9b"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xa9064FebD91E9Ab4c49C8989926Cada18bc9C8FF#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0x139C5A235632EDdad741ff380112B3161d31a21C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x20C6be2A0429A82a7bF113905a29d36CF6753B10"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2\n * **executors**: Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x139C5A235632EDdad741ff380112B3161d31a21C#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x37e60F80d921dc5E7f501a7130F31f6548dBa564",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x4cA89361F5F79092822F95F34334227528ed63A8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x198792E7e60688FEeB0b89f0ABD3b85953Dd05Cd"
]
},
{
"timestamp": 1746452624,
"transactionHash": "0x4eacd17837407047b65635abdfb9d2693b58efa4040f33baca7b9d27271b0a2c",
"implementations": [
"arb1:0x6B292d1d4D38653b4F1D6De41c6be198371C5af1"
]
},
{
"timestamp": 1747765120,
"transactionHash": "0x1ff1a74aaa6a58e0a3389de2761ed84c9051a4ffea080265aae0d62aaf9df75c",
"implementations": [
"arb1:0x4cA89361F5F79092822F95F34334227528ed63A8"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x37e60F80d921dc5E7f501a7130F31f6548dBa564#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0x91591BB66075BCfF94AA128B003134165C3Ab83a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x84Cf78b9573daDb2FBa3028e49e0B5F785134360"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x84Cf78b9573daDb2FBa3028e49e0B5F785134360"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x91591BB66075BCfF94AA128B003134165C3Ab83a#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0x2623C144B4d167f70893f6A8968B98c89a6C5F97",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x532Ba80626DF9042353fa9509A66a25eE90fc51B"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x532Ba80626DF9042353fa9509A66a25eE90fc51B"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2623C144B4d167f70893f6A8968B98c89a6C5F97#code"
},
{
"name": "CustomGateway",
"isVerified": true,
"address": "arb1:0x8bE956aB42274056ef4471BEb211b33e258b7324",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
}
],
"description": "Escrows deposited assets for the canonical bridge that are externally governed or need custom token contracts with e.g. minting rights or upgradeability.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8bE956aB42274056ef4471BEb211b33e258b7324#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x003e70B041abb993006C03E56c8515622a02928C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x003e70B041abb993006C03E56c8515622a02928C#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x1e5fCE58D1358aCbc3d32ac106a20B7F19C434eC#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2948690217F3C2fDD6166343da8A7Ac2B7f5c134#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x2BA5cB2D332E266c43D0Ef18F879650d00630B61",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2BA5cB2D332E266c43D0Ef18F879650d00630B61#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3A765e7a1709C19F065F098AAF2940AAA7ac0AE3#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x73D3a5E535cBF98B9b5Ff7fEb8EC26e61FCEC4b7"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x73D3a5E535cBF98B9b5Ff7fEb8EC26e61FCEC4b7"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Caldera Multisig 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"name": "Caldera Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3bC4894370dE0Aa304ed717c2e01866c46F1CEa6#code"
},
{
"name": "QuoteVerifier",
"isVerified": true,
"address": "arb1:0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The QuoteVerifier contract is used by the EspressoTEEVerifier to verify the validity of the TEE quote. It references a PCCSRouter (0x729E3e7542E8A6630818E9a14A67e0Cb7008a5E5), an access point for Intel SGX 'collateral', crucial references of which some modular contracts are unverified.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x4613038C93aF8963dc9E5e46c9fb3cbc68724df1#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x9e83136d4B3AD04C766591EA51712F9aEa3194C0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9e83136d4B3AD04C766591EA51712F9aEa3194C0#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0xb47a57a218911653d964fE8aAa1cED55A71D8043",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xb47a57a218911653d964fE8aAa1cED55A71D8043#code"
},
{
"name": "EspressoTEEVerifier",
"isVerified": true,
"address": "arb1:0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "The Espresso TEE verifier is used by the SequencerInbox contract to verify the batch attestations signed by the TEE.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xEe8f0e3BC9c3965460B99D0D2DFBb05c508536fb#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 3, EOA 4",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"sinceTimestamp": 1705716145,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "arb1:0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716145,
"transactionHash": "0xfc9b3973815b82226b0df5c0db23edf854e2ff768a745792e2c27f31b36798c2",
"implementations": [
"arb1:0x74faA20aE77FFAb036369b24066Cc5d4251900D2"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0x255f80Ef2F09FCE0944faBb292b8510F01316Cf0#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"sinceTimestamp": 1705716148,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0xcc6DcB3FaA2436270E696994f326426B76A9f731"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x46406c88285AD9BE2fB23D9aD96Cb578d824cAb6#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8bE956aB42274056ef4471BEb211b33e258b7324",
"sinceTimestamp": 1705716148,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x8bE956aB42274056ef4471BEb211b33e258b7324",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x003e70B041abb993006C03E56c8515622a02928C"
],
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1705716148,
"transactionHash": "0x55f5bdbceb2bf6779c46e60ffeaaeee6e1273aa3741b1179337a62acc0b3167a",
"implementations": [
"arb1:0x0987F33E1d59ECcedbDd6356ED34F06dd7baDcF8"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens that require minting custom token on L2.",
"url": "https://arbiscan.io/address/0x8bE956aB42274056ef4471BEb211b33e258b7324#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "Celestia Nitro 3.3.2 wasmModuleRoot",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games, which uses Celestia DA.",
"programUrl": "https://github.com/celestiaorg/nitro/tree/7c9d688a256cc60f2b8db9dbe9ac40511d0d1f2e/arbos",
"verificationStatus": "successful",
"verificationSteps": "Even though the program is compiled in docker for reproducibility reasons, it gives the correct results only on linux OS. Steps below were done on Ubuntu 22.04 OS. The steps below consume ~35 GiB disk space.\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/).\n2. Checkout the correct branch in [celestiaorg/nitro](https://github.com/celestiaorg/nitro/tree/celestia-v3.3.2) repo: `git checkout celestia-v3.3.2` . Commit hash should be `7c9d688a256cc60f2b8db9dbe9ac40511d0d1f2e`.\n3. Update git submodules `git submodule update --init --recursive --force`.\n4. To fix build errors, add this to `contracts/foundry.toml`: \n```\n[profile.yul.lint]\nlint_on_build = false\n```\nAlso replace line 98 of Dockerfile with `cargo install --force --locked cbindgen --version \"=0.26.0\"` and line 46 with `RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.75.0 --target x86_64-unknown-linux-gnu --target wasm32-unknown-unknown --target wasm32-wasi`.\n\n5. Generate wasm module root in docker: `docker buildx build --target nitro-node-dev -t nitro-node-dev .`.\n6. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xaf1dbdfceb871c00bfbb1675983133df04f0ed04e89647812513c091e3a982b3"
}
],
"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": []
}
+1 -1
{
"baseTimestamp": 1783679422,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -33
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0x6A4139810986CF13408330e14C4ac9Daf0511aA3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"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 Rise ProxyAdminOwner Multisig\n * **owner**: Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6A4139810986CF13408330e14C4ac9Daf0511aA3#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0xad92Fa18EB74E46Db844240623124BF46589db4C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
}
],
"description": "The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the 42.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xad92Fa18EB74E46Db844240623124BF46589db4C#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0xD3CAf2A473dBB5bc2E8FB7F328e01AB9B726a24f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x2dBFabA1D1d4172E0f8301671DED544C0079B961"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"implementations": [
"eth:0x2dBFabA1D1d4172E0f8301671DED544C0079B961"
]
}
],
"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 Rise ProxyAdminOwner Multisig\n * **batcherHash**: EOA 1\n * **owner**: Rise Guardian Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD3CAf2A473dBB5bc2E8FB7F328e01AB9B726a24f#code"
},
{
"name": "SuperchainConfig",
"isVerified": true,
"address": "eth:0xB786207A1EdfC724c1d507335f403F53fd9E79d6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x4ebc046b1cfc12659A19E124b0ea8a382777E542"
],
"implementations": [
"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605663,
"transactionHash": "0x19f80daed48b3daf890909b960b8058526f5468a974d27ae71a232e4178422a8",
"implementations": [
"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957"
]
}
],
"description": "This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3mo 1d if left untouched.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Rise ProxyAdminOwner Multisig\n * **guardian**: Rise Guardian Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB786207A1EdfC724c1d507335f403F53fd9E79d6#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0x01A6274B9607ac024e8c191E491d0b25ad14c217",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x01A6274B9607ac024e8c191E491d0b25ad14c217#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x553257678Dd11a6668a92934AAB005e420c6535A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"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 Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x553257678Dd11a6668a92934AAB005e420c6535A#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xC0de1d9B1cD2Caf782355C66a6A8e5948e63c9c6",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"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 Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC0de1d9B1cD2Caf782355C66a6A8e5948e63c9c6#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": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0x2e7758aAD2B6D3D1Fd2C937D9B322378fC644633",
"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/0x2e7758aAD2B6D3D1Fd2C937D9B322378fC644633#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x4ebc046b1cfc12659A19E124b0ea8a382777E542",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Rise ProxyAdminOwner Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4ebc046b1cfc12659A19E124b0ea8a382777E542#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0x551A672d703966D83C3EC3ea0e844f43c3373c91",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
{
"timestamp": 1767608135,
"transactionHash": "0xcb64d5e0ddf1fe3208f3c9d2bbc7549e64b68340b0a03fbe224320152ade4789",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1767608135,
"transactionHash": "0xcb64d5e0ddf1fe3208f3c9d2bbc7549e64b68340b0a03fbe224320152ade4789",
"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 Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x551A672d703966D83C3EC3ea0e844f43c3373c91#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": "OPSuccinctFaultDisputeGame",
"isVerified": true,
"address": "eth:0xBf60dBc272833cD25f0426983c3175C32C8E5A7a",
"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/0xBf60dBc272833cD25f0426983c3175C32C8E5A7a#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Rise ProxyAdminOwner Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCf32d8c4Be30cA330c1150916A71A651bADd70d5#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0xE2B9526277DcD2B27222Df760D6427213AC9dbb8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"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 Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE2B9526277DcD2B27222Df760D6427213AC9dbb8#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0xf758C3bf7a4E2ad513B371B40c4Bd9A0E9716CF1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"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 Rise ProxyAdminOwner Multisig",
"upgradableBy": [
{
"name": "Rise ProxyAdminOwner Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf758C3bf7a4E2ad513B371B40c4Bd9A0E9716CF1#code"
},
{
"name": "AccessManager",
"isVerified": true,
"address": "eth:0xF90a72FC295DBEf2fD27629Fda4B98Fd3E842d17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract managing access control for proposers and challengers in OPSuccinct.\n* Roles:\n * **challengers**: EOA 3\n * **owner**: Rise ProxyAdminOwner Multisig\n * **proposers**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF90a72FC295DBEf2fD27629Fda4B98Fd3E842d17#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xad92Fa18EB74E46Db844240623124BF46589db4C",
"sinceTimestamp": 1767605759,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xad92Fa18EB74E46Db844240623124BF46589db4C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767605759,
"transactionHash": "0x6600d05ac638814f9d013f41343ae316390ec97ae0c30fe4147a82510859779a",
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
}
],
"description": "Main entry point for users depositing ETH.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xad92Fa18EB74E46Db844240623124BF46589db4C#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x553257678Dd11a6668a92934AAB005e420c6535A",
"sinceTimestamp": 1767605759,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x553257678Dd11a6668a92934AAB005e420c6535A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCf32d8c4Be30cA330c1150916A71A651bADd70d5"
],
"implementations": [
"eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Main entry point for users depositing ERC20 token that do not require custom gateway.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x553257678Dd11a6668a92934AAB005e420c6535A#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct FDP v3.4.1-rise.7",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/risechain/op-succinct/tree/v3.4.1-rise.7/programs/aggregation",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1.succinct.xyz | bash`, then `~/.sp1/bin/sp1up`.\n2. Install docker and make sure it is running: `docker ps`.\n\nVerify:\n\n1. Checkout the correct tag in [risechain/op-succinct](https://github.com/risechain/op-succinct) repo: `git checkout v3.4.1-rise.7`. Commit hash should be `a99569fa608127fdd4d5d73722184362c6283d6b`.\n2. Reproducibly rebuild the EigenDA range ELF from source: from `programs/range/eigenda` run `~/.sp1/bin/cargo-prove prove build --elf-name eigenda-range-elf-embedded --docker --tag v5.2.4 --output-directory ../../../elf --features embedded`.\n3. Reproducibly rebuild the aggregation ELF from source: from `programs/aggregation` run `~/.sp1/bin/cargo-prove prove build --elf-name aggregation-elf --docker --tag v5.2.4 --output-directory ../../elf`.\n4. From the repo root run `cargo run --bin config --release --features eigenda` to print the range verification key hash and the aggregation verification key hash. The eigenda feature selects the EigenDA range ELF, whose in-circuit derivation verifies EigenDA DA certificates via hokulea and canoe.\n",
"hash": "0x0061b26157718f96a20ea50c52a485dea3b6967139328dc7e07fece56f557bda"
},
{
"title": "Range program of OP Succinct FDP v3.4.1-rise.7",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks in fault dispute proof mode. Data availability layer is set to EigenDA.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/risechain/op-succinct/tree/v3.4.1-rise.7/programs/range/eigenda",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install sp1 toolchain: `curl -L https://sp1.succinct.xyz | bash`, then `~/.sp1/bin/sp1up`.\n2. Install docker and make sure it is running: `docker ps`.\n\nVerify:\n\n1. Checkout the correct tag in [risechain/op-succinct](https://github.com/risechain/op-succinct) repo: `git checkout v3.4.1-rise.7`. Commit hash should be `a99569fa608127fdd4d5d73722184362c6283d6b`.\n2. Reproducibly rebuild the EigenDA range ELF from source: from `programs/range/eigenda` run `~/.sp1/bin/cargo-prove prove build --elf-name eigenda-range-elf-embedded --docker --tag v5.2.4 --output-directory ../../../elf --features embedded`.\n3. Reproducibly rebuild the aggregation ELF from source: from `programs/aggregation` run `~/.sp1/bin/cargo-prove prove build --elf-name aggregation-elf --docker --tag v5.2.4 --output-directory ../../elf`.\n4. From the repo root run `cargo run --bin config --release --features eigenda` to print the range verification key hash and the aggregation verification key hash. The eigenda feature selects the EigenDA range ELF, whose in-circuit derivation verifies EigenDA DA certificates via hokulea and canoe.\n",
"hash": "0x02850d082ab676631569bfa7057944a05f22f42c12ffa15b0ae30a6153dfe162"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1790947041,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -33
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729268843,
"transactionHash": "0x9c8b285f3c5712386493b015fbcb0f92e5e6d9e987ddb6c8646c49959620bd04",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1729268843,
"transactionHash": "0x9c8b285f3c5712386493b015fbcb0f92e5e6d9e987ddb6c8646c49959620bd04",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1738696943,
"transactionHash": "0x82657fe86f99698eae75f1e2104fa211e67b641b7e58450aa8ceabf962798b16",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1743095267,
"transactionHash": "0x92c1aabdc2a908d40bee5207ba851be0a7f91747e4d86f4aa23201d5605d7f75",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747087643,
"transactionHash": "0x0366efdb1fc5b705d59c1e88cdc9e9118eea686227b8062627b8bf65be4b6a56",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751396099,
"transactionHash": "0x3fb1153770857ac1714eb72d2cc7a76ebf1160bb8e844e8aa08164c72a25d419",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755018299,
"transactionHash": "0x97141968736d3d95e4cbf3c10293b7bd56f43ad6d4e3bed854e0025ed2d2d7e4",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761612755,
"transactionHash": "0x1dd8584ad0e2a106271e682fbec33c6066933fbf4c243f46eba13707e1ed729f",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769536979,
"transactionHash": "0x02b9e48f0f8550fe61d750085088df57ec084a55468a6b259bc600b2d9f9a8de",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1771011071,
"transactionHash": "0x13067d49b849a7460f1f8a587edaee878b49dc7b2278ce8b16e223ca042ddbb9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1785855227,
"transactionHash": "0x6c47ec4cd22ac63a14d8e2e8f6f931af61e7b734b54153e63cd7970b2c598d4e",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786453211,
"transactionHash": "0xeb2beafc685e0ee4854da37ea0f13053576e4a266f020562743c9b3060f9858b",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786896143,
"transactionHash": "0x8425fcca675dd5870508e9d44ed69fd8a947103cf051816da2eeae3e985a0dad",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "The main contract defining the Layer 2. Operator actions like commiting blocks, providing ZK proofs and executing batches ultimately target this contract which then processes transactions. During batch execution it processes L1 --> L2 and L2 --> L1 transactions.\n* Roles:\n * **getAdmin**: SophonZkEvmAdmin; ultimately SophonChainAdminMultisig\n * **getTransactionFilterer**: SophonTransactionFilterer\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x05eDE6aD1f39B7A16C949d5C33a0658c9C7241e3#code"
},
{
"name": "AvailL1DAValidator",
"isVerified": true,
"address": "eth:0x8f50d93B9955B285f787043B30B5F51D09bE0120",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies that the validiums data was made available on Avail by querying the AvailBridgeV1 on Ethereum for a merkle proof of inclusion.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8f50d93B9955B285f787043B30B5F51D09bE0120#code"
},
{
"name": "BridgeHub",
"isVerified": true,
"address": "eth:0x303a465B659cBB0ab36eE643eA362c509EEb5213",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520639,
"transactionHash": "0xdbb03a14ea223de3db4ac0916e78123bd0a1dde68e98952326d8382d29ac4d61",
"implementations": [
"eth:0x12f893689f9603991a8c22C249FFd0509Be95661"
]
},
{
"timestamp": 1725887363,
"transactionHash": "0x21aec24a9df97ce4886d699314be627b0818da4d1987349421fb3df102c43f2b",
"implementations": [
"eth:0x509dA1BE24432F8804C4A9FF4a3c3f80284CDd13"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x0029e562c0b54C0b88cB22adF4346DbfEC87400c"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xb720523EC3c615b069453bF4B0584CEbF034706f"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcdd748d4A80CE6831080f1dA2CA9084CDa87Cc87"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x08A98B1048Fb61E9Fff7d7d98305aC6286Ae9F32"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0xc89423b4909080fB8F8A43dF5E1C27001e55C24B"
]
}
],
"description": "The main registry (hub) for all the contracts in the ZK stack cluster and central entrypoint for bridge transactions. Stores important mappings like from chainId to diamond address, from chainId to parent CTM, from chainId to base token etc. A clone of Bridgehub is also deployed on each L2 chain, but this clone is only used on settlement layers.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x303a465B659cBB0ab36eE643eA362c509EEb5213#code"
},
{
"name": "MessageRoot",
"isVerified": true,
"address": "eth:0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109035,
"transactionHash": "0xc47e24e8cc6c7a493bbb1a46b74f1ff113fad2e35d7596aa688df5bf0402fc65",
"implementations": [
"eth:0x19347Fb8eD3E8e35eb4a01c8B18Bd330194Cf0ad"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x382fb241396eA915108e7B7Ce1adE1322bA73aeE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x669ed5BB1377C917333e7d4223ce3419EE4099fD"
]
}
],
"description": "Aggregates remote bridge message roots from all ZK stack chains. To be used with the Gateway when deployed.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD#code"
},
{
"name": "CTMDeploymentTracker",
"isVerified": true,
"address": "eth:0x6078F6B379f103de1Aa912dc46bb8Df0c8809860",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109203,
"transactionHash": "0x8b5a21b3473a638022e84097a99c4668bb0a454686b737e87957729c4822741b",
"implementations": [
"eth:0x1E405E5cdF127Dc98Eb490AB0e97345f892Ff7E1"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x00e9d8A4b35C32880A10Feb391aDEDA0D3F90991"
]
}
],
"description": "Asset deployment tracker where the 'asset' is a ChainTypeManager. The registering of asset IDs for ChainTypeManagers is necessary to be able to migrate them to a given settlement layer, for example the Gateway.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6078F6B379f103de1Aa912dc46bb8Df0c8809860#code"
},
{
"name": "RollupL1DAValidator",
"isVerified": true,
"address": "eth:0x72213dfe8CA61B0A782970dCFebFb877778f9119",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that verifies the data availability of ethereum calldata and blobs. Can be used by ZK stack rollups as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72213dfe8CA61B0A782970dCFebFb877778f9119#code"
},
{
"name": "L1AssetRouter",
"isVerified": true,
"address": "eth:0x8829AD80E425C646DAB305381ff105169FeEcE56",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109071,
"transactionHash": "0x2c945c00f7a9f08b1a0bc749a08d76ca4cd5ee6f8890011ab43898e9fa1fcdf2",
"implementations": [
"eth:0x20E17D0280DeaBb78f7c193E3Ef05F62adC0936E"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xcaD49896F3d54d9A93eDdBFd370c8A4a1b239315"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x0cb7f11BA981E13598D70625dF8f4597d59f2F4F"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x2386Bc2E26f39b72f0D4FDE0c07D68e4eEFfC725"
]
}
],
"description": "Canonical central asset router for all ZK stack chains. Routes deposits and withdrawals to the respective asset handlers (like the L1NativeTokenVault); does not escrow funds itself.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8829AD80E425C646DAB305381ff105169FeEcE56#code"
},
{
"name": "ChainTypeManager",
"isVerified": true,
"address": "eth:0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717520663,
"transactionHash": "0x514bbf46d227eee8567825bf5c8ee1855aa8a1916f7fee7b191e2e3d5ecba849",
"implementations": [
"eth:0x8279B7E48fA074f966385d87AEf29Bd031e54fD5"
]
},
{
"timestamp": 1722934619,
"transactionHash": "0xc1e73b06359759201b76ab7654e0bd49011f33c0230dfc24423985fbf36ea817",
"implementations": [
"eth:0xed1Dc7F0Be2B19cb02a2476150C8ea24A37c5274"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xb39B175a5E0945F2FB6A7F31764c0e31D9cF5b75"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xA3bCcAEe38cb0273A979118a0DE483E47D50F6Cb"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x6D598c77AF57Bfa17201483400615c61819dD45A"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0x345314c7E4af84B763d98d23f772622E23AfB5CE"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x4aB7204e4205c96C32E23ADa9191720976dC084f"
]
}
],
"description": "Defines L2 diamond contract versions, creation and upgrade data and the proof system for all ZK stack chains connected to it. ZK chains are children of this central contract and can only upgrade to versions that were previously registered here. The current protocol version is 0,30,1.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc2eE6b6af7d616f6e27ce7F4A451Aedc2b0F5f5C#code"
},
{
"name": "L1Nullifier",
"isVerified": true,
"address": "eth:0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1717521479,
"transactionHash": "0xce3d72f23297a281cb58502dcc6a6c029489316a2faf9c4ef83141b1b254017c",
"implementations": [
"eth:0xCba1aF8f0bB223b2544F8eB8f69d1c7960f788dB"
]
},
{
"timestamp": 1724658671,
"transactionHash": "0xaec33529b74f8f9d56d7aa568c6358be299228a85e49ea85cb106eca5af7367c",
"implementations": [
"eth:0xb56A8225A745756DD215faf22E4796f373561AcD"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0xF5A14DCdde1143443f06033200D345c2a2828A99"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0xda2866AF0e170d0867a3F3bB52Db10D6E09Df78A"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0x3B4FD84B27fE7B9247d5B8C6d1A29B2889C81518"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xC6f08EFb7BA78f40d00F41aFAC00211d59eb9431"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x71759C4eA628293F5a99aAB1585dF1c8dA4718e0"
]
}
],
"description": "Contract responsible for bookkeeping L1 bridging transactions. Used to finalize withdrawals and reclaim failed deposits. Does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB#code"
},
{
"name": "ProtocolUpgradeHandler",
"isVerified": true,
"address": "eth:0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e"
],
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1738855967,
"transactionHash": "0xa3d1fa107e6dc4ce67d92a5af74aa7dc34602c2a1d46727790819c1f974bed95",
"implementations": [
"eth:0xD5e9D3d483a93d03D8d604CC79dC9f2F4B78C604"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x0A67f0Fd2f7523057039F14969Fe23a5f620f19A"
]
},
{
"timestamp": 1760519471,
"transactionHash": "0x2309df20dd1cb3f3a3289e97517d10d399989292f966578240ec387246a13e61",
"implementations": [
"eth:0x36625Bd3dDB469377C6e9893712158cA3c0cC14B"
]
}
],
"description": "The central upgrade contract and Governance proxy for all ZK stack contracts. Accepts successful DAO proposals from L2 and emergency proposals from the EmergencyUpgradeBoard. The three members of the EmergencyUpgradeBoard also have special roles and permissions in this contract.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **emergencyUpgradeBoard**: EmergencyUpgradeBoard\n * **guardians**: Guardians\n * **l2_protocol_governor**: ProtocolTimelockController; ultimately ZkProtocolGovernor\n * **securityCouncil**: SecurityCouncil",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE30Dca3047B37dc7d88849dE4A4Dc07937ad5Ab3#code"
},
{
"name": "RollupDAManager",
"isVerified": true,
"address": "eth:0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple registry for allowed DA address pairs for the 'rollup' data availability mode (can be permanently enforced with isPermanentRollup=true). Rollup DA address pairs (especially the L1 part) usually point to contracts that validate if data was made available on Ethereum.\n* Roles:\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45#code"
},
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "SophonZkEvmAdmin",
"isVerified": true,
"address": "eth:0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets SophonChainAdminMultisig act through it.\n* Roles:\n * **owner**: SophonChainAdminMultisig\n * **tokenMultiplierSetter**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE1eeA4D6443b19D373Fe99De838b930Ef0ac2Ad3#code"
},
{
"name": "EraChainAdminProxy",
"isVerified": true,
"address": "eth:0x2cf3bD6a9056b39999F3883955E183F655345063",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Matter Labs Multisig act through it.\n* Roles:\n * **owner**: Matter Labs Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2cf3bD6a9056b39999F3883955E183F655345063#code"
},
{
"name": "L1USDCBridge",
"isVerified": true,
"address": "eth:0xf553E6D903AA43420ED7e3bc2313bE9286A8F987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1734114251,
"transactionHash": "0x5428361f75c29b1f0e9959bd21fef8fb179b22f009f314e6403a305770e8735f",
"implementations": [
"eth:0x86dF12f51E3531689e0615bb2F739ddf01337715"
]
},
{
"timestamp": 1737484199,
"transactionHash": "0x152dc623c52d7f2b058ec5b4dfb67f5e0fee14c04dc9c0db4ae02ed2dc4ab998",
"implementations": [
"eth:0x2ccD5486Ea1b2A52dcD387c01314F6A328f66cbB"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to EraVerifierFflonk or EraVerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1e4c534e7ce1FF5621Ea506D99b367D7d8EFbE3e#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EraChainAdminProxy",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B#code"
},
{
"name": "L1NativeTokenVault",
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Canonical central asset escrow for all ZK stack chains.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1#code"
},
{
"name": "ChainAssetHandler",
"isVerified": true,
"address": "eth:0xDd5CB8B9037357B4cD37391A073798f8aaB61076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1758286391,
"transactionHash": "0x960c2e5bb98f4b9a07087b3b50fdc4681bbea1467aab3748dbb0050311f54ede",
"implementations": [
"eth:0xaa180C70126f751C164465638770B865965A744B"
]
}
],
"description": "Specialized contract for managing chain assets, i.e. chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EmergencyUpgradeBoard\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"upgradableBy": [
{
"name": "EmergencyUpgradeBoard",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDd5CB8B9037357B4cD37391A073798f8aaB61076#code"
},
{
"name": "ServerNotifier",
"isVerified": true,
"address": "eth:0xfca808A744735D9919EEBe4660B8Fd897456Ce31",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x257FC0c3EB02F7ba8C0fd3eD57692A9c1ee6D29B"
],
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747199375,
"transactionHash": "0xbeb7447fc88b154a4730b01cb1a75b7093095056e88818c3659253111d06e66f",
"implementations": [
"eth:0x555D040F4A089D1dF14B372a87C5aF8FA37BDB7A"
]
},
{
"timestamp": 1784714999,
"transactionHash": "0xdbd5285f559e4ae32457b8425f67e1dfe76575c40999499e0b55d5cf985b85d8",
"implementations": [
"eth:0x260813B0DAf35dda95c41F39c6Cc3F24dc87028A"
]
}
],
"description": "A simple contract that can be called by the ChainAdmin to emit notifications about chain migrations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Matter Labs Multisig",
"upgradableBy": [
{
"name": "Matter Labs Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfca808A744735D9919EEBe4660B8Fd897456Ce31#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 7\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"zksync2": [
{
"name": "ProtocolTimelockController",
"isVerified": true,
"address": "zksync:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 0s.\n* Roles:\n * **canceller**: ZkProtocolGovernor\n * **executor**: ZkProtocolGovernor\n * **proposer**: ZkProtocolGovernor\n * **timelockAdmin**: ProtocolTimelockController; ultimately ZkProtocolGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714#code"
},
{
"name": "ZkToken",
"isVerified": true,
"address": "zksync:0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC"
],
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
},
"chain": "zksync2",
"pastUpgrades": [
{
"timestamp": 1716317326,
"transactionHash": "0x5bfce59c2ad18019ef20d58a3f1ec496cdc85537fc9564c932f7dcbbb2a15b56",
"implementations": [
"zksync:0x3931e73ebA79a7C898D3b0e02c7C62bA4F11cB14"
]
},
{
"timestamp": 1718011538,
"transactionHash": "0xa6bc022ba0f60ac6f10a6efb84b261e9ca1b327a611bdd7a1f4d37cc9b027a3c",
"implementations": [
"zksync:0x01a6715d3560241E09E865a46122bf347A576c09"
]
},
{
"timestamp": 1765195612,
"transactionHash": "0x749b9e6eed328052d679eb86639be807b4acf811ac8786f730b45258ba41ce6f",
"implementations": [
"zksync:0x4fcd824D304e9b1584CdBb582c104BDcbFb11274"
]
}
],
"description": "The ZK token contract on ZKsync Era. Mintable through access control roles. Used for voting in the ZK stack governance system.\n* Roles:\n * **admin**: ZkTokenProxyAdmin; ultimately ProtocolUpgradeHandler_l2Alias\n * **defaultAdmin**: ProtocolUpgradeHandler_l2Alias\n * **minterAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"upgradableBy": [
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E#code"
},
{
"name": "ZkTokenProxyAdmin",
"isVerified": true,
"address": "zksync:0xdB1E46B448e68a5E35CB693a99D59f784aD115CC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "* Roles:\n * **owner**: ProtocolUpgradeHandler_l2Alias",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xdB1E46B448e68a5E35CB693a99D59f784aD115CC#code"
},
{
"name": "ZkTokenTimelockController",
"isVerified": true,
"address": "zksync:0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zksync2",
"description": "Timelock contract allowing the queueing of transactions with a minimum delay of 3d.\n* Roles:\n * **canceller**: ZkTokenGovernor\n * **executor**: ZkTokenGovernor\n * **proposer**: ZkTokenGovernor\n * **timelockAdmin**: ZkTokenTimelockController; ultimately ZkTokenGovernor",
"discoveryDrivenData": true,
"url": "https://explorer.zksync.io/address/0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d#code"
}
]
},
"escrows": [
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": [
"ETH",
"USDT",
"BEAM",
"stAethir",
"PEPE",
"wstETH",
"weETH",
"sDAI",
"DAI",
"WBTC",
"stAZUR",
"stAVAIL",
"OPN",
"SOPH"
],
"premintedTokens": [
"SOPH"
],
"contract": {
"isVerified": true,
"address": "eth:0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739109131,
"transactionHash": "0x50619c1506e8e93cc28017847b5690b6a0784bc2b08c1dbb8555b71525b72351",
"implementations": [
"eth:0x40B1060a114380f40faC6869c5B383f47e61530c"
]
},
{
"timestamp": 1745843591,
"transactionHash": "0x1fbaad1ac4bffb295da999881a37c1a52751ccad9b1533c0d2400fdca3631132",
"implementations": [
"eth:0xDf3a3E51aEABB5da548F854B608E3C9De1ae2947"
]
},
{
"timestamp": 1750343219,
"transactionHash": "0x56b626590d1042673f7cf09f480533e8084d3e6141dc079fba657b1cc2ec17eb",
"implementations": [
"eth:0xBa05B8B761386289Ba413a74AF1933d6a76E1b52"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x8E1C5A8c5d8C33ed0eC756d6f4006f2D875bA083"
]
}
],
"description": "Shared bridge for depositing tokens to Treasure and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4",
"l2EtherAddress": "0x72af9F169B619D85A47Dfa8fefbCD39dE55c567D",
"tokensToAssignFromL1": [
"SOPH"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.29.2",
"description": "EraVM program that proves the correct execution of a batch of ZK Stack L2 blocks.",
"proverSystemProject": "boojum",
"programUrl": "https://github.com/matter-labs/era-contracts/blob/v0.29.2/system-contracts/bootloader/bootloader.yul",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install npm and yarn: `npm install --global yarn`\n2. Install hardhat: `npm install -g hardhat`\n3. Install foundry-zksync: `curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash` from [here](https://foundry-book.zksync.io/introduction/installation/).\n\nVerify:\n\n1. Checkout the correct branch in [era-contracts](https://github.com/matter-labs/era-contracts) repo: `git checkout v0.29.2`. Commit hash should be `dbfc9b5a40d68007dc405a9b669230104c1646e4`.\n2. Execute recompute_hashes.sh script: `chmod +x recompute_hashes.sh` and `./recompute_hashes.sh`. Note that the script may require a specific version of `foundryup-zksync` and it will suggest the command to install it. However you might need to manually clear git working tree in the repo foundry-zksync (probably in ~/.foundry/matter-labs/foundry-zksync) to change versions.",
"hash": "0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 4d 3h - 8d 3h delay on code upgrades unless upgrade is initiated by the EmergencyUpgradeBoard in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1791458527,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+28 -14
+28 -14
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
"sinceTimestamp": 1776599267,
"untilTimestamp": 1791526391
},
{
"projectId": "forknet",
"sinceTimestamp": 1753882500
},
{
"projectId": "katana",
"sinceTimestamp": 1751328000
},
{
"projectId": "blobstream",
"sinceTimestamp": 1717608107
"sinceTimestamp": 1717608107,
"untilTimestamp": 1791526391
},
{
"projectId": "vector",
"sinceTimestamp": 1720128227
"sinceTimestamp": 1720128227,
"untilTimestamp": 1791526391
},
{
"projectId": "sophon",
"sinceTimestamp": 1745341091
"sinceTimestamp": 1745341091,
"untilTimestamp": 1791526391
},
{
"projectId": "lens",
"sinceTimestamp": 1745359200
"sinceTimestamp": 1745359200,
"untilTimestamp": 1791526391
},
{
"projectId": "plumenetwork",
"sinceTimestamp": 1746735060,
"untilTimestamp": 1763420400
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1745880540,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1734562800
"sinceTimestamp": 1734562800,
"untilTimestamp": 1791526391
},
{
"projectId": "winr",
"sinceTimestamp": 1747088280
"sinceTimestamp": 1747088280,
"untilTimestamp": 1791526391
},
{
"projectId": "molten",
"sinceTimestamp": 1731480840
"sinceTimestamp": 1731480840,
"untilTimestamp": 1779997282
},
{
"projectId": "taiko",
"sinceTimestamp": 1730452800
"sinceTimestamp": 1730452800,
"untilTimestamp": 1791526391
},
{
"projectId": "lumia",
"sinceTimestamp": 1753882500
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "xlayer",
"sinceTimestamp": 1753882500
"sinceTimestamp": 1753882500,
"untilTimestamp": 1791526391
},
{
"projectId": "silicon",
"sinceTimestamp": 1753882500
},
{
"projectId": "facet",
"sinceTimestamp": 1751407200
},
{
"projectId": "ethscriptions",
"sinceTimestamp": 1767735587
},
{
"projectId": "ternoa",
"sinceTimestamp": 1753882500
},
{
"projectId": "wirex",
"sinceTimestamp": 1753882500
},
{
"projectId": "penchain",
"sinceTimestamp": 1753882500
},
{
"projectId": "phala",
"sinceTimestamp": 1736290800,
"untilTimestamp": 1773378287
},
{
"projectId": "mantle",
"sinceTimestamp": 1757973600
"sinceTimestamp": 1757973600,
"untilTimestamp": 1791526391
},
{
"projectId": "zircuit",
"sinceTimestamp": 1756072800,
"untilTimestamp": 1785852695
},
{
"projectId": "morph",
"sinceTimestamp": 1737359447,
"untilTimestamp": 1780559831
},
{
"projectId": "gpt",
"sinceTimestamp": 1753882500
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "witness",
"sinceTimestamp": 1753882500
},
{
"projectId": "kroma",
"sinceTimestamp": 1739228400
"sinceTimestamp": 1739228400,
"untilTimestamp": 1791526391
},
{
"projectId": "haust",
"sinceTimestamp": 1756808195
},
{
"projectId": "celo",
"sinceTimestamp": 1765324800
"sinceTimestamp": 1765324800,
"untilTimestamp": 1791526391
},
{
"projectId": "rise",
"sinceTimestamp": 1767605759
"sinceTimestamp": 1767605759,
"untilTimestamp": 1791526391
},
{
"projectId": "appchain",
"sinceTimestamp": 1776165024,
"untilTimestamp": 1780326419
}
],
"proofSystemInfo": "## Description\n\nSP1 Turbo is a 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 targets [100 bits of security based on unproven proximity gaps conjecture](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#conjectures-for-fris-security), so the actual security is likely lower.\n\n## Proof system\n\nSP1 Turbo proves execution of a 32 bit RISC-V VM (RV32IM) using several ZK circuits connected by lookup arguments, as implemented in Plonky3. VM execution trace is split into several chunks that could be proven in parallel with a STARK proving system. The 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### zkVM component\n\nVerifies execution of a RISC-V program in a zkVM. See [here](https://docs.succinct.xyz/docs/v5/sp1/security/rv32im-implementation) for more details on the exact RISC-V standard implemented. Uses [Plonky3](https://github.com/Plonky3/Plonky3) STARK toolkit with AIR arithmetization and FRI-based polynomial commitment scheme within the [BabyBear field](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#hash-functions-and-the-random-oracle-model).\n\n### Recursion circuits\n\nSP1 provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/v5/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\n### Final wrap\n\nSP1 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/v5/sp1/generating-proofs/proof-types#compressed)). The [gnark](https://github.com/Consensys/gnark) 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, see [below](#trusted-setups) for more details.",
"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": "RISCV32",
"type": "ISA",
"name": "RISC-V 32bit",
"description": "Free and open-source universal 32-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."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"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": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"id": "SP1TurboGroth16",
"name": "SP1 Turbo Groth16 circuit-specific setup",
"participantCount": 7,
"risk": "red",
"shortDescription": "Succinct's internally run trusted setup for SP1 Turbo (release v5.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was run among 7 contributors to the SP1 project without public calls to participate.",
"longDescription": "SP1 Turbo 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 7 contributors to the SP1 project without public calls to participate. It generated setup parameters for Groth16 wrapper of SP1 zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: [https://docs.succinct.xyz/docs/v5/sp1/security/security-model#options](https://docs.succinct.xyz/docs/v5/sp1/security/security-model#options).\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): [https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz](https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz)."
}
],
"verifierHashes": [
{
"hash": "0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7",
"name": "SP1 Turbo Plonk v5.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0xFF5Adab685362DC4C33536a65aF5873738D1216B"
},
{
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
},
{
"address": "eth:0x059adC0Db833f7cCb12dC41BE0017626337AfA63"
},
{
"address": "eth:0x294a1Ee119C4B2510530572481A6a50892A9ae9f"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 50 GiB of memory on the peak. Also, due to some os indeterminism, \nthe sp1 repo must be cloned into `/home/aurel/dev/sp1-wip/` directory, so we recommend creating `aurel` user on an Ubuntu 24.04 machine.\n\n1. Create a new `aurel` user on a linux os and login as this user.\n2. Install necessary dependencies: rust, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsp1up\n```\n\n3. Clone sp1 repo in the correct directory, set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\nmkdir -p dev/sp1-wip/\ncd dev/sp1-wip/\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v5.0.0 # commit should be 38f0f143dece864e8bffafad64196a924f190336\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": "0xa4594c59bbc142f3b81c3ecb7f50a7c34bc9af7c4c444b5d48b795427e285913",
"name": "SP1 Turbo Groth16 v5.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v5.0.0/crates",
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5"
},
{
"address": "arb1:0xC513d6E8C8f915B1DA2f6eAC4C6d755ff3d5f21D"
}
],
"verificationStatus": "unsuccessful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "We performed the following steps, which according to the Succinct team should have lead to a successful regeneration of the verifier's hash.\nHowever these steps produced a verifier smart contract with `VERIFIER_HASH = 0xf7ba6320608dadd905f3483d51c2fa0fb55473e3136bdfb37c96a10f158ab9fe`, which differs from the value onchain. \n\n1. Create a new `aurel` user on a linux os and login as this user.\n2. Install necessary dependencies: rust, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsp1up\n```\n\n3. Clone sp1 repo in the correct directory, set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\nmkdir -p dev/sp1-wip/\ncd dev/sp1-wip/\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v5.0.0 # commit should be 38f0f143dece864e8bffafad64196a924f190336\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```"
}
]
}
+14 -0
+14 -0
[
{
"id": "d14ac086",
"date": "Mon, 12 Oct 2026 07:57:28 GMT",
"timestamp": 1791789583,
"description": "The shared LayerZero executor on Ethereum upgraded to an unverified implementation.\n\n[Executor diff](https://disco.l2beat.com/diff/eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805/eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0).",
"isHighSeverity": true,
"changeCount": 17,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LayerZero Executor (eth:0x173272739Bd7Aa6e4e214714048a9fE699453059) [N/A] {\n +++ description: Upgradeable contract referenced as an executor by LayerZero message libraries. Its current implementation is unverified, so execution and fee handling cannot be checked against source.\n template:\n- \"layerzero/LayerZeroExecutor\"\n sourceHashes:\n- [\"0x4a43bdaa7c21f911802bc9e3457cf5fef469f43b372ea6944d53823caf2f53f2\",\"0x914fbceaba4b6418a09bd2104433bfcb47eed119a783154a8f7f6301c06a6d2b\"]\n values.$implementation:\n- \"eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805\"\n+ \"eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0\"\n values.$pastUpgrades.3:\n+ [\"2026-10-02T00:08:11.000Z\",\"0x682248f5070d80b5c52e90030913f204331e1f0516ed6a0e5d471e6417c3fb52\",[\"eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.allowlistSize:\n- 0\n values.DEFAULT_ADMIN_ROLE:\n- \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.defaultMultiplierBps:\n- 12000\n values.endpoint:\n- \"eth:0x1a44076050125825900e736c501f859c50fE728c\"\n values.localEidV2:\n- 30101\n values.paused:\n- false\n values.priceFeed:\n- \"eth:0xC03f31fD86a9077785b7bCf6598Ce3598Fa91113\"\n values.receiveUln301:\n- \"eth:0x245B6e8FFE9ea5Fc301e32d16F66bD4C2123eEfC\"\n values.workerFeeLib:\n- \"eth:0x4e9C57FD2Bd0f47C43F2D62642C1b05894fb9ed0\"\n implementationNames.eth:0xfE9AB78eD4f9f3DbB168d9f5E5213d78605C9805:\n- \"Executor\"\n implementationNames.eth:0x1Ed8E51E8AB2A00B2805aEcf2C6aC0BB6521eaE0:\n+ \"\"\n unverified:\n+ true\n }\n```"
}
]
},
{
"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```"
}
]
}
]
+697 -193
+7 -0
[
{
"title": "Bridge recalls disabled",
"url": "https://etherscan.io/tx/0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4",
"date": "2026-10-12T00:00:00Z",
"description": "Failed bridge messages must be retried successfully, with no source-chain refund path.",
"type": "general"
},
{
"title": "Unzen upgrade: validity rollup",
"url": "https://etherscan.io/tx/0x64875b5b84b41b520551854696c0ce408fb3e0aa2ede604cc95a5919b6140ea7",
"date": "2026-08-03T00:00:00Z",
"description": "Every proven proposal range now requires at least one SP1 or RISC0 validity proof.",
"type": "general"
},
{
"title": "Proof system exploit",
"url": "https://x.com/taikoxyz/status/2068857506718515320",
"date": "2026-06-22T00:00:00.00Z",
"description": "An attacker exploits a vulnerability in the SGX proof system and steals USD ~1.7M.",
"type": "incident"
},
{
"title": "Preconfs introduction",
"url": "https://taiko.mirror.xyz/rbgD_KM06QkDe1t0Gw1wI_MLvwobTS1PqEIfstZRo48",
"date": "2025-08-11T00:00:00.00Z",
"description": "Taiko implements preconfs - whitelisted actors provide fast soft confirmations for L2 txs.",
"type": "general"
},
{
"title": "Plonky3 vulnerability patch",
"url": "https://x.com/SuccinctLabs/status/1929773028034204121",
"date": "2025-06-04T00:00:00.00Z",
"description": "SP1 verifier is patched to fix critical vulnerability in Plonky3 proof system (SP1 dependency).",
"type": "incident"
},
{
"title": "Taiko Pacaya Hardfork",
"url": "https://taiko.mirror.xyz/pIchmo0E-DfSySCzL52BFbus54Z3XJEO0k0Ptqqpm_I",
"date": "2025-05-21T00:00:00.00Z",
"description": "Taiko Pacaya hardfork replaces the contestable rollup design with a batch based protocol.",
"type": "general"
},
{
"title": "TAIKO Token Airdrop",
"url": "https://taiko.mirror.xyz/VSOtILX2DQsc_6IMt5hBT1fEYSH8243pZ8IA_pBfHks",
"date": "2024-06-05T00:00:00.00Z",
"description": "TAIKO token launches.",
"type": "general"
},
{
"title": "Mainnet Launch",
"url": "https://taiko.mirror.xyz/Pizjv30FvjsZUwEG-Da7Gs6F8qeDLc4CKKEBqy3pTt8",
"date": "2024-05-27T00:00:00.00Z",
"description": "Taiko is deployed on Ethereum mainnet.",
"type": "general"
},
{
"title": "Taiko Based Sequencing Upgrade",
"url": "https://taiko.mirror.xyz/_oKlnpzKSOxGILyy4WlvpUmYEqD7BFxzmRo3XETlJqE",
"date": "2024-06-06T00:00:00.00Z",
"description": "Proposing blocks on Taiko is now permissionless.",
"type": "general"
},
{
"title": "Taiko enabled SP1 and Risc0 proving",
"url": "https://etherscan.io/tx/0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"date": "2024-11-01T00:00:00.00Z",
"description": "TaikoL1 smart contract upgraded to verify SP1 and Risc0 proofs of Taiko L2 blocks.",
"type": "general"
}
]
+18 -4
{
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of blobs. This ensures that it will be available for enough time.",
"references": [],
"risks": []
}
],
"exitMechanisms": [
{
"name": "Regular exit",
"description": "The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is finalized the funds become available for withdrawal on L1. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.",
"risks": [],
"references": []
"description": "Users initiate withdrawals on Taiko and claim them on Ethereum with a Merkle proof after state finalization. ETH and ERC20 releases consume configured withdrawal quotas. Failed deliveries remain retryable, but source-chain refunds are disabled on both bridges.",
"risks": [
{
"category": "Funds can be frozen if",
"text": "a bridge message cannot be delivered successfully, because failed-message refunds are disabled."
}
],
"references": [
{
"title": "Bridge - processMessage, retryMessage and whenRecallEnabled",
"url": "https://etherscan.io/address/0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6#code"
},
{
"title": "ERC20Vault - onMessageInvocation",
"url": "https://etherscan.io/address/0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92#code"
}
]
}
],
"forceTransactions": {
"name": "Users can enqueue transactions",
"description": "Users can submit a forced inclusion directly to `MainnetInbox` on L1 by publishing a blob containing one L2 block manifest and calling `saveForcedInclusion()`.\nRequests are stored in a FIFO queue and cost a dynamic fee that starts at 0.001 ETH. The fee increases linearly with the queue size and doubles when 50 requests are pending.\nAfter 9m 36s, a request is due. Every subsequent proposal must process the due requests at the head of the queue, up to ten per proposal, before the proposer's own derivation source. This prevents an active proposer from advancing the chain while selectively skipping a due request.\nHowever, `propose()` still unconditionally checks `PreconfWhitelist`. The configured 1d 1h 36m permissionless inclusion threshold is not used, so users and other unpermissioned actors cannot process the queue themselves. If all whitelisted proposers stop, the queue and the whole chain stop progressing.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator is offline or refuses to process the queue."
}
],
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, saveForcedInclusion function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, propose function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
}
]
},
"operator": {
"name": "The system uses whitelist-based sequencing and proving",
"description": "The system uses a whitelist-based sequencing mechanism to allow for fast preconfirmations on the L2. On the L1, batch proposing is permissioned through the `PreconfWhitelist` contract, which currently has 2 active operators registered.\nFor each epoch, `PreconfWhitelist` selects a single active operator that can propose to MainnetInbox. There is no fallback proposer path, and non-selected operators cannot propose for the current epoch.\nProving is controlled separately by `ProverWhitelist`, which currently has 2 whitelisted provers.\nWhile the prover whitelist is non-empty, non-whitelisted actors cannot submit proofs. MainnetInbox currently sets minBond=0 and livenessBond=0.\nProving a proposal range requires exactly two proofs and at least one of them must be a ZK proof. Accepted combinations are SGX (Geth or Reth) plus SP1 or RISC0, or SP1 plus RISC0.",
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, propose function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, prove function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "PreconfWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149#code"
},
{
"title": "ProverWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
}
],
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
]
},
"stateValidation": {
"categories": [
{
"title": "Validity proofs",
"description": "Taiko uses a multi-proof system to validate state transitions. Exactly two proofs are required from four available verifiers: SGX (Geth), SGX (Reth), SP1, and RISC0. At least one proof must come from SP1 or RISC0: accepted combinations are either SGX verifier plus either ZK verifier, or SP1 plus RISC0. An SGX-only pair is not accepted. New proposals target a proof submission cadence of 4h. Proving is currently centralized behind ProverWhitelist with 2 whitelisted provers. While the whitelist is non-empty, non-whitelisted actors cannot submit proofs, and the configured permissionless proving delay is not used to open proving. MainnetInbox currently sets minBond=0 and livenessBond=0.",
"references": [
{
"title": "MainnetInbox.sol - Etherscan source code, getConfig function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "MainnetInbox.sol - Etherscan source code, prove function",
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"title": "ProverWhitelist.sol - Etherscan source code",
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
},
{
"title": "ZkRequiredVerifier.sol - Etherscan source code",
"url": "https://etherscan.io/address/0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec#code"
}
],
"risks": []
}
]
},
"upgradesAndGovernance": {
"content": "Taiko Alethia has a governance structure relying primarily on a 4/5 Security Council, checked by a token DAO that is limited to veto permissions. The closed operator whitelists are managed by the 4/6 Taiko Multisig and related EOAs. Governance proposals (both paths) hold all important upgrade and config permissions in the system.\n# Standard proposals\nA threshold of 3 approving Security Council members is required to forward a Standard proposal to the OptimisticTokenVotingPlugin contract. It can be vetoed by 10% of votable TAIKO tokens during a 10d public veto period. If not vetoed, a further 7d timelock applies before the proposal can be executed.\n# Emergency proposals\nEmergency proposals are encrypted at proposal time and can only be read by Security Council members. If approved by 4 Security Council members, they can be immediately decrypted and executed.\n\n# Proof system and operators\nThe proof system currently does not require zk proofs to validate state transitions and state can be finalized with SGX proofs only. The optional zk verifier contracts can be upgraded by Multisigs. Operator roles (sequencer, proposer) are closed and the whitelist is managed by the Taiko Multisig and related EOAs.",
"content": "Taiko Alethia has a governance structure relying primarily on a 4/5 Security Council, checked by a token DAO that is limited to veto permissions. The closed operator whitelists are managed by the 4/6 Taiko Multisig and related EOAs. Governance proposals (both paths) hold all important upgrade and config permissions in the system.\n# Standard proposals\nA threshold of 3 approving Security Council members is required to forward a Standard proposal to the OptimisticTokenVotingPlugin contract. It can be vetoed by 10% of votable TAIKO tokens during a 10d public veto period. If not vetoed, a further 7d timelock applies before the proposal can be executed.\n# Emergency proposals\nEmergency proposals are encrypted at proposal time and can only be read by Security Council members. If approved by 4 Security Council members, they can be immediately decrypted and executed.\n\n# Proof system and operators\nA separate 2/5 Safe controls shared RISC0 verifier routes through a 3d timelock. It can also freeze RISC0 verifiers immediately. Operator roles (sequencer, proposer) are closed and the whitelist is managed by the Taiko Multisig and related EOAs.",
"governanceInfo": {
"securityCouncil": {
"Composition": "**3/5 standard · 4/5 emergency** — 5-member signer set shared by custom Aragon OSx standard and emergency multisig plugins. Members were appointed by the Taiko team rather than elected and include the Taiko Labs multisig and a Taiko co-founder. Members can appoint EOA agents to act for them.",
"Members public": "**Mapped** — Taiko publishes a [member wallet-to-entity mapping](https://github.com/taikoxyz/dao-ui-mono/blob/main/packages/ui/src/data/security-council-profiles.json). The 5 current onchain members are Sebastian Kugler, Aragon, Taiko Labs, Gustavo Gonzalez, Daniel Wang. Gustavo Gonzalez and Daniel Wang sign as plain EOAs rather than multisigs. Each member wallet is mapped to its voting agent onchain.",
"Charter": "**No public charter** — the [DAO values](https://dao-docs.taiko.xyz/understanding-the-dao/taiko-dao-values/) define the council’s security mission and principles, while the [proposal guidelines](https://dao-docs.taiko.xyz/understanding-the-dao/proposal-guidelines/) restrict emergency proposals to protocol-security and integrity matters. Council selection, terms, conflicts, and accountability are not defined in a public charter.",
"Can bypass DAO?": "**Yes, for emergencies** — 4 Security Council approvals execute an encrypted proposal immediately, with no TAIKO-holder veto or delay. Standard proposals require 3 approvals and remain vetoable. The council controls most core upgrades but no longer has permissions over Treasury funds.",
"DAO can override SC?": "**No** — 10% of eligible TAIKO can block a standard proposal but never an emergency one. Token holders cannot create proposals, approve payloads, remove council members, or block emergency proposals; changing the signer list requires another council-approved proposal."
},
"upgrades": {
"Normal upgrade path": "Security Council member creates a public executable payload → 3 council approvals → **10d token-holder veto period** → if less than 10% of eligible TAIKO vetoes, **7d timelock** → permissionless execution of the approved onchain actions.",
"Emergency upgrade path": "**4 Security Council approvals, instant** — proposal metadata and actions stay encrypted while approvals are collected. A council member decrypts the payload, which is integrity-checked against the approved ciphertext and executed without a token-holder veto or timelock; its contents become public upon execution or expiry.",
"Exit window": "**17d standard · 0 emergency** — the standard path provides 10d of public vetoing followed by a 7d timelock. Emergency proposals bypass both."
},
"tokenGovernance": {
"Governance token": "`TAIKO` on Ethereum — 1,000,000,000 total supply, all minted at initialization; the current implementation has no further mint function. One delegated TAIKO equals one veto vote, snapshotted when the proposal is created. The Foundation treasury, DAO controller, canonical ERC20 vault, and zero address are excluded from eligible supply.",
"Voting venue": "[Taiko DAO](https://dao.taiko.xyz/) for onchain vetoes; proposals and temperature checks are discussed on the [Taiko forum](https://community.taiko.xyz/c/formal-governance-proposals-including-temperature-checks-drafts-and-proposals-for-on-chain-voting/9).",
"Proposal threshold": "**No TAIKO threshold** — only a Security Council member can create an onchain proposal. Community members can submit forum proposals, but a council member must sponsor the idea and supply the executable payload.",
"Quorum": "**No approval quorum; 10% veto threshold.** Standard proposals pass optimistically unless at least 10% of eligible TAIKO at the proposal snapshot vetoes. Unused and undelegated eligible tokens still count in the denominator.",
"Execution model": "**Council-gated optimistic veto + permissionless execution.** The Security Council approves the exact onchain actions. Token holders can only veto; if the threshold is not reached and the 7d timelock expires, anyone can call `execute()`. Emergency proposals skip the veto and delay."
}
}
}
}
+48 -26
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "SignerList (Security Council)",
"name": "SignerList (Security Council)",
"description": "A Multisig with 4/5 threshold. \nA 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* Can upgrade **with 7d delay**\n * AutomataDcapV3Attestation [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * Taiko Token [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * MainnetInbox [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * TaikoDAOController [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * AutomataDcapV3Attestation [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * DefaultResolver [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * MainnetERC20Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * DAO [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * SignalService [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * MainnetBridge [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * ProverWhitelist [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * TaikoDAOController [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * PreconfWhitelist [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * Bridge [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * ERC20Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * SignalService [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * L2AddressManager [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * Anchor [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * DelegateController [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with TaikoRisc0Verifier\n * manage trusted RISC Zero image IDs **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with SignerList (Security Council)\n * add/remove members from the Security Council and change its minimum size **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with AutomataDcapV3Attestation\n * manage trusted SGX measurements, revoked certificate serial numbers, TCB info, QE identity, and local report checks **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with EmergencyMultisig\n * manage critical settings (e.g. threshold and multisig settings) for the emergency proposal governance path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with SecureSgxVerifier\n * add SGX instances without DCAP attestation and delete registered instances **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with MainnetInbox\n * pause and unpause the rollup system, activate the inbox, and execute the one-time state recovery path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with TaikoSP1Verifier\n * manage trusted SP1 program verification keys **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * manage trusted SGX measurements, revoked certificate serial numbers, TCB info, QE identity, and local report checks **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with DefaultResolver\n * update the contract address registered for any chainId-name pair **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with OptimisticTokenVotingPlugin\n * manage critical settings (e.g. thresholds, delays and proposal acceptance criteria) for all governance proposals **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with MainnetERC20Vault\n * pause and unpause token bridge flows and change the bridged token implementation for a canonical token after the migration delay **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with DAO\n * define all permissions of the central DAO smart contract **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with SecureSgxVerifier\n * add SGX instances without DCAP attestation and delete registered instances **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with SignalService\n * pause and unpause signal proof verification **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with MainnetBridge\n * pause and unpause bridge message flows and execute one-time bridge recovery initializers **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with Multisig\n * manage critical settings (e.g. threshold and multisig settings) for the standard proposal governance path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with ProverWhitelist\n * manage the prover whitelist **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with PreconfWhitelist\n * pause/unpause, add or remove operators, and manage ejecter roles **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with SignalService\n * pause and unpause signal proof verification **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with L2AddressManager\n * can update the contract address for a given name **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]",
"description": "A Multisig with 4/5 threshold. \nA 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* Can upgrade **with 7d delay**\n * ERC721Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * AutomataDcapV3Attestation [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * Taiko Token [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * MainnetInbox [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * TaikoDAOController [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * AutomataDcapV3Attestation [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * DefaultResolver [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * ERC20Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * DAO [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * SignalService [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * ERC1155Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * Bridge [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * ProverWhitelist [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * TaikoDAOController [via: DAO with 7d delay (emergency proposals bypass the delay)]\n * PreconfWhitelist [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n * Bridge [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * ERC20Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * ERC721Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * ERC1155Vault [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * SignalService [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * Anchor [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * DefaultResolver [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n * DelegateController [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with TaikoRisc0Verifier\n * manage trusted RISC Zero image IDs **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with ERC721Vault\n * pause and unpause NFT deposits, releases and refunds **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with SignerList (Security Council)\n * add/remove members from the Security Council and change its minimum size **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with AutomataDcapV3Attestation\n * manage trusted SGX measurements, revoked certificate serial numbers, TCB info, QE identity, and local report checks **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with EmergencyMultisig\n * manage critical settings (e.g. threshold and multisig settings) for the emergency proposal governance path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with SecureSgxVerifier\n * add SGX instances without DCAP attestation and delete registered instances **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with MainnetInbox\n * pause and unpause the rollup system, activate the inbox, and execute the one-time state recovery path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with TaikoSP1Verifier\n * manage trusted SP1 program verification keys **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with AutomataDcapV3Attestation\n * manage trusted SGX measurements, revoked certificate serial numbers, TCB info, QE identity, and local report checks **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with DefaultResolver\n * update the contract address registered for any chainId-name pair **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with OptimisticTokenVotingPlugin\n * manage critical settings (e.g. thresholds, delays and proposal acceptance criteria) for all governance proposals **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with ERC20Vault\n * pause and unpause token flows and change a canonical token's bridged representation after the migration delay **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with DAO\n * define all permissions of the central DAO smart contract **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with SecureSgxVerifier\n * add SGX instances without DCAP attestation and delete registered instances **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with SignalService\n * pause and unpause signal proof verification **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with ERC1155Vault\n * pause and unpause NFT deposits, releases and refunds **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with Bridge\n * pause and unpause bridge flows and run one-time message recovery initializers **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with Multisig\n * manage critical settings (e.g. threshold and multisig settings) for the standard proposal governance path **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay)]\n* Can interact with ProverWhitelist\n * manage the prover whitelist **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with PreconfWhitelist\n * pause/unpause, add or remove operators, and manage ejecter roles **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController]\n* Can interact with Bridge\n * pause and unpause bridge flows and run one-time message recovery initializers **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with ERC20Vault\n * pause and unpause token flows and change a canonical token's bridged representation after the migration delay **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with ERC721Vault\n * pause and unpause NFT deposits, releases and refunds **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with ERC1155Vault\n * pause and unpause NFT deposits, releases and refunds **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with SignalService\n * pause and unpause signal proof verification **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]\n* Can interact with DefaultResolver\n * update the contract address registered for any chainId-name pair **with 7d delay** [via: DAO with 7d delay (emergency proposals bypass the delay) → TaikoDAOController → DelegateController]",
"accounts": [
{
"address": "eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2",
"type": "Contract",
"isVerified": true,
"name": "0x0F95…79c2",
"url": "https://etherscan.io/address/0x0F95E6968EC1B28c794CF1aD99609431de5179c2"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x736d9e59cDd406aEee09253fF18BA6cb7be67CBD",
"type": "EOA",
"isVerified": true,
"name": "Taiko Labs Agent",
"url": "https://etherscan.io/address/0x736d9e59cDd406aEee09253fF18BA6cb7be67CBD"
},
{
"address": "eth:0x824Dce8d292a393DAb5FFdeb788DC1086257f678",
"type": "EOA",
"isVerified": true,
"name": "Aragon Agent",
"url": "https://etherscan.io/address/0x824Dce8d292a393DAb5FFdeb788DC1086257f678"
},
{
"address": "eth:0x884c3e8235788ae52C2106E847e30BD84F2FBCb8",
"type": "EOA",
"isVerified": true,
"name": "L2BEAT Agent",
"url": "https://etherscan.io/address/0x884c3e8235788ae52C2106E847e30BD84F2FBCb8"
},
{
"address": "eth:0xF74F2bBaEd41e3e4AbAcbA24563a5Ce5aB071C8A",
"type": "EOA",
"isVerified": true,
"name": "Daniel Wang",
"url": "#Gustavo-Gonzalez-and-Daniel-Wang"
},
{
"address": "eth:0xe63E61BbB3aa1b82d44471AbcAb490102C17c986",
"type": "EOA",
"isVerified": true,
"name": "Gustavo Gonzalez",
"url": "#Gustavo-Gonzalez-and-Daniel-Wang"
}
],
"discoveryDrivenData": true
},
{
"id": "Taiko Multisig",
"name": "Taiko Multisig",
"description": "A Multisig with 4/6 threshold. \n* Can interact with SecureSgxVerifier\n * register SGX instances after DCAP attestation verification \n* Can interact with SecureSgxVerifier\n * register SGX instances after DCAP attestation verification \n* Can interact with SignalService\n * pause and unpause signal proof verification \n* Can interact with QuotaManager\n * update token withdrawal quotas and the quota refill period \n* Can interact with MainnetBridge\n * pause and unpause bridge message flows and fund the bridge through direct ETH transfers \n* Can interact with ProverWhitelist\n * manage the prover whitelist \n* Can interact with PreconfWhitelist\n * manage the ejecter role ",
"description": "A Multisig with 4/6 threshold. \n* Can interact with SecureSgxVerifier\n * register SGX instances after DCAP attestation verification \n* Can interact with SecureSgxVerifier\n * register SGX instances after DCAP attestation verification \n* Can interact with SignalService\n * pause and unpause signal proof verification \n* Can interact with QuotaManager\n * update token withdrawal quotas and the quota refill period \n* Can interact with Bridge\n * pause and unpause bridge flows and fund the bridge through direct ETH transfers \n* Can interact with ProverWhitelist\n * manage the prover whitelist \n* Can interact with PreconfWhitelist\n * manage the ejecter role ",
"accounts": [
{
"address": "eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F",
"type": "Contract",
"isVerified": true,
"name": "0x9CBe…9C7F",
"url": "https://etherscan.io/address/0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFa92ff698D57f7B875570D9F59501812B843CD44",
"type": "EOA",
"isVerified": true,
"name": "0xFa92…CD44",
"url": "https://etherscan.io/address/0xFa92ff698D57f7B875570D9F59501812B843CD44"
},
{
"address": "eth:0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a",
"type": "EOA",
"isVerified": true,
"name": "0xDC4e…8a0a",
"url": "https://etherscan.io/address/0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a"
},
{
"address": "eth:0x0aED2375549D1115e180bd0caea829C429Ea50B3",
"type": "EOA",
"isVerified": true,
"name": "0x0aED…50B3",
"url": "https://etherscan.io/address/0x0aED2375549D1115e180bd0caea829C429Ea50B3"
},
{
"address": "eth:0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439",
"type": "EOA",
"isVerified": true,
"name": "0xCf76…c439",
"url": "https://etherscan.io/address/0xCf76A87E24FE2054DCF02a5f65eAc0F24A34c439"
},
{
"address": "eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1",
"type": "EOA",
"isVerified": true,
"name": "0x3b1D…d5F1",
"url": "https://etherscan.io/address/0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1"
}
],
"discoveryDrivenData": true
},
{
"id": "MainnetERC20Vault",
"name": "MainnetERC20Vault",
"id": "ERC20Vault",
"name": "ERC20Vault",
"accounts": [
{
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"type": "Contract",
"isVerified": true,
"name": "0x9962…15Ab",
"url": "https://etherscan.io/address/0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab"
}
],
"chain": "ethereum",
"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* Can interact with QuotaManager\n * consume ERC20 withdrawal quota when tokens leave the vault ",
"description": "Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\n* Can interact with QuotaManager\n * consume ERC20 withdrawal quota when tokens leave the vault ",
"discoveryDrivenData": true
},
{
"id": "MainnetBridge",
"name": "MainnetBridge",
"id": "Bridge",
"name": "Bridge",
"accounts": [
{
"address": "eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"type": "Contract",
"isVerified": true,
"name": "0xd602…d8EC",
"url": "https://etherscan.io/address/0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC"
}
],
"chain": "ethereum",
"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* Can interact with QuotaManager\n * consume ETH withdrawal quota when ETH leaves the bridge ",
"description": "Bridge escrow for ETH and cross-chain messages. Pausing stops all message flows. The immutable recallEnabled setting controls failed-message refunds. Successful ETH releases use the configured quota manager.\n* Can interact with QuotaManager\n * consume ETH withdrawal quota when ETH leaves the bridge ",
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 3/5 threshold. \n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 3d delay** [via: TimelockController with 3d delay]\n * propose transactions \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierRouter\n * add/remove verifiers and the selectors they are mapped to **with 3d delay** [via: TimelockController with 3d delay]\n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier ",
"description": "A Multisig with 2/5 threshold. \n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 3d delay** [via: TimelockController with 3d delay]\n * propose transactions \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierRouter\n * add/remove verifiers and the selectors they are mapped to **with 3d delay** [via: TimelockController with 3d delay]\n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier \n* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier ",
"accounts": [
{
"address": "eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609",
"type": "Contract",
"isVerified": true,
"name": "0x2E5b…2609",
"url": "https://etherscan.io/address/0x2E5bcc9959dB5F5016F830E47943b07242CB2609"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x10B0589c16a8851450BD7FEE274cD349fB9d6A0E",
"type": "EOA",
"isVerified": true,
"name": "0x10B0…6A0E",
"url": "https://etherscan.io/address/0x10B0589c16a8851450BD7FEE274cD349fB9d6A0E"
},
{
"address": "eth:0x751708D6341b36c0C258754fc2DbF96074f5BdC7",
"type": "EOA",
"isVerified": true,
"name": "0x7517…BdC7",
"url": "https://etherscan.io/address/0x751708D6341b36c0C258754fc2DbF96074f5BdC7"
},
{
"address": "eth:0xbF58b6DE2B893e7ab707edc6cf99Bb6989C173a4",
"type": "EOA",
"isVerified": true,
"name": "0xbF58…73a4",
"url": "https://etherscan.io/address/0xbF58b6DE2B893e7ab707edc6cf99Bb6989C173a4"
},
{
"address": "eth:0xd5D43445d0227a47cA2eACCb9392352746eD9926",
"address": "eth:0x9a017883e4A6BB2a6261D92D70f71107F2C39D12",
"type": "EOA",
"isVerified": true,
"name": "0xd5D4…9926",
"url": "https://etherscan.io/address/0xd5D43445d0227a47cA2eACCb9392352746eD9926"
"name": "0x9a01…9D12",
"url": "https://etherscan.io/address/0x9a017883e4A6BB2a6261D92D70f71107F2C39D12"
},
{
"address": "eth:0xDA8e7102681f9652FB8a10b70949CF7F260e0A01",
"type": "EOA",
"isVerified": true,
"name": "0xDA8e…0A01",
"url": "https://etherscan.io/address/0xDA8e7102681f9652FB8a10b70949CF7F260e0A01"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "Taiko Foundation Treasury Multisig",
"name": "Taiko Foundation Treasury Multisig",
"description": "A Multisig with 3/5 threshold. ",
"accounts": [
{
"address": "eth:0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da",
"type": "Contract",
"isVerified": true,
"name": "0x363e…B3Da",
"url": "https://etherscan.io/address/0x363e846B91AF677Fb82f709b6c35BD1AaFc6B3Da"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA1D62c7df45847089cfB052396Abe4cDa7879d25",
"type": "EOA",
"isVerified": true,
"name": "0xA1D6…9d25",
"url": "https://etherscan.io/address/0xA1D62c7df45847089cfB052396Abe4cDa7879d25"
},
{
"address": "eth:0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a",
"type": "EOA",
"isVerified": true,
"name": "0xDC4e…8a0a",
"url": "https://etherscan.io/address/0xDC4ece5620659F4d5d1536Cab52BD5e5B15F8a0a"
},
{
"address": "eth:0x7A5299927F93ffCf33cf381CB0C03C2486b9299A",
"type": "EOA",
"isVerified": true,
"name": "0x7A52…299A",
"url": "https://etherscan.io/address/0x7A5299927F93ffCf33cf381CB0C03C2486b9299A"
},
{
"address": "eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1",
"type": "EOA",
"isVerified": true,
"name": "0x3b1D…d5F1",
"url": "https://etherscan.io/address/0x3b1D1F89E0b6803174A2dE72e21A6f6f8464d5F1"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/2 threshold. \nMember of Taiko Foundation Treasury Multisig, Taiko Multisig, Taiko Labs.\n",
"accounts": [
{
"address": "eth:0xF28C8D6b44361255FA7C116d09ccD5F914398C10",
"type": "Contract",
"isVerified": true,
"name": "0xF28C…8C10",
"url": "https://etherscan.io/address/0xF28C8D6b44361255FA7C116d09ccD5F914398C10"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4757D97449acA795510b9f3152C6a9019A3545c3",
"type": "EOA",
"isVerified": true,
"name": "0x4757…45c3",
"url": "https://etherscan.io/address/0x4757D97449acA795510b9f3152C6a9019A3545c3"
},
{
"address": "eth:0x7057A707621Fadd422f84DE94A9dF7c4F1AC595C",
"type": "EOA",
"isVerified": true,
"name": "0x7057…595C",
"url": "https://etherscan.io/address/0x7057A707621Fadd422f84DE94A9dF7c4F1AC595C"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-4",
"name": "EOA 1 and EOA 4",
"id": "EOA-2-and-EOA-5",
"name": "EOA 2 and EOA 5",
"accounts": [
{
"address": "eth:0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438",
"type": "EOA",
"isVerified": true,
"name": "0x0F02…0438",
"url": "https://etherscan.io/address/0x0F026a3efE44E0Fe34B87375EFe69b16c05D0438",
"displayName": "EOA 1"
"displayName": "EOA 2"
},
{
"address": "eth:0x45D4403351Bc34283CE6450D91c099f40D06dA4e",
"type": "EOA",
"isVerified": true,
"name": "0x45D4…dA4e",
"url": "https://etherscan.io/address/0x45D4403351Bc34283CE6450D91c099f40D06dA4e",
"displayName": "EOA 4"
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with PreconfWhitelist\n * add operators after a two-epoch activation delay and remove existing operators immediately ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-5",
"name": "EOA 2 and EOA 5",
"id": "EOA-3-and-EOA-6",
"name": "EOA 3 and EOA 6",
"accounts": [
{
"address": "eth:0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06",
"type": "EOA",
"isVerified": true,
"name": "0x3537…8f06",
"url": "https://etherscan.io/address/0x35376dD47C061Bc3b8c8e8d61987019e7ED58f06",
"displayName": "EOA 2"
"displayName": "EOA 3"
},
{
"address": "eth:0x5F62d006C10C009ff50C878Cd6157aC861C99990",
"type": "EOA",
"isVerified": true,
"name": "0x5F62…9990",
"url": "https://etherscan.io/address/0x5F62d006C10C009ff50C878Cd6157aC861C99990",
"displayName": "EOA 5"
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with PreconfWhitelist\n * eligible to propose batches on L1; only the selected current-epoch operator can successfully propose ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x3D4997AAC0834BEb5ede861c424807Aa3F29b5bB",
"type": "EOA",
"isVerified": true,
"name": "0x3D49…b5bB",
"url": "https://etherscan.io/address/0x3D4997AAC0834BEb5ede861c424807Aa3F29b5bB",
"displayName": "EOA 3"
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "Member of Sebastian Kugler.\n* Can interact with SignerList (Security Council)\n * configure an agent address that represents this entity in the Security Council [via: Sebastian Kugler]",
"discoveryDrivenData": true
},
{
"id": "Gustavo-Gonzalez-and-Daniel-Wang",
"name": "Gustavo Gonzalez and Daniel Wang",
"accounts": [
{
"address": "eth:0xe63E61BbB3aa1b82d44471AbcAb490102C17c986",
"type": "EOA",
"isVerified": true,
"name": "0xe63E…c986",
"url": "https://etherscan.io/address/0xe63E61BbB3aa1b82d44471AbcAb490102C17c986",
"displayName": "Gustavo Gonzalez"
},
{
"address": "eth:0xF74F2bBaEd41e3e4AbAcbA24563a5Ce5aB071C8A",
"type": "EOA",
"isVerified": true,
"name": "0xF74F…1C8A",
"url": "https://etherscan.io/address/0xF74F2bBaEd41e3e4AbAcbA24563a5Ce5aB071C8A",
"displayName": "Daniel Wang"
}
],
"chain": "ethereum",
"description": "Member of SignerList (Security Council).\n* Can interact with SignerList (Security Council)\n * configure an agent address that represents this entity in the Security Council ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "eth:0xF616A4f81857CFEe54A4A049Ec187172574bd412",
"type": "EOA",
"isVerified": true,
"name": "0xF616…d412",
"url": "https://etherscan.io/address/0xF616A4f81857CFEe54A4A049Ec187172574bd412",
"displayName": "EOA 6"
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with RiscZeroVerifierEmergencyStop\n * pause the verifier ",
"discoveryDrivenData": true
}
]
},
"taiko": {
"roles": [],
"actors": [
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "taiko:0x0000000000000000000000000000000000000000",
"type": "EOA",
"isVerified": true,
"name": "0x0000…0000",
"url": "https://taikoscan.io/address/0x0000000000000000000000000000000000000000",
"displayName": "EOA 1"
}
],
"chain": "taiko",
"description": "* Can interact with Bridge\n * pause and unpause bridge flows and fund the bridge through direct ETH transfers ",
"discoveryDrivenData": true
}
]
}
}
+340 -78
{
"addresses": {
"ethereum": [
{
"name": "TaikoRisc0Verifier",
"isVerified": true,
"address": "eth:0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using RISC Zero.\n* Roles:\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x059dAF31F571da48Ab4e74Ae12F64f907681Cd8b#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0x20ff7C2Cf391a5F096A2Cc181cb41916680f8E97",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 2.0.0-rc.3).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x20ff7C2Cf391a5F096A2Cc181cb41916680f8E97#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 3.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a098988600d87650Fb061FfAff08B97149Fa84D#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0x54aCE3ED46529B4d4F3770C8Bad5dDC48717B9bF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 2.0.3).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x54aCE3ED46529B4d4F3770C8Bad5dDC48717B9bF#code"
},
{
"name": "MainnetInbox",
"isVerified": true,
"address": "eth:0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772642207,
"transactionHash": "0x7576f1179250453948b37648a748aaade28c40b33e358fa0cbe21be6b0368601",
"implementations": [
"eth:0x0680c84378FA6A7D2F46ADa5A70637Fa2A938d42"
]
},
{
"timestamp": 1782120275,
"transactionHash": "0x2fb71b83b8971dd7bbc174f72ea5d37f57bf20277c406b0d679062b20c348e1d",
"implementations": [
"eth:0x349Ae3578f48F758d79451EeAB61Cdd5fedD0098"
]
},
{
"timestamp": 1782739115,
"transactionHash": "0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7",
"implementations": [
"eth:0x64523f2580f4E7038a121D55b220a9C12C1E8f01"
]
},
{
"timestamp": 1785761183,
"transactionHash": "0x64875b5b84b41b520551854696c0ce408fb3e0aa2ede604cc95a5919b6140ea7",
"implementations": [
"eth:0x5253D4C91e80b880DdB54B78E74082Abe066F6b9"
]
}
],
"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* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6f21C543a4aF5189eBdb0723827577e1EF57ef1f#code"
},
{
"name": "ZkRequiredVerifier",
"isVerified": true,
"address": "eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"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",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec#code"
},
{
"name": "TaikoSP1Verifier",
"isVerified": true,
"address": "eth:0x73A0Db393ef87ce781ac7957bE10D6628432100F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Gating router contract to verify batches using SP1.\n* Roles:\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x73A0Db393ef87ce781ac7957bE10D6628432100F#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs (version 2.2.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9#code"
},
{
"name": "ProverWhitelist",
"isVerified": true,
"address": "eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772641607,
"transactionHash": "0x9ae9f5d95306d569099fbf42c0aa730a6b6e84e18f35e5f1a1374025597762d5",
"implementations": [
"eth:0xebb393746A4Eee84Ad14EDFf3764c3F839D1034b"
]
}
],
"description": "Defines the prover whitelist queried by the inbox before accepting proofs. If the inbox is configured with this contract and the whitelist is non-empty, only whitelisted provers can prove proposals.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)\n * **proverManager**: Taiko Multisig",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEa798547d97e345395dA071a0D7ED8144CD612Ae#code"
},
{
"name": "RiscZeroGroth16Verifier",
"isVerified": true,
"address": "eth:0xf70aBAb028Eb6F4100A24B203E113D94E87DE93C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for RISC Zero Groth16 proofs. This older implementation exposes control-root and selector constants but does not expose a VERSION getter.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf70aBAb028Eb6F4100A24B203E113D94E87DE93C#code"
},
{
"name": "QuotaManager",
"isVerified": true,
"address": "eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"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* Roles:\n * **bridge**: MainnetBridge\n * **erc20Vault**: MainnetERC20Vault\n * **owner**: Taiko Multisig",
"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* Roles:\n * **bridge**: Bridge\n * **erc20Vault**: ERC20Vault\n * **owner**: Taiko Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1748146475,
"transactionHash": "0x5da0579fa85d4712efb3d66c95ee884d73259ede79760d25f685e4c3c3c4c0c1",
"implementations": [
"eth:0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DAO; ultimately SignerList (Security Council)\n * **owner**: DAO",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a#code"
},
{
"name": "DAO",
"isVerified": true,
"address": "eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x52Af16664155608b845BE18aa29620EbF6eA2D3a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x52Af16664155608b845BE18aa29620EbF6eA2D3a"
]
}
],
"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* Roles:\n * **currentSignerListPermissions**: SignerList (Security Council) (emergency proposals bypass the delay)\n * **daoPermissions**: DAO; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9CDf589C941ee81D75F34d3755671d614f7cf261#code"
},
{
"name": "TaikoDAOController",
"isVerified": true,
"address": "eth:0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261"
],
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746942803,
"transactionHash": "0x8328e607699f67108c9b259225d5316a079ad52e648e6188c3fce7bf99abec38",
"implementations": [
"eth:0xd1934807041B168f383870A0d8F565aDe2DF9D7D"
]
}
],
"description": "Middleware contract that maintains ownership of DAO-controlled assets and contracts. Its token weight does not count towards the DAO quorum.\n* Roles:\n * **admin**: DAO; ultimately SignerList (Security Council)\n * **owner**: DAO",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xfC3C4ca95a8C4e5a587373f1718CD91301d6b2D3#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 3d.\n* Roles:\n * **canceller**: Safe\n * **defaultAdmin**: TimelockController; ultimately Safe\n * **executor**: Safe\n * **proposer**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0b144E07A0826182B6b59788c34b32Bfa86Fb711#code"
},
{
"name": "ERC721Vault",
"isVerified": true,
"address": "eth:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x26471adfeac2f81d616568c3f35fcd6e4349aaa1ad6fd6c4ce31112e18ada2fb",
"implementations": [
"eth:0xEC04849E7722Fd69797a155796Db75aC8F94f692"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0x41A7BDD153a5AfFb10Ed1AD3D6a4e5ad001495FA"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x2dfef0339009Ce10786fc118C883BB97af3163eD"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0x55B5df6B53466446221180498BfD1C59e54732c4"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0xD961e3Ef2D7DF58cDc67BFd9055255430E5e3fEc"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0xA4C5c20aB33C96B1c281Dca37D03E23609274C49"
]
},
{
"timestamp": 1791767075,
"transactionHash": "0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4",
"implementations": [
"eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802"
]
}
],
"description": "Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa#code"
},
{
"name": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747268759,
"transactionHash": "0x3b734f101aeef12dbbef6a43abae4176ac967c5ab8ea0194c6d890dafd6573ad",
"implementations": [
"eth:0x5e46443bd131eB6d4c6Fb4849bAD29af9596dd72"
]
}
],
"description": "Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0ffa4A625ED9DB32B70F99180FD00759fc3e9261#code"
},
{
"name": "Taiko Token",
"isVerified": true,
"address": "eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714033799,
"transactionHash": "0x4f7a1c6ad21fbfeaecab40ea36a3845bf67e22d7770d8a259d62b995cb93cb34",
"implementations": [
"eth:0x9ae1a067F9655DD0511390e3d70Bb25933AE61eb"
]
},
{
"timestamp": 1715406371,
"transactionHash": "0x7d82794932540ed9edd259e58f6ef8ae21a49beada7f0224638f888f7149c01c",
"implementations": [
"eth:0xea53c0f4b129Cf3f3FBA896F9f23ca18246e9B3c"
]
},
{
"timestamp": 1716969803,
"transactionHash": "0x56402f9fd928be890fbd29829b817faffc0780b85e83300a29962c969808cae2",
"implementations": [
"eth:0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F"
]
},
{
"timestamp": 1717732931,
"transactionHash": "0x0bbf7d1258c646f41a02a92a55825b1ebfd3659577d0f2b57b462f8895e23a04",
"implementations": [
"eth:0x55833dA2962c2330ccCF043ff8037e6D2939bCF6"
]
},
{
"timestamp": 1719904547,
"transactionHash": "0xc9f468d33d8d55911e4e5b5c301ed244a5f81ab0f389d2b4f398eb5b89d417ef",
"implementations": [
"eth:0xcfe803378D79d1180EbF030455040EA6513869dF"
]
},
{
"timestamp": 1747097243,
"transactionHash": "0xdb7d5de46738ad3f676db47b61772db531f9858b7a01e8c3b5aee49fa74cac95",
"implementations": [
"eth:0x87C752b0F70cAa237Edd7571B0845470A37DE040"
]
},
{
"timestamp": 1747285931,
"transactionHash": "0x986fc2c7ae945cdd358b2f2ae54364b350026f965f5861ed470f78e145f12626",
"implementations": [
"eth:0x5C96Ff5B7F61b9E3436Ef04DA1377C8388dfC106"
]
}
],
"description": "ERC20 contract implementing the TAIKO token. It defines a list of addresses designated as non-voting.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x1efDd13f831ceeEa14940806705A53D3211CD698",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1efDd13f831ceeEa14940806705A53D3211CD698#code"
},
{
"name": "EmergencyMultisig",
"isVerified": true,
"address": "eth:0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x437E450452E8Bc142bd5317199296EcB187c514b"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing encrypted proposals (e.g. for Security Council emergency proposals).\n* Roles:\n * **dao**: DAO; ultimately SignerList (Security Council)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2AffADEb2ef5e1F2a7F58964ee191F1e88317ECd#code"
},
{
"name": "SecureSgxVerifier",
"isVerified": true,
"address": "eth:0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n* Roles:\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)\n * **registrar**: Taiko Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x41e79EB4F03aBB5DF8716B759528dc5d8f6a84Ee#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x44c220f0598345195cE99AD6A57aDfFcb9Ea33e7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: EOA 6",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: EOA 7",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x44c220f0598345195cE99AD6A57aDfFcb9Ea33e7#code"
},
{
"name": "RiscZeroSetVerifier",
"isVerified": true,
"address": "eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"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",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x68dC2cB4e61774873971c499D9b239ec5Ac540E3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x68dC2cB4e61774873971c499D9b239ec5Ac540E3#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x844D5f01161E3559d36f23d0Aa9E9620949aF782",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroSetVerifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x844D5f01161E3559d36f23d0Aa9E9620949aF782#code"
},
{
"name": "AutomataDcapV3Attestation",
"isVerified": true,
"address": "eth:0x8d7C954960a36a7596d7eA4945dDf891967ca8A3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550639,
"transactionHash": "0x207dec76298211a2d988b0de3e9a3f8da0edb4524a011e72f28200be08edd4c6",
"implementations": [
"eth:0xEE8FC1dbb8D345f5bF35dFb939C6f9EdC5fCDAFc"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xde1b1FBe7D721af4A56651272ef91A59B7303323"
]
},
{
"timestamp": 1715787263,
"transactionHash": "0x46a6d47c15505a1259c64d1e09353680e525b2706dd9e095e15019dda7c1b295",
"implementations": [
"eth:0x5f73f0AdC7dAA6134Fe751C4a78d524f9384e0B5"
]
}
],
"description": "Contract managing SGX DCAP attestation policy, trusted measurements, and certificate revocation data.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8d7C954960a36a7596d7eA4945dDf891967ca8A3#code"
},
{
"name": "RiscZeroVerifierRouter",
"isVerified": true,
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router proxy that routes to verifiers based on selectors. The mapping can be changed by a permissioned owner (TimelockController).\n* Roles:\n * **owner**: TimelockController; ultimately Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319#code"
},
{
"name": "DefaultResolver",
"isVerified": true,
"address": "eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xFca4F0Ab7B95EEf2e3A60EF2Bc0c42DdAA62E66D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747268711,
"transactionHash": "0xe402a650eb9f8443ae3fb86d2ef4bc6105140c85774c56a3932fe097ea6f6c19",
"implementations": [
"eth:0xFca4F0Ab7B95EEf2e3A60EF2Bc0c42DdAA62E66D"
]
}
],
"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* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8Efa01564425692d0a0838DC10E300BD310Cb43e#code"
},
{
"name": "OptimisticTokenVotingPlugin",
"isVerified": true,
"address": "eth:0x989E348275b659d36f8751ea1c10D146211650BE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x5B0Da2FB08754a5dDf32e28887D2F5437485f085"
]
}
],
"description": "An optimistic governance module. Standard proposals pass and can be executed unless 10% of votable TAIKO veto them within 7d. Emergency proposals can be executed without delay.\n* Roles:\n * **dao**: DAO; ultimately SignerList (Security Council)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x989E348275b659d36f8751ea1c10D146211650BE#code"
},
{
"name": "SecureSgxVerifier",
"isVerified": true,
"address": "eth:0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SGX proven blocks. Registered SGX instances can sign accepted proofs until their instance expiry.\n* Roles:\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)\n * **registrar**: Taiko Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9D3C595BFf6Ff7D2b2CbdEcF94aD917eB2fCFFd8#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "eth:0x9e0a24964e5397B566c1ed39258e21aB5E35C77C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0x1A06832992785766a105838C95c1E13a0045AC85"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550603,
"transactionHash": "0x0898d14da2f38d677085073d2decfb7ca32902406df2e7a84f6615d9c92d4516",
"implementations": [
"eth:0xE1d91bAE44B70bD66e8b688B8421fD62dcC33c72"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d"
]
},
{
"timestamp": 1717663871,
"transactionHash": "0x8de1631a25b337c1e702f9ce9d9ab8a3b626922441855e959b2d79dae40bd131",
"implementations": [
"eth:0x3d59c18b31A7D950EF9bd15eD285b6c182E0f0bb"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0xDF8642a1FBFc2014de27E8E87283D6f3eEF315DF"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0x45fed11Ba70D4217545F18E27DDAF7D76Ff499f3"
]
},
{
"timestamp": 1747298447,
"transactionHash": "0x97789b6668d0a287b1f57bb6c8e23cce62308fb887139faeb0f06b77855995fd",
"implementations": [
"eth:0x0783Ee019C9b0f918A741469bD488A88827b3617"
]
},
{
"timestamp": 1747578311,
"transactionHash": "0x0ae99d24b294622e3d3868c8dca911a5936231ce1f97254ec0c6a6f65f7aa81c",
"implementations": [
"eth:0x42Ec977eb6B09a8D78c6D486c3b0e63569bA851c"
]
},
{
"timestamp": 1774964687,
"transactionHash": "0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36",
"implementations": [
"eth:0x6a4B15E4b0296B2ECE03Ee9Ed74E4A3E3ECA68D6"
]
},
{
"timestamp": 1777562051,
"transactionHash": "0xfcd6ca82025b847a3508db2d3c82327a19e3c4afda867acae8c09da147667036",
"implementations": [
"eth:0xBC442F342FE247Dc7981AC7Fbe8293c8891F8752"
]
},
{
"timestamp": 1782739115,
"transactionHash": "0xae7122add731c935d54d726ebe542e7d4f9f7321e3bdf4ec794309f813d981f7",
"implementations": [
"eth:0x1A06832992785766a105838C95c1E13a0045AC85"
]
}
],
"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* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)\n * **pauser**: Taiko Multisig",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9e0a24964e5397B566c1ed39258e21aB5E35C77C#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9F9994Eb4Cb5200198FEfb470f8b50301662e696#code"
},
{
"name": "ERC1155Vault",
"isVerified": true,
"address": "eth:0xaf145913EA4a56BE22E120ED9C24589659881702",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1714550615,
"transactionHash": "0x39b4a5e6d23d7e06dd30b99d77adf01868b2bd491b33fd79e72928623d8d612c",
"implementations": [
"eth:0x7748dA086A2e6EDd8Db97eD236840910013c6396"
]
},
{
"timestamp": 1715408795,
"transactionHash": "0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f",
"implementations": [
"eth:0xd90b5fcf8d00d333d107E4Ab7F94c0c0A41CDcfE"
]
},
{
"timestamp": 1716634859,
"transactionHash": "0x02ed558762eae5f0a930ba4a1047a02d4a793ea48890268c32df04e882f138ff",
"implementations": [
"eth:0x097BBBef669AaD66030aB223195D200eF9A47dc3"
]
},
{
"timestamp": 1717749635,
"transactionHash": "0xdb5e926c96d112ce1389da77a927fba6c7d04a711839b9e14777530ebcf83914",
"implementations": [
"eth:0xca92880829139b310B6b0CB41f66D566Db1a59C8"
]
},
{
"timestamp": 1721140223,
"transactionHash": "0x7d584f0a645cad61e634f64ffaf7e1bbfb92749878eb25b39ce0e5cf698897c7",
"implementations": [
"eth:0x89C68Bc7028f8b1e69A91382b0a4b1825085617b"
]
},
{
"timestamp": 1730452835,
"transactionHash": "0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd",
"implementations": [
"eth:0x838ed469db456b67EB3b0B74D759Be4DA999b9c8"
]
},
{
"timestamp": 1791767075,
"transactionHash": "0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4",
"implementations": [
"eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E"
]
}
],
"description": "Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n* Roles:\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaf145913EA4a56BE22E120ED9C24589659881702#code"
},
{
"name": "Multisig",
"isVerified": true,
"address": "eth:0xD7dA1C25E915438720692bC55eb3a7170cA90321",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746111707,
"transactionHash": "0x8acf74d966e6eb99972a4a73382cf42aa918d4715eaf4b587d1007f24edf5208",
"implementations": [
"eth:0x8510d389236d7213eE9B9C38CAaBc0aD24853C25"
]
}
],
"description": "Modular Governance contract allowing for proposing, voting on and executing proposals (e.g. for Security Council standard proposals).\n* Roles:\n * **dao**: DAO; ultimately SignerList (Security Council)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7dA1C25E915438720692bC55eb3a7170cA90321#code"
},
{
"name": "RiscZeroVerifierEmergencyStop",
"isVerified": true,
"address": "eth:0xDa8f3de6fBBdb261Ac771B813a578A7aBdA6B2b1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A verifier wrapper for the RiscZeroGroth16Verifier that allows pausing (emergency stop) the verifier by its owner.\n* Roles:\n * **owner**: Safe",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xDa8f3de6fBBdb261Ac771B813a578A7aBdA6B2b1#code"
},
{
"name": "PreconfWhitelist",
"isVerified": true,
"address": "eth:0xFD019460881e6EeC632258222393d5821029b2ac",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a"
],
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753275179,
"transactionHash": "0x2d127d401f9d22fd4c4f8c14773f2e98e9a3e87837f78bb1d2881a8fcb91cd59",
"implementations": [
"eth:0x86f0AeFA26A1447bbE62bd2bE1D30ff3353B88fB"
]
},
{
"timestamp": 1754913371,
"transactionHash": "0x1000b14e86d8db17931f65e877e2eb13cb3990d0a129eee1aff21ce6ba96d2cf",
"implementations": [
"eth:0x44eC275996BD69361EF062ed488882a58256CF11"
]
},
{
"timestamp": 1756244927,
"transactionHash": "0x27f89b30a14fdf2c6adb42c5722f4ac403eefde7d26f6a64bdfd4a86458a0c00",
"implementations": [
"eth:0x54FeDc114D78dcbDb8c7b2DeA433f9749E8fd0Fc"
]
},
{
"timestamp": 1774964687,
"transactionHash": "0xb132692b255fb1ff670b37d162af03de5151fa1e77811bf009ba276e4a9a2f36",
"implementations": [
"eth:0xDBae46E35C18719E6c78aaBF9c8869c4eC84c149"
]
}
],
"description": "Contains the whitelist of addresses 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* Roles:\n * **_ejectorManager**: Taiko Multisig\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **ejecters**: EOA 1, EOA 4\n * **operatorMapping**: EOA 2, EOA 5\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"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* Roles:\n * **_ejectorManager**: Taiko Multisig\n * **admin**: TaikoDAOController; ultimately SignerList (Security Council)\n * **ejecters**: EOA 2, EOA 5\n * **operatorMapping**: EOA 3, EOA 6\n * **owner**: TaikoDAOController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xFD019460881e6EeC632258222393d5821029b2ac#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"taiko": [
{
"name": "Anchor",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000010001",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0x75E76c367D6be621bD90e4b1e32fBB3fF59150b6"
]
},
{
"timestamp": 1747624787,
"transactionHash": "0x07f68497c517181b0110a51906fb5f5938aafeda78e07cb0480de417c9083f1b",
"implementations": [
"taiko:0x3cfe9b8E0e12289D78c91295c8353aB1731F06E1"
]
},
{
"timestamp": 1754914103,
"transactionHash": "0x2f0b5bd30b1cfc929bb03518ce19a588d431bba847ae7c84daedcc2ddf521bf2",
"implementations": [
"taiko:0x1E3Fa8AD01327D891aB89B13091F93E4eaF7E8A5"
]
},
{
"timestamp": 1755179444,
"transactionHash": "0xf9f899beb269bd2cb1b74001493ec9ac41d83191b79b71878422c3f5a8fdb15b",
"implementations": [
"taiko:0xE6d1efcC6AC8969474308C99a3805c332D33a1E0"
]
},
{
"timestamp": 1770777907,
"transactionHash": "0xd044da28e6a74c63e79bcf8ac14fec397dae61afc9166ca7754af5e0b6e5c7fb",
"implementations": [
"taiko:0xf381868DD6B2aC8cca468D63B42F9040DE2257E9"
]
},
{
"timestamp": 1775138543,
"transactionHash": "0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1",
"implementations": [
"taiko:0x38e4A497aD70aa0581BAc29747b0Ea7a53258585"
]
},
{
"timestamp": 1777563432,
"transactionHash": "0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de",
"implementations": [
"taiko:0x7e83Af941FDcf90EB44ED7dc8754a201B156E0BA"
]
}
],
"description": "Stores L1 block details on L2 as a cross-layer oracle and manages EIP-1559 gas pricing for L2 operations.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000010001#code"
},
{
"name": "DelegateController",
"isVerified": true,
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1748151239,
"transactionHash": "0x2d60398c8f22ebccc3e3dfc5771f95cb104b2ea003230444879b08d0649d01af",
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
}
],
"description": "Middleware contract that can maintain ownership of DAO-controlled assets and contracts. It can only be invoked by the TaikoDAOController on L1 through the L2 bridge.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **daoController**: TaikoDAOController",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000001",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
"taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802235,
"transactionHash": "0x094dd9452d79cbd74711f2b8065566e4431a05d0727c56d2b38195e40fd62805",
"implementations": [
"taiko:0xf961854D68368cFFc86d90AEe8a19E9781dACA3e"
]
},
{
"timestamp": 1716959027,
"transactionHash": "0x0b5d6acc9c5b8ef193920246081ec5ce7268111acfc1dce1f058bea06f3953c7",
"implementations": [
"taiko:0x98C5De7670aA7d47C6c0551fAD27Bfe464A6751a"
]
},
{
"timestamp": 1717148375,
"transactionHash": "0x4605c4ce594e996bdbdb532a9aefe4fab1ea36f7e2ef63eef56a7e8033810df3",
"implementations": [
"taiko:0x0893c8821Fa358D5f3630695Ce062204814359A1"
]
},
{
"timestamp": 1717486847,
"transactionHash": "0xc77434f4e37959cdc0eac125303b78dd192d8727173373cc7a6158ca7d829dad",
"implementations": [
"taiko:0x8FB67c2C16dc8578b6d69bc668236924f4c1B0f7"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0x878E72f1d435DbACe8B9C62e084c114ffbb84791"
]
},
{
"timestamp": 1719503519,
"transactionHash": "0xd55e1edee71bd71b9bca0d3826f758a46d688b6ffdd4058fccefc98dbed70165",
"implementations": [
"taiko:0xd95435c742c01B0E982913BcA252173Ae96DF61d"
]
},
{
"timestamp": 1719806771,
"transactionHash": "0xdf0348394d5e58f801de917575aafdc1cb55533b14a6e46fd460d1437238dc02",
"implementations": [
"taiko:0x4Ca6bE8C1Ec05beFB216bAEEF9EE36997e35E98E"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83"
]
},
{
"timestamp": 1791444621,
"transactionHash": "0xc61c925bbc9b815715c6bc009cfcb50c16e93904dc07e799c913953a2b6be095",
"implementations": [
"taiko:0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb"
]
},
{
"timestamp": 1791767237,
"transactionHash": "0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d",
"implementations": [
"taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3"
]
}
],
"description": "Bridge escrow holding preminted ETH on Taiko.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)",
"description": "Bridge escrow holding preminted ETH on Taiko. Failed messages remain retryable, but message failure and source-chain refunds are disabled.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)\n * **pauser**: EOA 1",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000001#code"
},
{
"name": "ERC20Vault",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000002",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62"
"taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802307,
"transactionHash": "0x8a12626b2f2c9464b5f2525edc2010f371397ff12fe00cf49287a9b2a6b7ab99",
"implementations": [
"taiko:0x33fBcde27fBA21e90582Df31DFB427D4dbdBefC1"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0x1Edd50Cb6F99F172D435dB165FAACc410989625D"
]
},
{
"timestamp": 1718023859,
"transactionHash": "0xe2469feed31b46b8e6292156f5751decf023616599392e1d69a961075414a959",
"implementations": [
"taiko:0xFE081154eb71C61a059a265DD697Bde03513D5E3"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62"
]
},
{
"timestamp": 1791444621,
"transactionHash": "0xc61c925bbc9b815715c6bc009cfcb50c16e93904dc07e799c913953a2b6be095",
"implementations": [
"taiko:0xa01d464ca3982DAa97B19fa7F8a232eB11A9DDb3"
]
},
{
"timestamp": 1791767237,
"transactionHash": "0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d",
"implementations": [
"taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c"
]
}
],
"description": "Escrow for L2-native tokens sent to L1 via the canonical bridge.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)",
"description": "Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000002#code"
},
{
"name": "DelegateController",
"isVerified": true,
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1748151239,
"transactionHash": "0x2d60398c8f22ebccc3e3dfc5771f95cb104b2ea003230444879b08d0649d01af",
"implementations": [
"taiko:0x6900f893Fb1dcf2868c7799Ac9a2dAf1c046c6bF"
]
}
],
"description": "Middleware contract that can maintain ownership of DAO-controlled assets and contracts. It can only be invoked by the TaikoDAOController on L1 through the L2 bridge.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **daoController**: TaikoDAOController",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C#code"
},
{
"name": "ERC721Vault",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000003",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802403,
"transactionHash": "0x8705703a93cb4cfc1ae69d1277f4464f807c7615237f2b04ff010c6e45708d34",
"implementations": [
"taiko:0xD68BFe63E0f2983D89cbB225BEd068a8f19f5e08"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0x866A1915F4E5B7f5573642F03C3A589090aE963b"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0xd532f20a4751156C566Da7745db95E7f80145B36"
]
},
{
"timestamp": 1791767237,
"transactionHash": "0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d",
"implementations": [
"taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0"
]
}
],
"description": "Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000003#code"
},
{
"name": "ERC1155Vault",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000004",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0xe148CceFFcd5494301c20e047634995C60611e57"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1716802439,
"transactionHash": "0x264a2a553672a5480141638c3ca00a7bdf2c54e48c53f41867ca4f64703e16d7",
"implementations": [
"taiko:0x3918a2910C393A1A2EF7AAc807970EFE47A54b7e"
]
},
{
"timestamp": 1717750463,
"transactionHash": "0x3004d3c240481a0470e20a59d2fa06522612ec48334209431f56f09ec9ad4b98",
"implementations": [
"taiko:0xE9dDa544bd71aa03bdD6Bb30EEB6Aa081F5704ca"
]
},
{
"timestamp": 1730452979,
"transactionHash": "0xdbe9caf2b1282d0fecf9a752f2c1aeade8820bb66bb5ad210f0081996504173b",
"implementations": [
"taiko:0xBBBC4ad39488b990E095042fa6c59A90d3817846"
]
},
{
"timestamp": 1791767237,
"transactionHash": "0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d",
"implementations": [
"taiko:0xe148CceFFcd5494301c20e047634995C60611e57"
]
}
],
"description": "Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000004#code"
},
{
"name": "SignalService",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000005",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28"
]
},
"chain": "taiko",
"pastUpgrades": [
{
"timestamp": 1747624787,
"transactionHash": "0x07f68497c517181b0110a51906fb5f5938aafeda78e07cb0480de417c9083f1b",
"implementations": [
"taiko:0xaea51c413Bd15bBee72737C8094BE942B5208762"
]
},
{
"timestamp": 1775138543,
"transactionHash": "0xd8f236e03789398270e7144a8b4456279ae6c82a44334fec3fb9d97bcc7c12d1",
"implementations": [
"taiko:0x2987F6Bef39b03F8522EC38B36aF0f7422938EAb"
]
},
{
"timestamp": 1777563432,
"transactionHash": "0xb09a7ea021566fa65e0891d3f45b369f61b639c6ef9b16b0d2a3bd52289bf3de",
"implementations": [
"taiko:0x18B27428cce679DFf84D09D6b07DF1E9EBb6fE28"
]
}
],
"description": "Facilitates secure cross-chain message passing by storing signals 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* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000005#code"
},
{
"name": "L2AddressManager",
"name": "DefaultResolver",
"isVerified": true,
"address": "taiko:0x1670000000000000000000000000000000000006",
"address": "taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C"
],
"implementations": [
"taiko:0x0167000000000000000000000000000000000006"
"taiko:0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a"
]
},
"chain": "taiko",
"pastUpgrades": [],
"description": "Maps contract names to contract addresses. Changes in this mapping effectively act as contract upgrades.\n* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"pastUpgrades": [
{
"timestamp": 1788241787,
"transactionHash": "0x80c14fa5cece0c4e97331057fa7d72f915e58633315c555df68bd82d29d06174",
"implementations": [
"taiko:0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a"
]
}
],
"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* Roles:\n * **admin**: DelegateController; ultimately SignerList (Security Council)\n * **owner**: DelegateController; ultimately SignerList (Security Council)",
"upgradableBy": [
{
"name": "SignerList (Security Council)",
"delay": "7d"
}
],
"discoveryDrivenData": true,
"url": "https://taikoscan.io/address/0x1670000000000000000000000000000000000006#code"
"url": "https://taikoscan.io/address/0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984#code"
}
]
},
"escrows": [
{
"address": "0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"sinceTimestamp": 1714550603,
"tokens": [
"ETH"
],
"chain": "ethereum",
"chainId": 1
},
{
"address": "0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"sinceTimestamp": 1714550603,
"tokens": "*",
"chain": "ethereum",
"chainId": 1
}
],
"programHashes": [
{
"title": "Proposal program of Raiko2 v0.8.0-rc1",
"description": "Proves a Taiko Shasta proposal state transition with Raiko2.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/sp1/src/shasta_proposal.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"sp1_shasta_proposal\"` and `digest_source: \"vk_bn254\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0x0025425c22e827507428a3d9c7b0f89635be5462f34bb6780563e3d6086be7c7"
},
{
"title": "Proposal program of Raiko2 v0.8.0-rc1",
"description": "Proves a Taiko Shasta proposal state transition with Raiko2.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/sp1/src/shasta_proposal.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"sp1_shasta_proposal\"` and `digest_source: \"vk_hash_bytes\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0x12a12e113a09d41d05147b387b0f89632df2a3174d2ed9e00ac7c7ac086be7c7"
},
{
"title": "Aggregation program of Raiko2 v0.8.0-rc1",
"description": "Aggregates Raiko2 proofs for multiple Taiko Shasta proposals.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/sp1/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"sp1_shasta_aggregation\"` and `digest_source: \"vk_bn254\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0x0051ac1d9e8cfd4196e37f9cfefd08e9b0f7ce653bad4634cd1ee84b71ca3be6"
},
{
"title": "Aggregation program of Raiko2 v0.8.0-rc1",
"description": "Aggregates Raiko2 proofs for multiple Taiko Shasta proposals.",
"proverSystemProject": "sp1hypercube",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/sp1/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"sp1_shasta_aggregation\"` and `digest_source: \"vk_hash_bytes\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0x28d60ecf233f50655c6ff39f6fd08e9b07be73296eb518d31a3dd09671ca3be6"
},
{
"title": "Proposal program of Raiko2 v0.8.0-rc1",
"description": "Proves a Taiko Shasta proposal state transition with Raiko2.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/risc0/src/shasta_proposal.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"risc0_shasta_proposal\"` and `digest_source: \"image_id\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0xd6ab71c22201c23ef512b706f2e2d720f6da1b559fb76834aa9d4e35276f6e10"
},
{
"title": "Aggregation program of Raiko2 v0.8.0-rc1",
"description": "Aggregates Raiko2 proofs for multiple Taiko Shasta proposals.",
"proverSystemProject": "risc0",
"programUrl": "https://github.com/taikoxyz/raiko2/blob/v0.8.0-rc1/guests/risc0/src/shasta_aggregation.rs",
"verificationStatus": "successful",
"verificationSteps": "\nDependencies: Git, Rust/Cargo, Docker with a running daemon, and either `just` or the equivalent Cargo command below. The build pulls Docker images and locked Rust/git dependencies.\n\n1. Check out the correct tag in [raiko2](https://github.com/taikoxyz/raiko2):\n```\ngit clone https://github.com/taikoxyz/raiko2.git\ncd raiko2\ngit checkout v0.8.0-rc1\n```\nCommit hash should be `8b2147a0e74ba6387938cf35544797fb1b61cc07`.\n2. From the `raiko2` root dir, rebuild the Shasta guest ELFs from source:\n```\njust build-guest all --force\n```\nIf `just` is unavailable, run the equivalent command:\n```\ncargo run -r -p xtask -- build-guest all --force\n```\nThis exports fresh ELFs to `crates/guests/elf`.\n3. Generate the guest digest summary from the rebuilt ELFs:\n```\ncargo run -r -p xtask-build-guest --bin guest-digests --features digests -- \\\n --output /tmp/raiko2-v0.8.0-rc1-guest-digests.json\n```\n4. In `/tmp/raiko2-v0.8.0-rc1-guest-digests.json`, find the entry with `object_name: \"risc0_shasta_aggregation\"` and `digest_source: \"image_id\"`. Its `digest` field should match this program hash.\n\nReference: [Raiko2 v0.8.0-rc1 release](https://github.com/taikoxyz/raiko2/releases/tag/v0.8.0-rc1), rolled out by Taiko multisig proposal `0xa3cd408eabf658ce08f25450f837679f09269742eabc672fbbf4479db59ec2cf`.\n",
"hash": "0xdd9b8abff96c409ae2418edfb51d893ea2bd10f4873a0226f17a6998c1afc1b7"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"eth:0x20ff7C2Cf391a5F096A2Cc181cb41916680f8E97",
"eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"eth:0x54aCE3ED46529B4d4F3770C8Bad5dDC48717B9bF",
"eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"eth:0xf70aBAb028Eb6F4100A24B203E113D94E87DE93C"
]
}
+1 -1
{
"baseTimestamp": 1790850875,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+18 -0
[
{
"id": "659e0548",
"date": "Mon, 12 Oct 2026 08:28:43 GMT",
"timestamp": 1791789361,
"description": "[L2 bridges and vaults upgrade](https://gist.github.com/sekuba/415516336b2e9b6e4cdea5a21662d2bd). Recalls are disabled, so failed deliveries can strand funds until they succeed (recall proves a message failed on the destination and refunds funds on the source chain). ERC20 deposits add signed permits, and ETH sends receive more gas. The separate RISC0 governance Safe lowers its threshold from 3/5 to 2/5.\n\n- [L1 Bridge, first upgrade](https://disco.l2beat.com/diff/eth:0x1c94D798CFA08F396E5BA9F81697289c53273381/eth:0xA15dca0A72da684f20e0FC708DECFb230a715462)\n- [L1 Bridge, second upgrade](https://disco.l2beat.com/diff/eth:0xA15dca0A72da684f20e0FC708DECFb230a715462/eth:0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6)\n- [L1 ERC20Vault, first upgrade](https://disco.l2beat.com/diff/eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c/eth:0x32E47c04E8c329E8c10062731448e7658aDEEB8e)\n- [L1 ERC20Vault, second upgrade](https://disco.l2beat.com/diff/eth:0x32E47c04E8c329E8c10062731448e7658aDEEB8e/eth:0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92)\n- [L2 Bridge, first upgrade](https://disco.l2beat.com/diff/taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83/taiko:0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb)\n- [L2 Bridge, second upgrade](https://disco.l2beat.com/diff/taiko:0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb/taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3)\n- [L2 ERC20Vault, first upgrade](https://disco.l2beat.com/diff/taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62/taiko:0xa01d464ca3982DAa97B19fa7F8a232eB11A9DDb3)\n- [L2 ERC20Vault, second upgrade](https://disco.l2beat.com/diff/taiko:0xa01d464ca3982DAa97B19fa7F8a232eB11A9DDb3/taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c)\n- [L1 ERC721Vault](https://disco.l2beat.com/diff/eth:0xA4C5c20aB33C96B1c281Dca37D03E23609274C49/eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802)\n- [L1 ERC1155Vault](https://disco.l2beat.com/diff/eth:0x838ed469db456b67EB3b0B74D759Be4DA999b9c8/eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E)\n- [L2 ERC721Vault](https://disco.l2beat.com/diff/taiko:0xd532f20a4751156C566Da7745db95E7f80145B36/taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0)\n- [L2 ERC1155Vault](https://disco.l2beat.com/diff/taiko:0xBBBC4ad39488b990E095042fa6c59A90d3817846/taiko:0xe148CceFFcd5494301c20e047634995C60611e57)\n- [L2 resolver replacement](https://disco.l2beat.com/diff/taiko:0x0167000000000000000000000000000000000006/taiko:0x8Af4669E3068Bae96b92cD73603f5D86beD07a9a)\n- [L1 NFT resolver replacement](https://disco.l2beat.com/diff/eth:0xEC1a9aa1C648F047752fe4eeDb2C21ceab0c6449/eth:0xFca4F0Ab7B95EEf2e3A60EF2Bc0c42DdAA62E66D)\n- [L1 default ERC20](https://disco.l2beat.com/diff/eth:0x65666141a541423606365123Ed280AB16a09A2e1/eth:0x9ccB9eBa4335096c5B64f050C3c734632D497c3b)\n- [L1 default ERC721](https://disco.l2beat.com/diff/eth:0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7/eth:0xD9c9dB7519011437C54BCD32495c0347A410bc4D)\n- [L1 default ERC1155](https://disco.l2beat.com/diff/eth:0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40/eth:0x35001aB6f53CF9fE583653Ca3F56cae75E8C385e)\n- [L2 default ERC20](https://disco.l2beat.com/diff/taiko:0x98161D67f762A9E589E502348579FA38B1Ac47A8/taiko:0xD6601cdea5857338EbdEE4CF38298aff43f01431)\n- [L2 default ERC721](https://disco.l2beat.com/diff/taiko:0x0167000000000000000000000000000000010097/taiko:0x71c2f41AEDe913AAEf2c62596E03702E348D6Cd0)\n- [L2 default ERC1155](https://disco.l2beat.com/diff/taiko:0x0167000000000000000000000000000000010098/taiko:0x7dF8bfBf0f09e94200b6a158b421e2CCaCc4830F)",
"isHighSeverity": true,
"changeCount": 198,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ERC721Vault (eth:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa) [taiko/ERC721Vault] {\n +++ description: Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n name:\n- \"MainnetERC721Vault\"\n+ \"ERC721Vault\"\n sourceHashes.1:\n- \"0x18fe27b80aff596fa58d3499fbe1ac44e8bd72cdc9ce0942afb53c5d9caa4b6e\"\n+ \"0x783ac50fedc4522f4b68132d77dbab84b7738869e0c79eccc12ecca89e33be01\"\n values.$implementation:\n- \"eth:0xA4C5c20aB33C96B1c281Dca37D03E23609274C49\"\n+ \"eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802\"\n values.$pastUpgrades.6:\n+ [\"2026-10-12T01:04:35.000Z\",\"0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4\",[\"eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.addressManager:\n- \"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n values.impl:\n- \"eth:0xA4C5c20aB33C96B1c281Dca37D03E23609274C49\"\n+ \"eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802\"\n values.lastUnpausedAt:\n- 0\n+++ description: Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\n values.resolver:\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.eth:0xA4C5c20aB33C96B1c281Dca37D03E23609274C49:\n- \"MainnetERC721Vault\"\n implementationNames.eth:0x611f3Dc278A14b6ED14410Cd9d56E1721cf33802:\n+ \"ERC721Vault\"\n template:\n+ \"taiko/ERC721Vault\"\n description:\n+ \"Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\"\n critical:\n+ true\n fieldMeta:\n+ {\"owner\":{\"severity\":\"MEDIUM\"},\"pendingOwner\":{\"severity\":\"MEDIUM\"},\"paused\":{\"severity\":\"MEDIUM\"},\"resolver\":{\"description\":\"Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\"}}\n }\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:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.9:\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.11.description:\n- \"pause and unpause token bridge flows and change the bridged token implementation for a canonical token after the migration delay.\"\n+ \"pause and unpause token flows and change a canonical token's bridged representation after the migration delay.\"\n receivedPermissions.15:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xaf145913EA4a56BE22E120ED9C24589659881702\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.15.description:\n- \"pause and unpause bridge message flows and execute one-time bridge recovery initializers.\"\n+ \"pause and unpause bridge flows and run one-time message recovery initializers.\"\n receivedPermissions.18:\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.20:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000001\",\"description\":\"pause and unpause bridge flows and run one-time message recovery initializers.\",\"role\":\".owner\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.21:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000002\",\"description\":\"pause and unpause token flows and change a canonical token's bridged representation after the migration delay.\",\"role\":\".owner\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.22:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000003\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.23:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000004\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.21.description:\n- \"can update the contract address for a given name\"\n+ \"update the contract address registered for any chainId-name pair.\"\n receivedPermissions.21.from:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n receivedPermissions.29:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.36:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.44:\n- {\"permission\":\"upgrade\",\"from\":\"taiko:0x1670000000000000000000000000000000000006\",\"role\":\"admin\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n receivedPermissions.47:\n+ {\"permission\":\"upgrade\",\"from\":\"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\",\"role\":\"admin\",\"via\":[{\"address\":\"taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C\"},{\"address\":\"eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a\"},{\"address\":\"eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261\",\"delay\":604800,\"condition\":\"(emergency proposals bypass the delay)\"}]}\n }\n```\n\n```diff\n contract Safe (eth:0x2E5bcc9959dB5F5016F830E47943b07242CB2609) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0xd5D43445d0227a47cA2eACCb9392352746eD9926\"\n+ \"eth:0x9a017883e4A6BB2a6261D92D70f71107F2C39D12\"\n values.$threshold:\n- 3\n+ 2\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"2 of 5 (40%)\"\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.2:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\"}\n directlyReceivedPermissions.8:\n- {\"permission\":\"interact\",\"from\":\"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"description\":\"update token withdrawal quotas and the quota refill period.\",\"role\":\".owner\"}\n directlyReceivedPermissions.9.description:\n- \"pause and unpause token bridge flows and change the bridged token implementation for a canonical token after the migration delay.\"\n+ \"pause and unpause token flows and change a canonical token's bridged representation after the migration delay.\"\n directlyReceivedPermissions.12:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xaf145913EA4a56BE22E120ED9C24589659881702\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\"}\n directlyReceivedPermissions.12.description:\n- \"pause and unpause bridge message flows and execute one-time bridge recovery initializers.\"\n+ \"pause and unpause bridge flows and run one-time message recovery initializers.\"\n directlyReceivedPermissions.14:\n- {\"permission\":\"interact\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"description\":\"can update the contract address for a given name\",\"role\":\".owner\"}\n directlyReceivedPermissions.22:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x91f67118DD47d502B1f0C354D0611997B022f29E\",\"role\":\"admin\"}\n directlyReceivedPermissions.28:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\",\"role\":\"admin\"}\n }\n```\n\n```diff\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 values.namedAddresses.10.address:\n- \"eth:0x65666141a541423606365123Ed280AB16a09A2e1\"\n+ \"eth:0x9ccB9eBa4335096c5B64f050C3c734632D497c3b\"\n values.namedAddresses.11.address:\n- \"eth:0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7\"\n+ \"eth:0xD9c9dB7519011437C54BCD32495c0347A410bc4D\"\n values.namedAddresses.12.address:\n- \"eth:0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40\"\n+ \"eth:0x35001aB6f53CF9fE583653Ca3F56cae75E8C385e\"\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 contract ERC20Vault (eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) [taiko/ERC20Vault] {\n +++ description: Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\n name:\n- \"MainnetERC20Vault\"\n+ \"ERC20Vault\"\n template:\n- \"taiko/SharedERC20Vault\"\n+ \"taiko/ERC20Vault\"\n sourceHashes.1:\n- \"0x9b624be34d3f91047fd5ee6a056fd5d81ed43c3ba757e53661aeb4e4dabfe4aa\"\n+ \"0x3a8df12e5f7ee6611bebe6784bc06bdd7ff8cc3c63d230e0260ca7ef9c97ead8\"\n description:\n- \"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+ \"Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\"\n values.$implementation:\n- \"eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c\"\n+ \"eth:0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92\"\n values.$pastUpgrades.9:\n+ [\"2026-10-08T07:28:47.000Z\",\"0x17c27b257bb1445a512d4426c962de5c5f4b282f459c7e851c413702ad11d10c\",[\"eth:0x32E47c04E8c329E8c10062731448e7658aDEEB8e\"]]\n values.$pastUpgrades.10:\n+ [\"2026-10-12T01:04:35.000Z\",\"0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4\",[\"eth:0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92\"]]\n values.$upgradeCount:\n- 9\n+ 11\n values.impl:\n- \"eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c\"\n+ \"eth:0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92\"\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n values.PERMIT2:\n+ \"eth:0x000000000022D473030F116dDEE9F6B43aC78BA3\"\n fieldMeta.quotaManager.description:\n- \"Quota manager that rate-limits ERC20 tokens released or minted by this vault.\"\n+ \"Immutable quota manager limiting successful token deliveries. Refunds consume no quota. The zero address disables quotas.\"\n fieldMeta.btokenDenylist.description:\n- \"Bridged tokens denied by migration logic. Denied tokens cannot be sent through the vault.\"\n+ \"Bridged tokens excluded from sends by token migration logic.\"\n fieldMeta.owner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.pendingOwner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.resolver:\n+ {\"description\":\"Immutable registry resolving the bridge, counterpart vaults and default bridged token implementation.\"}\n implementationNames.eth:0x024253C6FDC27d3161aFd43fb0241411A28dDc3c:\n- \"MainnetERC20Vault\"\n implementationNames.eth:0xd429A698d19b5789ce6Eb72d8B3ae9fad3b28A92:\n+ \"ERC20Vault\"\n }\n```\n\n```diff\n contract Taiko Multisig (eth:0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) [GnosisSafe] {\n +++ description: None\n receivedPermissions.4.description:\n- \"pause and unpause bridge message flows and fund the bridge through direct ETH transfers.\"\n+ \"pause and unpause bridge flows and fund the bridge through direct ETH transfers.\"\n }\n```\n\n```diff\n contract ERC1155Vault (eth:0xaf145913EA4a56BE22E120ED9C24589659881702) [taiko/ERC1155Vault] {\n +++ description: Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n name:\n- \"MainnetERC1155Vault\"\n+ \"ERC1155Vault\"\n sourceHashes.1:\n- \"0x4493f2ac281fab06a2ac9a899815cfeb485eb5f3c813020f91d6091bb85f101b\"\n+ \"0xf2cbbe079d267fc8e34c5014c14f0dd4269da004cf9c1dc223ac4cb9ec351163\"\n values.$implementation:\n- \"eth:0x838ed469db456b67EB3b0B74D759Be4DA999b9c8\"\n+ \"eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E\"\n values.$pastUpgrades.6:\n+ [\"2026-10-12T01:04:35.000Z\",\"0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4\",[\"eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E\"]]\n values.$upgradeCount:\n- 6\n+ 7\n values.addressManager:\n- \"eth:0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa\"\n values.impl:\n- \"eth:0x838ed469db456b67EB3b0B74D759Be4DA999b9c8\"\n+ \"eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E\"\n values.lastUnpausedAt:\n- 0\n+++ description: Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\n values.resolver:\n+ \"eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.eth:0x838ed469db456b67EB3b0B74D759Be4DA999b9c8:\n- \"MainnetERC1155Vault\"\n implementationNames.eth:0xca775D0Bb8CEFe388E344f75De91Aebd0E73c58E:\n+ \"ERC1155Vault\"\n template:\n+ \"taiko/ERC1155Vault\"\n description:\n+ \"Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\"\n critical:\n+ true\n fieldMeta:\n+ {\"owner\":{\"severity\":\"MEDIUM\"},\"pendingOwner\":{\"severity\":\"MEDIUM\"},\"paused\":{\"severity\":\"MEDIUM\"},\"resolver\":{\"description\":\"Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\"}}\n }\n```\n\n```diff\n contract Bridge (eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) [taiko/Bridge] {\n +++ description: Bridge escrow for ETH and cross-chain messages. Pausing stops all message flows. The immutable recallEnabled setting controls failed-message refunds. Successful ETH releases use the configured quota manager.\n name:\n- \"MainnetBridge\"\n+ \"Bridge\"\n template:\n- \"taiko/TaikoBridge\"\n+ \"taiko/Bridge\"\n sourceHashes.1:\n- \"0x61b87867a3f041292eb5da7940c9fc5d33aee32c063a7cf1696beb6eafac4a2b\"\n+ \"0x765f8d75f0a63f536ea3c68dd988c86a2d844ec6fb08baeabbe309578bb04a01\"\n description:\n- \"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+ \"Bridge escrow for ETH and cross-chain messages. Pausing stops all message flows. The immutable recallEnabled setting controls failed-message refunds. Successful ETH releases use the configured quota manager.\"\n values.$implementation:\n- \"eth:0x1c94D798CFA08F396E5BA9F81697289c53273381\"\n+ \"eth:0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6\"\n values.$pastUpgrades.13:\n+ [\"2026-10-08T07:28:47.000Z\",\"0x17c27b257bb1445a512d4426c962de5c5f4b282f459c7e851c413702ad11d10c\",[\"eth:0xA15dca0A72da684f20e0FC708DECFb230a715462\"]]\n values.$pastUpgrades.14:\n+ [\"2026-10-12T01:04:35.000Z\",\"0x935e4a93cf26e7bef2ac3c445815e253496d82d51e4205e7073a3d511a9111f4\",[\"eth:0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6\"]]\n values.$upgradeCount:\n- 13\n+ 15\n values.impl:\n- \"eth:0x1c94D798CFA08F396E5BA9F81697289c53273381\"\n+ \"eth:0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6\"\n values.proxiableUUID:\n- \"EXPECT_REVERT\"\n+++ description: Immutable switch controlling failMessage, recallMessage and the failed branch of retryMessage. When false, failed deliveries must succeed on retry to release their funds.\n values.recallEnabled:\n+ false\n fieldMeta.quotaManager.description:\n- \"Quota manager that rate-limits ETH released by processed or recalled bridge messages.\"\n+ \"Immutable quota manager limiting successful ETH releases. The zero address disables quotas.\"\n fieldMeta.signalService.description:\n- \"Signal service used to prove cross-chain message delivery and failure signals.\"\n+ \"Immutable signal service proving cross-chain message delivery and failure signals.\"\n fieldMeta.owner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.pendingOwner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.recallEnabled:\n+ {\"description\":\"Immutable switch controlling failMessage, recallMessage and the failed branch of retryMessage. When false, failed deliveries must succeed on retry to release their funds.\"}\n fieldMeta.resolver:\n+ {\"description\":\"Immutable registry resolving the trusted counterpart bridge on each chain.\"}\n implementationNames.eth:0x1c94D798CFA08F396E5BA9F81697289c53273381:\n- \"MainnetBridge\"\n implementationNames.eth:0xe6BF63dCc936063caD2300f32DaA67d9eE5c57b6:\n+ \"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 EOA (taiko:0x0000000000000000000000000000000000000000) {\n +++ description: None\n receivedPermissions:\n+ [{\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000001\",\"description\":\"pause and unpause bridge flows and fund the bridge through direct ETH transfers.\",\"role\":\".pauser\"}]\n }\n```\n\n```diff\n contract Bridge (taiko:0x1670000000000000000000000000000000000001) [taiko/Bridge] {\n +++ description: Bridge escrow holding preminted ETH on Taiko. Failed messages remain retryable, but message failure and source-chain refunds are disabled.\n template:\n- \"taiko/L2Bridge\"\n+ \"taiko/Bridge\"\n sourceHashes.1:\n- \"0xfada2b71cfef6dfc63b33a9681baa712699f12de05eaf91f635ed3387a304791\"\n+ \"0x765f8d75f0a63f536ea3c68dd988c86a2d844ec6fb08baeabbe309578bb04a01\"\n values.$implementation:\n- \"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83\"\n+ \"taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3\"\n values.$pastUpgrades.8:\n+ [\"2026-10-08T07:30:21.000Z\",\"0xc61c925bbc9b815715c6bc009cfcb50c16e93904dc07e799c913953a2b6be095\",[\"taiko:0xa200c2268d77737a8Fd2CA1698dA6eeab2a85CEb\"]]\n values.$pastUpgrades.9:\n+ [\"2026-10-12T01:07:17.000Z\",\"0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d\",[\"taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3\"]]\n values.$upgradeCount:\n- 8\n+ 10\n values.addressManager:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n values.bridgeWatchdog:\n- \"taiko:0x0000000000000000000000000000000000000000\"\n values.chainWatchdog:\n- \"taiko:0x0000000000000000000000000000000000000000\"\n values.impl:\n- \"taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83\"\n+ \"taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3\"\n values.lastUnpausedAt:\n- 0\n+++ severity: MEDIUM\n values.pauser:\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n+++ description: Immutable switch controlling failMessage, recallMessage and the failed branch of retryMessage. When false, failed deliveries must succeed on retry to release their funds.\n values.recallEnabled:\n+ false\n+++ description: Immutable registry resolving the trusted counterpart bridge on each chain.\n values.resolver:\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n fieldMeta.addressManager:\n- {\"severity\":\"HIGH\"}\n fieldMeta.signalService.severity:\n- \"HIGH\"\n fieldMeta.signalService.description:\n+ \"Immutable signal service proving cross-chain message delivery and failure signals.\"\n fieldMeta.quotaManager.severity:\n- \"HIGH\"\n fieldMeta.quotaManager.description:\n- \"only relevant if not zero address\"\n+ \"Immutable quota manager limiting successful ETH releases. The zero address disables quotas.\"\n fieldMeta.chainWatchdog:\n- {\"severity\":\"MEDIUM\",\"description\":\"only relevant if not zero address\"}\n fieldMeta.bridgeWatchdog:\n- {\"severity\":\"MEDIUM\",\"description\":\"only relevant if not zero address\"}\n fieldMeta.owner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.pauser:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.recallEnabled:\n+ {\"description\":\"Immutable switch controlling failMessage, recallMessage and the failed branch of retryMessage. When false, failed deliveries must succeed on retry to release their funds.\"}\n fieldMeta.resolver:\n+ {\"description\":\"Immutable registry resolving the trusted counterpart bridge on each chain.\"}\n implementationNames.taiko:0x95ae2918dcbc6aFF8B4c1F1BCC1bf819b6e08B83:\n- \"Bridge\"\n implementationNames.taiko:0xF372Db3F06AcaB3347697866d2047a54D1BA8eB3:\n+ \"Bridge\"\n category:\n+ {\"name\":\"Shared Infrastructure\",\"priority\":4}\n }\n```\n\n```diff\n contract ERC20Vault (taiko:0x1670000000000000000000000000000000000002) [taiko/ERC20Vault] {\n +++ description: Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\n template:\n- \"taiko/L2ERC20Vault\"\n+ \"taiko/ERC20Vault\"\n sourceHashes.1:\n- \"0x9cc2e724dd00141e1e07621839efbb2f8c96ed9f67d6fbe50664ea8b6531c118\"\n+ \"0x3a8df12e5f7ee6611bebe6784bc06bdd7ff8cc3c63d230e0260ca7ef9c97ead8\"\n description:\n- \"Escrow for L2-native tokens sent to L1 via the canonical bridge.\"\n+ \"Vault for canonical ERC20 tokens and their bridged representations. Deposits support standing approvals, ERC-2612 permits and Permit2 signatures. Successful deliveries consume token quota when a quota manager is configured. The bridge controls access to the refund callback.\"\n values.$implementation:\n- \"taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62\"\n+ \"taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c\"\n values.$pastUpgrades.4:\n+ [\"2026-10-08T07:30:21.000Z\",\"0xc61c925bbc9b815715c6bc009cfcb50c16e93904dc07e799c913953a2b6be095\",[\"taiko:0xa01d464ca3982DAa97B19fa7F8a232eB11A9DDb3\"]]\n values.$pastUpgrades.5:\n+ [\"2026-10-12T01:07:17.000Z\",\"0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d\",[\"taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c\"]]\n values.$upgradeCount:\n- 4\n+ 6\n values.addressManager:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n values.impl:\n- \"taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62\"\n+ \"taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c\"\n values.lastUnpausedAt:\n- 1716811943\n values.PERMIT2:\n+ \"taiko:0x000000000022D473030F116dDEE9F6B43aC78BA3\"\n+++ description: Immutable quota manager limiting successful token deliveries. Refunds consume no quota. The zero address disables quotas.\n values.quotaManager:\n+ \"taiko:0x0000000000000000000000000000000000000000\"\n+++ description: Immutable registry resolving the bridge, counterpart vaults and default bridged token implementation.\n values.resolver:\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n fieldMeta.addressManager:\n- {\"severity\":\"HIGH\"}\n fieldMeta.owner:\n+ {\"severity\":\"MEDIUM\"}\n fieldMeta.resolver:\n+ {\"description\":\"Immutable registry resolving the bridge, counterpart vaults and default bridged token implementation.\"}\n fieldMeta.quotaManager:\n+ {\"description\":\"Immutable quota manager limiting successful token deliveries. Refunds consume no quota. The zero address disables quotas.\"}\n fieldMeta.btokenDenylist:\n+ {\"description\":\"Bridged tokens excluded from sends by token migration logic.\"}\n implementationNames.taiko:0xb96AbB41b01E3ad519D00E80355a1c3801910F62:\n- \"ERC20Vault\"\n implementationNames.taiko:0x25D8465fD0C8D89bfdE910E47c41f4E465672B5c:\n+ \"ERC20Vault\"\n category:\n+ {\"name\":\"Shared Infrastructure\",\"priority\":4}\n }\n```\n\n```diff\n contract ERC721Vault (taiko:0x1670000000000000000000000000000000000003) [taiko/ERC721Vault] {\n +++ description: Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n sourceHashes.1:\n- \"0xdb576f6eacda08057701d15f09fa5c2b615ae34b565d935a56dc43245eb46703\"\n+ \"0x783ac50fedc4522f4b68132d77dbab84b7738869e0c79eccc12ecca89e33be01\"\n values.$implementation:\n- \"taiko:0xd532f20a4751156C566Da7745db95E7f80145B36\"\n+ \"taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0\"\n values.$pastUpgrades.3:\n+ [\"2026-10-12T01:07:17.000Z\",\"0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d\",[\"taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.addressManager:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n values.impl:\n- \"taiko:0xd532f20a4751156C566Da7745db95E7f80145B36\"\n+ \"taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0\"\n values.lastUnpausedAt:\n- 0\n+++ description: Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\n values.resolver:\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.taiko:0xd532f20a4751156C566Da7745db95E7f80145B36:\n- \"ERC721Vault\"\n implementationNames.taiko:0x4cAb75DBE321084fD15c7AA9f7398e073A7EaBd0:\n+ \"ERC721Vault\"\n template:\n+ \"taiko/ERC721Vault\"\n description:\n+ \"Escrows canonical ERC721 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\"\n critical:\n+ true\n fieldMeta:\n+ {\"owner\":{\"severity\":\"MEDIUM\"},\"pendingOwner\":{\"severity\":\"MEDIUM\"},\"paused\":{\"severity\":\"MEDIUM\"},\"resolver\":{\"description\":\"Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\"}}\n }\n```\n\n```diff\n contract ERC1155Vault (taiko:0x1670000000000000000000000000000000000004) [taiko/ERC1155Vault] {\n +++ description: Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\n sourceHashes.1:\n- \"0x7325669dd281de5a8bb65da63dfffe0a322aca151892bffa8464934fbfafaa31\"\n+ \"0xf2cbbe079d267fc8e34c5014c14f0dd4269da004cf9c1dc223ac4cb9ec351163\"\n values.$implementation:\n- \"taiko:0xBBBC4ad39488b990E095042fa6c59A90d3817846\"\n+ \"taiko:0xe148CceFFcd5494301c20e047634995C60611e57\"\n values.$pastUpgrades.3:\n+ [\"2026-10-12T01:07:17.000Z\",\"0xe8c9d02693ed235dce16a36685a7d07f2929b6927054e07be41293cec00d194d\",[\"taiko:0xe148CceFFcd5494301c20e047634995C60611e57\"]]\n values.$upgradeCount:\n- 3\n+ 4\n values.addressManager:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n values.impl:\n- \"taiko:0xBBBC4ad39488b990E095042fa6c59A90d3817846\"\n+ \"taiko:0xe148CceFFcd5494301c20e047634995C60611e57\"\n values.lastUnpausedAt:\n- 0\n+++ description: Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\n values.resolver:\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n errors:\n- {\"proxiableUUID\":\"Processing error occurred.\"}\n implementationNames.taiko:0xBBBC4ad39488b990E095042fa6c59A90d3817846:\n- \"ERC1155Vault\"\n implementationNames.taiko:0xe148CceFFcd5494301c20e047634995C60611e57:\n+ \"ERC1155Vault\"\n template:\n+ \"taiko/ERC1155Vault\"\n description:\n+ \"Escrows canonical ERC1155 tokens and mints or burns their bridged representations. An immutable resolver selects the local bridge, counterpart vaults and default bridged token implementation. Releases authenticate the bridge and source vault.\"\n critical:\n+ true\n fieldMeta:\n+ {\"owner\":{\"severity\":\"MEDIUM\"},\"pendingOwner\":{\"severity\":\"MEDIUM\"},\"paused\":{\"severity\":\"MEDIUM\"},\"resolver\":{\"description\":\"Immutable resolver selecting trusted bridge and vault counterparties and default token implementations.\"}}\n }\n```\n\n```diff\n- Status: DELETED\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 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 directlyReceivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000001\",\"description\":\"pause and unpause bridge flows and run one-time message recovery initializers.\",\"role\":\".owner\"}\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000002\",\"description\":\"pause and unpause token flows and change a canonical token's bridged representation after the migration delay.\",\"role\":\".owner\"}\n directlyReceivedPermissions.2:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000003\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\"}\n directlyReceivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"taiko:0x1670000000000000000000000000000000000004\",\"description\":\"pause and unpause NFT deposits, releases and refunds.\",\"role\":\".owner\"}\n directlyReceivedPermissions.1.description:\n- \"can update the contract address for a given name\"\n+ \"update the contract address registered for any chainId-name pair.\"\n directlyReceivedPermissions.1.from:\n- \"taiko:0x1670000000000000000000000000000000000006\"\n+ \"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\"\n directlyReceivedPermissions.7:\n- {\"permission\":\"upgrade\",\"from\":\"taiko:0x1670000000000000000000000000000000000006\",\"role\":\"admin\"}\n directlyReceivedPermissions.12:\n+ {\"permission\":\"upgrade\",\"from\":\"taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984\",\"role\":\"admin\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract DefaultResolver (taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984) [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```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract MainnetERC721Vault (eth:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\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: CREATED\n contract MainnetERC1155Vault (eth:0xaf145913EA4a56BE22E120ED9C24589659881702) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\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+ Status: CREATED\n contract ERC721Vault (taiko:0x1670000000000000000000000000000000000003) [N/A]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ERC1155Vault (taiko:0x1670000000000000000000000000000000000004) [N/A]\n +++ description: None\n```"
}
]
},
{
"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": 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+ 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```"
}
]
}
]
+265 -84
{
"changes": [
{
"timestamp": 1716634859,
"type": "code",
"earliest": 1716634859
},
{
"timestamp": 1716634859,
"type": "code",
"earliest": 1716634859
},
{
"timestamp": 1716634859,
"type": "code",
"earliest": 1716634859
},
{
"timestamp": 1716634859,
"type": "code",
"earliest": 1716634859
},
{
"timestamp": 1716722231,
"type": "code",
"earliest": 1716722231
},
{
"timestamp": 1716722231,
"type": "code",
"earliest": 1716722231
},
{
"timestamp": 1716802235,
"type": "code",
"earliest": 1716802235
},
{
"timestamp": 1716802307,
"type": "code",
"earliest": 1716802307
},
{
"timestamp": 1716827831,
"type": "code",
"earliest": 1716827831
},
{
"timestamp": 1716872807,
"type": "state",
"earliest": 1716872807
},
{
"timestamp": 1716873491,
"type": "code",
"earliest": 1716873491
},
{
"timestamp": 1716958835,
"type": "code",
"earliest": 1716958835
},
{
"timestamp": 1716959027,
"type": "code",
"earliest": 1716959027
},
{
"timestamp": 1716969803,
"type": "code",
"earliest": 1716969803
},
{
"timestamp": 1717148087,
"type": "code",
"earliest": 1717148087
},
{
"timestamp": 1717148375,
"type": "code",
"earliest": 1717148375
},
{
"timestamp": 1717481351,
"type": "code",
"earliest": 1717481351
},
{
"timestamp": 1717481411,
"type": "code",
"updateId": "b287d48e",
"earliest": 1717481411
},
{
"timestamp": 1717486847,
"type": "code",
"earliest": 1717486847
},
{
"timestamp": 1717663871,
"type": "code",
"earliest": 1717663871
},
{
"timestamp": 1717663871,
"type": "code",
"updateId": "e2633393",
"earliest": 1717663871
},
{
"timestamp": 1717663871,
"type": "code",
"updateId": "e2633393",
"earliest": 1717663871
},
{
"timestamp": 1717663871,
"type": "code",
"updateId": "e2633393",
"earliest": 1717663871
},
{
"timestamp": 1717663871,
"type": "code",
"updateId": "e2633393",
"earliest": 1717663871
},
{
"timestamp": 1717663871,
"type": "code",
"updateId": "e2633393",
"earliest": 1717663871
},
{
"timestamp": 1717732931,
"type": "code",
"earliest": 1717732931
},
{
"timestamp": 1717732931,
"type": "code",
"earliest": 1717732931
},
{
"timestamp": 1717732931,
"type": "code",
"earliest": 1717732931
},
{
"timestamp": 1717749635,
"type": "code",
"earliest": 1717749635
},
{
"timestamp": 1717749635,
"type": "code",
"earliest": 1717749635
},
{
"timestamp": 1717749635,
"type": "code",
"earliest": 1717749635
},
{
"timestamp": 1717749635,
"type": "code",
"earliest": 1717749635
},
{
"timestamp": 1717749635,
"type": "code",
"updateId": "1ede5389",
"earliest": 1717749635
},
{
"timestamp": 1717750463,
"type": "code",
"earliest": 1717750463
},
{
"timestamp": 1717750463,
"type": "code",
"earliest": 1717750463
},
{
"timestamp": 1717750463,
"type": "code",
"earliest": 1717750463
},
{
"timestamp": 1717750463,
"type": "code",
"earliest": 1717750463
},
{
"timestamp": 1718023547,
"type": "code",
"earliest": 1718023547
},
{
"timestamp": 1718023859,
"type": "code",
"earliest": 1718023859
},
{
"timestamp": 1719502583,
"type": "code",
"earliest": 1719502583
},
{
"timestamp": 1719503519,
"type": "code",
"earliest": 1719503519
},
{
"timestamp": 1719806771,
"type": "code",
"earliest": 1719806771
},
{
"timestamp": 1719903815,
"type": "code",
"earliest": 1719903815
},
{
"timestamp": 1719903815,
"type": "code",
"earliest": 1719903815
},
{
"timestamp": 1719903815,
"type": "code",
"updateId": "6e2c88a0",
"earliest": 1719903815
},
{
"timestamp": 1719904547,
"type": "code",
"earliest": 1719904547
},
{
"timestamp": 1719930659,
"type": "code",
"updateId": "6e2c88a0",
"earliest": 1719930659
},
{
"timestamp": 1720874075,
"type": "code",
"updateId": "d5817b5e",
"earliest": 1720874075
},
{
"timestamp": 1721133959,
"type": "code",
"earliest": 1721133959
},
{
"timestamp": 1721140223,
"type": "code",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721140223
},
{
"timestamp": 1721140223,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721140223
},
{
"timestamp": 1721197175,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721197175
},
{
"timestamp": 1721197175,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721197175
},
{
"timestamp": 1721197175,
"type": "code",
"updateId": "bf28d6a1",
"earliest": 1721197175
},
{
"timestamp": 1721356979,
"type": "code",
"updateId": "46dff8f0",
"earliest": 1721356979
},
{
"timestamp": 1729065323,
"type": "code",
"updateId": "a96fdad5",
"earliest": 1729065323
},
{
"timestamp": 1729831739,
"type": "state",
"earliest": 1729831739
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730452835
},
{
"timestamp": 1730452835,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730452835
},
{
"timestamp": 1730452979,
"type": "code",
"earliest": 1730452979
},
{
"timestamp": 1730452979,
"type": "code",
"earliest": 1730452979
},
{
"timestamp": 1730452979,
"type": "code",
"earliest": 1730452979
},
{
"timestamp": 1730452979,
"type": "code",
"earliest": 1730452979
},
{
"timestamp": 1730452979,
"type": "code",
"earliest": 1730452979
},
{
"timestamp": 1730549099,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730549099
},
{
"timestamp": 1730610923,
"type": "code",
"updateId": "38328c2f",
"earliest": 1730610923
},
{
"timestamp": 1731054947,
"type": "code",
"earliest": 1731054947
},
{
"timestamp": 1731136199,
"type": "state",
"earliest": 1731136199
},
{
"timestamp": 1731216107,
"type": "code",
"updateId": "a83164a8",
"earliest": 1731216107
},
{
"timestamp": 1731252767,
"type": "code",
"earliest": 1731252767
},
{
"timestamp": 1731253583,
"type": "code",
"earliest": 1731253583
},
{
"timestamp": 1731255023,
"type": "code",
"updateId": "a83164a8",
"earliest": 1731255023
},
{
"timestamp": 1734921911,
"type": "code",
"earliest": 1734921911
},
{
"timestamp": 1734921911,
"type": "code",
"updateId": "9326eb49",
"earliest": 1734921911
},
{
"timestamp": 1734923555,
"type": "code",
"updateId": "9326eb49",
"earliest": 1734923555
},
{
"timestamp": 1734965747,
"type": "code",
"updateId": "a66aba2e",
"earliest": 1734965747
},
{
"timestamp": 1735049951,
"type": "code",
"updateId": "2d84825c",
"earliest": 1735049951
},
{
"timestamp": 1736752691,
"type": "state",
"earliest": 1736752691
},
{
"timestamp": 1739429867,
"type": "code",
"updateId": "4f615b6f",
"earliest": 1739429867
},
{
"timestamp": 1740626843,
"type": "code",
"updateId": "e32a44c7",
"earliest": 1740626843
},
{
"timestamp": 1740626843,
"type": "state",
"earliest": 1740626843
},
{
"timestamp": 1744876115,
"type": "state",
"earliest": 1744876115
},
{
"timestamp": 1745853023,
"type": "state",
"earliest": 1745853023
},
{
"timestamp": 1747097243,
"type": "code",
"earliest": 1747097243
},
{
"timestamp": 1747285931,
"type": "code",
"earliest": 1747285931
},
{
"timestamp": 1747298447,
"type": "code",
"earliest": 1747298447
},
{
"timestamp": 1747298447,
"type": "code",
"updateId": "167b8dff",
"earliest": 1747298447
},
{
"timestamp": 1747362983,
"type": "code",
"updateId": "167b8dff",
"earliest": 1747362983
},
{
"timestamp": 1747409099,
"type": "state",
"updateId": "167b8dff",
"earliest": 1747409099
},
{
"timestamp": 1747578311,
"type": "code",
"earliest": 1747578311
},
{
"timestamp": 1747624787,
"type": "code",
"earliest": 1747624787
},
{
"timestamp": 1747624787,
"type": "code",
"earliest": 1747624787
},
{
"timestamp": 1748997623,
"type": "code",
"updateId": "136d39c0",
"earliest": 1748997623
},
{
"timestamp": 1749196415,
"type": "state",
"updateId": "2bf787f6",
"earliest": 1749196415
},
{
"timestamp": 1749700235,
"type": "code",
"updateId": "e8c7b9d2",
"earliest": 1749700235
},
{
"timestamp": 1749700235,
"type": "state",
"updateId": "e8c7b9d2",
"earliest": 1749700235
},
{
"timestamp": 1749710483,
"type": "state",
"earliest": 1749710483
},
{
"timestamp": 1749742547,
"type": "state",
"updateId": "e8c7b9d2",
"earliest": 1749742547
},
{
"timestamp": 1750312727,
"type": "state",
"earliest": 1750312727
},
{
"timestamp": 1750312727,
"type": "state",
"earliest": 1750312727
},
{
"timestamp": 1750316615,
"type": "state",
"updateId": "7ce948a4",
"earliest": 1750316615
},
{
"timestamp": 1750316615,
"type": "state",
"updateId": "7ce948a4",
"earliest": 1750316615
},
{
"timestamp": 1751986835,
"type": "state",
"updateId": "82d57b03",
"earliest": 1751986835
},
{
"timestamp": 1751986835,
"type": "state",
"updateId": "82d57b03",
"earliest": 1751986835
},
{
"timestamp": 1752542435,
"type": "code",
"updateId": "9c15da27",
"earliest": 1752542435
},
{
"timestamp": 1753329371,
"type": "code",
"earliest": 1753329371
},
{
"timestamp": 1754913371,
"type": "code",
"earliest": 1754913371
},
{
"timestamp": 1754913371,
"type": "code",
"earliest": 1754913371
},
{
"timestamp": 1754913371,
"type": "state",
"updateId": "ca91bdf8",
"earliest": 1754913371
},
{
"timestamp": 1754914103,
"type": "code",
"earliest": 1754914103
},
{
"timestamp": 1754919911,
"type": "code",
"updateId": "ca91bdf8",
"earliest": 1754919911
},
{
"timestamp": 1754919911,
"type": "code",
"updateId": "ca91bdf8",
"earliest": 1754919911
},
{
"timestamp": 1755140843,
"type": "state",
"updateId": "ca91bdf8",
"earliest": 1755140843
},
{
"timestamp": 1755170747,
"type": "state",
"updateId": "ca91bdf8",
"earliest": 1755170747
},
{
"timestamp": 1755179444,
"type": "code",
"earliest": 1755179444
},
{
"timestamp": 1756244927,
"type": "code",
"earliest": 1756244927
},
{
"timestamp": 1756244927,
"type": "code",
"updateId": "709bc2e7",
"earliest": 1756244927
},
{
"timestamp": 1756244927,
"type": "code",
"updateId": "709bc2e7",
"earliest": 1756244927
},
{
"timestamp": 1756244927,
"type": "code",
"updateId": "709bc2e7",
"earliest": 1756244927
},
{
"timestamp": 1756261223,
"type": "state",
"earliest": 1756261223
},
{
"timestamp": 1756261223,
"type": "state",
"earliest": 1756261223
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1756481795,
"type": "state",
"updateId": "709bc2e7",
"earliest": 1756481795
},
{
"timestamp": 1757138365,
"type": "state",
"updateId": "66b36386",
"earliest": 1757138365
},
{
"timestamp": 1757138411,
"type": "state",
"updateId": "66b36386",
"earliest": 1757138411
},
{
"timestamp": 1757346575,
"type": "state",
"updateId": "0763c53c",
"earliest": 1757346575
},
{
"timestamp": 1764720995,
"type": "code",
"updateId": "c64c6e2d",
"earliest": 1764720995
},
{
"timestamp": 1764814439,
"type": "state",
"updateId": "c074de1f",
"earliest": 1764814439
},
{
"timestamp": 1764814439,
"type": "code",
"updateId": "c074de1f",
"earliest": 1764814439
},
{
"timestamp": 1764814439,
"type": "state",
"updateId": "c074de1f",
"earliest": 1764814439
},
{
"timestamp": 1764814439,
"type": "state",
"updateId": "c074de1f",
"earliest": 1764814439
},
{
"timestamp": 1764814439,
"type": "code",
"updateId": "c074de1f",
"earliest": 1764814439
},
{
"timestamp": 1768829555,
"type": "state",
"updateId": "6defe874",
"earliest": 1768829555
},
{
"timestamp": 1770777907,
"type": "code",
"earliest": 1770777907
},
{
"timestamp": 1772676527,
"type": "state",
"updateId": "af40d70c",
"earliest": 1772676527
},
{
"timestamp": 1774964687,
"type": "code",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "code",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "state",
"updateId": "3bedf566",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "state",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "code",
"updateId": "3bedf566",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "state",
"updateId": "3bedf566",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "state",
"updateId": "3bedf566",
"earliest": 1774964687
},
{
"timestamp": 1774964687,
"type": "state",
"earliest": 1774964687
},
{
"timestamp": 1775138543,
"type": "code",
"earliest": 1775138543
},
{
"timestamp": 1775138543,
"type": "code",
"earliest": 1775138543
},
{
"timestamp": 1775138543,
"type": "state",
"updateId": "613479a6",
"earliest": 1775138543
},
{
"timestamp": 1775138543,
"type": "state",
"updateId": "613479a6",
"earliest": 1775138543
},
{
"timestamp": 1775208959,
"type": "state",
"updateId": "613479a6",
"earliest": 1775208959
},
{
"timestamp": 1775208959,
"type": "state",
"updateId": "613479a6",
"earliest": 1775208959
},
{
"timestamp": 1775208959,
"type": "state",
"updateId": "613479a6",
"earliest": 1775208959
},
{
"timestamp": 1775208959,
"type": "state",
"updateId": "613479a6",
"earliest": 1775208959
},
{
"timestamp": 1776370439,
"type": "state",
"updateId": "13fde891",
"earliest": 1776370439
},
{
"timestamp": 1776758963,
"type": "state",
"updateId": "2011675c",
"earliest": 1776758963
},
{
"timestamp": 1777562051,
"type": "code",
"earliest": 1777562051
},
{
"timestamp": 1777562051,
"type": "state",
"updateId": "0b48d893",
"earliest": 1777562051
},
{
"timestamp": 1777563432,
"type": "code",
"earliest": 1777563432
},
{
"timestamp": 1777563432,
"type": "code",
"earliest": 1777563432
},
{
"timestamp": 1777563432,
"type": "state",
"updateId": "0b48d893",
"earliest": 1777563432
},
{
"timestamp": 1777563432,
"type": "state",
"updateId": "0b48d893",
"earliest": 1777563432
},
{
"timestamp": 1780627823,
"type": "state",
"updateId": "e91cf682",
"earliest": 1780627823
},
{
"timestamp": 1780627823,
"type": "state",
"updateId": "e91cf682",
"earliest": 1780627823
},
{
"timestamp": 1782120275,
"type": "code",
"earliest": 1782120275
},
{
"timestamp": 1782739115,
"type": "code",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "code",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "code",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "code",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "state",
"updateId": "423dca4a",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "state",
"updateId": "423dca4a",
"earliest": 1782739115
},
{
"timestamp": 1782739115,
"type": "state",
"updateId": "423dca4a",
"earliest": 1782739115
},
{
"timestamp": 1785761183,
"type": "code",
"earliest": 1785761183
},
{
"timestamp": 1785761183,
"type": "state",
"updateId": "ebe21a45",
"earliest": 1785761183
},
{
"timestamp": 1785761183,
"type": "state",
"updateId": "ebe21a45",
"earliest": 1785761183
},
{
"timestamp": 1785761183,
"type": "state",
"updateId": "ebe21a45",
"earliest": 1785761183
},
{
"timestamp": 1785761183,
"type": "state",
"updateId": "ebe21a45",
"earliest": 1785761183
},
{
"timestamp": 1789654379,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789654379
},
{
"timestamp": 1789654379,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789654379
},
{
"timestamp": 1789654379,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789654379
},
{
"timestamp": 1789952579,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789952579
},
{
"timestamp": 1789952579,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789952579
},
{
"timestamp": 1789952579,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789952579
},
{
"timestamp": 1789952579,
"type": "state",
"updateId": "1c35c2f8",
"earliest": 1789952579
},
{
"timestamp": 1791395339,
"type": "state",
"updateId": "659e0548",
"earliest": 1791395339
},
{
"timestamp": 1791444527,
"type": "code",
"earliest": 1791444527
},
{
"timestamp": 1791444527,
"type": "code",
"earliest": 1791444527
},
{
"timestamp": 1791444527,
"type": "state",
"updateId": "659e0548",
"earliest": 1791444527
},
{
"timestamp": 1791444621,
"type": "code",
"earliest": 1791444621
},
{
"timestamp": 1791444621,
"type": "code",
"earliest": 1791444621
},
{
"timestamp": 1791444621,
"type": "state",
"updateId": "659e0548",
"earliest": 1791444621
},
{
"timestamp": 1791526391,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526391
},
{
"timestamp": 1791526499,
"type": "state",
"updateId": "7808de1e",
"earliest": 1791526499
},
{
"timestamp": 1791767075,
"type": "code",
"earliest": 1791767075
},
{
"timestamp": 1791767075,
"type": "code",
"earliest": 1791767075
},
{
"timestamp": 1791767075,
"type": "code",
"earliest": 1791767075
},
{
"timestamp": 1791767075,
"type": "code",
"earliest": 1791767075
},
{
"timestamp": 1791767075,
"type": "state",
"updateId": "659e0548",
"earliest": 1791767075
},
{
"timestamp": 1791767237,
"type": "code",
"earliest": 1791767237
},
{
"timestamp": 1791767237,
"type": "code",
"earliest": 1791767237
},
{
"timestamp": 1791767237,
"type": "code",
"earliest": 1791767237
},
{
"timestamp": 1791767237,
"type": "code",
"earliest": 1791767237
},
{
"timestamp": 1791767237,
"type": "state",
"updateId": "659e0548",
"earliest": 1791767237
}
],
"contracts": [
{
"name": "Bridge",
"address": "taiko:0x1670000000000000000000000000000000000001",
"isVerified": true,
"ossifyingSince": 1791767237,
"codeChangeCount": 10,
"stateChangeCount": 1
},
{
"name": "ERC20Vault",
"address": "taiko:0x1670000000000000000000000000000000000002",
"isVerified": true,
"ossifyingSince": 1791767237,
"codeChangeCount": 6,
"stateChangeCount": 1
},
{
"name": "ERC721Vault",
"address": "taiko:0x1670000000000000000000000000000000000003",
"isVerified": true,
"ossifyingSince": 1791767237,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "ERC1155Vault",
"address": "taiko:0x1670000000000000000000000000000000000004",
"isVerified": true,
"ossifyingSince": 1791767237,
"codeChangeCount": 3,
"stateChangeCount": 0
},
{
"name": "DefaultResolver",
"address": "taiko:0x2ea05A9CD06984Cf533a1829d8b0BE6289a43984",
"isVerified": true,
"ossifyingSince": 1791767237,
"codeChangeCount": 0,
"stateChangeCount": 2
},
{
"name": "ERC721Vault",
"address": "eth:0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa",
"isVerified": true,
"ossifyingSince": 1791767075,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "DefaultResolver",
"address": "eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e",
"isVerified": true,
"ossifyingSince": 1791767075,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "ERC20Vault",
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"isVerified": true,
"ossifyingSince": 1791767075,
"codeChangeCount": 9,
"stateChangeCount": 1
},
{
"name": "ERC1155Vault",
"address": "eth:0xaf145913EA4a56BE22E120ED9C24589659881702",
"isVerified": true,
"ossifyingSince": 1791767075,
"codeChangeCount": 5,
"stateChangeCount": 0
},
{
"name": "Bridge",
"address": "eth:0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC",
"isVerified": true,
"ossifyingSince": 1791767075,
"codeChangeCount": 12,
"stateChangeCount": 1
},
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1791526499,
"codeChangeCount": 0,
"stateChangeCount": 3
},
{
"name": "TimelockController",
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"isVerified": true,
"ossifyingSince": 1791395339,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"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": 8
},
{
"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": 17
},
{
"name": "SignerList (Security Council)",
"address": "eth:0x0F95E6968EC1B28c794CF1aD99609431de5179c2",
"isVerified": true,
"ossifyingSince": 1789654379,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"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": 1
},
{
"name": "ZkRequiredVerifier",
"address": "eth:0x7284aaC05555Ae6559bdAd8B4221eC9584254Eec",
"isVerified": true,
"ossifyingSince": 1783672091,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "MainnetERC20Vault",
"address": "eth:0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab",
"isVerified": true,
"ossifyingSince": 1782739115,
"codeChangeCount": 7,
"stateChangeCount": 1
},
{
"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": "QuotaManager",
"address": "eth:0xBaCb003f0B13CeAF09Eb9Baf5915A640BD4Bc6cC",
"isVerified": true,
"ossifyingSince": 1782357335,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SignalService",
"address": "taiko:0x1670000000000000000000000000000000000005",
"isVerified": true,
"ossifyingSince": 1777563432,
"codeChangeCount": 3,
"stateChangeCount": 3
},
{
"name": "Anchor",
"address": "taiko:0x1670000000000000000000000000000000010001",
"isVerified": true,
"ossifyingSince": 1777563432,
"codeChangeCount": 7,
"stateChangeCount": 3
},
{
"name": "SP1VerifierGateway",
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"isVerified": true,
"ossifyingSince": 1776370439,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"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": 1
},
{
"name": "ProverWhitelist",
"address": "eth:0xEa798547d97e345395dA071a0D7ED8144CD612Ae",
"isVerified": true,
"ossifyingSince": 1772641607,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "TimelockController",
"address": "eth:0x0b144E07A0826182B6b59788c34b32Bfa86Fb711",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x1efDd13f831ceeEa14940806705A53D3211CD698",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0x2a098988600d87650Fb061FfAff08B97149Fa84D",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroSetVerifier",
"address": "eth:0x5005aBa3DFf7C940fcc1e48DccCAD611a80eEB85",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x844D5f01161E3559d36f23d0Aa9E9620949aF782",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierRouter",
"address": "eth:0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroVerifierEmergencyStop",
"address": "eth:0x9F9994Eb4Cb5200198FEfb470f8b50301662e696",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "RiscZeroGroth16Verifier",
"address": "eth:0xafB31f5b70623CDF4b20Ada3f7230916A5A79df9",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SP1Verifier",
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"isVerified": true,
"ossifyingSince": 1772638115,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "L2AddressManager",
"address": "taiko:0x1670000000000000000000000000000000000006",
"isVerified": true,
"ossifyingSince": 1757138365,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "DefaultResolver",
"address": "eth:0x8Efa01564425692d0a0838DC10E300BD310Cb43e",
"isVerified": true,
"ossifyingSince": 1756481795,
"codeChangeCount": 0,
"stateChangeCount": 1
},
{
"name": "Bridge",
"address": "taiko:0x1670000000000000000000000000000000000001",
"isVerified": true,
"ossifyingSince": 1750312727,
"codeChangeCount": 8,
"stateChangeCount": 1
},
{
"name": "ERC20Vault",
"address": "taiko:0x1670000000000000000000000000000000000002",
"isVerified": true,
"ossifyingSince": 1749710483,
"codeChangeCount": 4,
"stateChangeCount": 1
},
{
"name": "DelegateController",
"address": "taiko:0xfA06E15B8b4c5BF3FC5d9cfD083d45c53Cbe8C7C",
"isVerified": true,
"ossifyingSince": 1749710483,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "Taiko Token",
"address": "eth:0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800",
"isVerified": true,
"ossifyingSince": 1749196415,
"codeChangeCount": 5,
"stateChangeCount": 1
},
{
"name": "TaikoDAOController",
"address": "eth:0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a",
"isVerified": true,
"ossifyingSince": 1749196415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "OptimisticTokenVotingPlugin",
"address": "eth:0x989E348275b659d36f8751ea1c10D146211650BE",
"isVerified": true,
"ossifyingSince": 1749196415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "DAO",
"address": "eth:0x9CDf589C941ee81D75F34d3755671d614f7cf261",
"isVerified": true,
"ossifyingSince": 1749196415,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "PEMCertChainLib",
"address": "eth:0x02772b7B3a5Bea0141C993Dbb8D0733C19F46169",
"isVerified": true,
"ossifyingSince": 1716620627,
"codeChangeCount": 0,
"stateChangeCount": 0
},
{
"name": "SigVerifyLib",
"address": "eth:0x47bB416ee947fE4a4b655011aF7d6E3A1B80E6e9",
"isVerified": true,
"ossifyingSince": 1716620627,
"codeChangeCount": 0,
"stateChangeCount": 0
}
],
"deployments": [
1714033799,
1714550603,
1714550603,
1714550603,
1714550603,
1714550615,
1714550639,
1714550639,
1714550639,
1716620627,
1716620627,
1716620627,
1716620627,
1716620627,
1716802403,
1716802439,
1718237363,
1718237375,
1720099223,
1746111707,
1746111707,
1746111707,
1746111707,
1746111707,
1747268711,
1747268759,
1748146475,
1748151239,
1748550023,
1751494331,
1751494343,
1753275179,
1755283775,
1755283787,
1756842743,
1756842755,
1771084331,
1771497368,
1772638115,
1772641607,
1772642207,
1776172415,
1782357335,
1782357335,
1782357335,
1782568835,
1782824701,
1783672091
1783672091,
1788241787
],
"observedSince": 1716620627
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -33
+0 -32
{
"addresses": {
"ethereum": [
{
"name": "AvailBridgeV1",
"isVerified": true,
"address": "eth:0x054fd961708D8E2B9c10a63F6157c74458889F0a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B"
],
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720568903,
"transactionHash": "0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c",
"implementations": [
"eth:0x737539737b44493F65c17eAfE165197b6410d254"
]
}
],
"description": "Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Avail Multisig 1\n * **defaultAdmin**: TimelockController; ultimately Avail Multisig 1\n * **pauser**: Avail Multisig 2",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code"
},
{
"name": "Vector",
"isVerified": true,
"address": "eth:0x02993cdC11213985b9B13224f3aF289F03bf298d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720128227,
"transactionHash": "0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc",
"implementations": [
"eth:0x2434564f3524b44258B11643729343Ef57D60989"
]
},
{
"timestamp": 1721438975,
"transactionHash": "0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e",
"implementations": [
"eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D"
]
}
],
"description": "The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n* Roles:\n * **guardians**: Avail Multisig 1\n * **relayers**: EOA 1\n * **timelocks**: Avail Multisig 1",
"upgradableBy": [
{
"name": "Avail Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x36194271a00dBBBae314E83dA56d0FF75fDa367B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x45828180bbE489350D621d002968A0585406d487",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: Avail Multisig 1\n * **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1\n * **executor**: Avail Multisig 1\n * **proposer**: Avail Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#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": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"programHashes": [
{
"title": "Avail VectorX DA bridge program",
"description": "ZK-friendly implementation of Avail Vector DA bridge that proves that a given data root was finalized on Avail.",
"programUrl": "https://github.com/availproject/sp1-vector/tree/c649310e79de376926863504d49eddbf09532980/program",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain v6.3.1: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.3.1` (the toolchain version must match the program's `sp1-zkvm = \"6.3.1\"` dependency and the docker tag used below).\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 [availproject/sp1-vector](https://github.com/availproject/sp1-vector/tree/v2.0.1) repo: `git checkout c649310e79de376926863504d49eddbf09532980`.\n2. Make sure docker is running by running `docker ps`.\n3. From the `sp1-vector/program` dir run: `cargo prove build --docker --tag v6.3.1 --elf-name vector-elf --output-directory ../elf` to build the vector program elf within a docker container and place it in `sp1-vector/elf`.\n4. From `sp1-vector` run: `cargo run --bin vkey --release` to print the vkey of the `vector-elf` program.",
"hash": "0x005f3914526e9f0d261b56a3613985801d3060584f95874548c70fda5f81efdb"
}
],
"risks": [
{
"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."
},
{
"category": "Funds can be frozen if",
"text": "the bridge contract is frozen by the Guardian (AvailMultisig)."
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1789917678,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+1 -31
+0 -30
{
"addresses": {
"arbitrum": [
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x5cA988F213EfbCB86ED7e2AACB0C15c91e648f8d"
]
},
{
"timestamp": 1737569829,
"transactionHash": "0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791",
"implementations": [
"arb1:0x5AA806015FEC88669bF7DAd746BB4ADC1E79BcED"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x78C5D1C5794C61122d2F4fEfc441B5d69e0a1Df0"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0E40E41E6095A4f0607144a52d31C2F11a3FF1a1#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x2633ea91d15BeE85105C9b27E068f406F2F36a4a",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA"
],
"implementations": [
"arb1:0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446",
"arb1:0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0xEe9E5546A11Cb5b4A86e92DA05f2ef75C26E4754",
"arb1:0x0aE4dD666748bF0F6dB5c149Eab1D8aD27820A6A"
]
},
{
"timestamp": 1737569829,
"transactionHash": "0xf99dd58af041164dc6a225a760822c2d28d41e836754dd84eefd9e4445a49791",
"implementations": [
"arb1:0xdD91f6e88576fEc4A38A518DA39C92e13CBB6446",
"arb1:0x1BeD37FeDFE8B2721a69A559313D2b58d16Ecd77"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new Rollup Nodes (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both held by the Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Conduit Multisig 2, EOA 1\n * **anyTrustFastConfirmer**: WinrFastconfirmerMultisig; ultimately EOA 2\n * **owner**: UpgradeExecutor; ultimately Conduit Multisig 2, EOA 1\n * **validators**: EOA 11, EOA 13, EOA 15, EOA 18, EOA 2, EOA 20, EOA 23, EOA 25, EOA 27, EOA 28, EOA 29, EOA 3, EOA 4, EOA 5, WinrFastconfirmerMultisig; ultimately EOA 2",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x2633ea91d15BeE85105C9b27E068f406F2F36a4a#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x2CBa47e7734De9568C568C5b1b238B491Afbf73b"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x7a299aD29499736994Aa3a9aFa3f476445FAEB2c"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0x7be08B013de2b23a6329De51C4994f841dcE1a10"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x2CBa47e7734De9568C568C5b1b238B491Afbf73b"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1\n * **batchPosters**: EOA 10, EOA 12, EOA 14, EOA 16, EOA 17, EOA 19, EOA 21, EOA 22, EOA 24, EOA 26, EOA 6, EOA 7, EOA 8, EOA 9",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8AeDdE55Cb361e73a0B0c0cF2A5bB35E97a20456#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x2a6DD4433ffa96dc1755814FC0d9cc83A5F68DeC"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xF3f01622Ac969156760c32190995F9dC5b3eb7FA#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x660ea1675F7323dC3Ba0c8dDFB593225Eb01E3C1"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x660ea1675F7323dC3Ba0c8dDFB593225Eb01E3C1"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1\n * **executors**: Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc5d17f6e0025a23c0AAFf7832Cc531B3034602DA#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x7EfcB76D0e2E776A298aAa603d433336e5F8b6ab"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xD87f160f8c414d834cBDd9477c3D8c3ad1802255"
]
},
{
"timestamp": 1747088324,
"transactionHash": "0xe3dc71cb07fe7af204af6862884be9162b11cc7455660ff2be9562a12afd604c",
"implementations": [
"arb1:0x2d682d33762eCd73fF07d1a7Ad95a06faE40CF44"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x4FeBaEF286Ca477402dafCEeB17C64de481aFB42#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0xBA99217992620b76aae0D574c70bD313B30D3D1d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x302275067251F5FcdB9359Bda735fD8f7A4A54c0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x302275067251F5FcdB9359Bda735fD8f7A4A54c0"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xBA99217992620b76aae0D574c70bD313B30D3D1d#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x07d24d32D8F522793faEEebA16BbB97441664374",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x07d24d32D8F522793faEEebA16BbB97441664374#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3524251c60e04889bB578fE6B2e2Ad86C6Fc48ad#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0x6c21303F5986180B1394d2C89f3e883890E2867b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x6c21303F5986180B1394d2C89f3e883890E2867b#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine. This version uses the Blobstream DA bridge (ArbitrumBlobstream) as source of truth for the DA referenced by the fault proof.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x74D50DbaCfef02d3dAC141b0bC40195886d7ECF7#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x759dbcB5E12E6bA091919c94BAa70A4797fd3D0d#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x802c7B6585d20cb69524EF23fCbF919F671F808a#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x18FD37A4FB9E1F06d9383958aFd236771F15A8cb"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 2, EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
},
{
"name": "Conduit Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe966442c0E8F28C48eF4F02BfF7a29876Dcd30CC#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xf951C50162Ce1aEC93464aCFe90F755EC9878b5f#code"
},
{
"name": "ArbitrumBlobstream",
"isVerified": true,
"address": "arb1:0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x738a9b55304f9fcF776B3BA285e50c0f9eF77997"
],
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1710651080,
"transactionHash": "0x58059198a17ae1d8dd73b4d0f0ce7169f4e55d901a8fea59b4ef12d005a41f0a",
"implementations": [
"arb1:0x7C3A9b466FF5c02582fa32d4aD1b2Cb431fB7c9b"
]
},
{
"timestamp": 1710724776,
"transactionHash": "0xf45e346ddbedef1ea3f828954c979adcb205b4b1c0ca72e49e7e2ef5b1c43192",
"implementations": [
"arb1:0xfb19439fBa9f16aA720be6bE0e53465a9733C964"
]
},
{
"timestamp": 1724698402,
"transactionHash": "0x746e21628ccec4d5b4da96595f852a6398defcc360cb9f13aa2d84ebe4e7403f",
"implementations": [
"arb1:0x47fd660D5252Bd6F9D2c71507E46aa1d6e957c23"
]
},
{
"timestamp": 1733166545,
"transactionHash": "0x07dbff15e24a8c124a927a2881cb4d471ace180488a56a56b43b47d1da68a130",
"implementations": [
"arb1:0x46EbfC399d3913BB9b99E73675722417F9c5d416"
]
}
],
"description": "The Blobstream DA bridge. This contract is used to bridge data commitments between Celestia and the destination chain. It specifies relayers that commit block ranges, but due to the lack of emitted events, there may be more relayers than are presented here.\n* Roles:\n * **admin**: BlobstreamMultisig\n * **guardians**: BlobstreamMultisig\n * **relayers**: EOA 30, EOA 31",
"upgradableBy": [
{
"name": "BlobstreamMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA83ca7775Bc2889825BcDeDfFa5b758cf69e8794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGatewayArb",
"isVerified": true,
"address": "arb1:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"sinceTimestamp": 1715799374,
"tokens": [
"WINR"
],
"contract": {
"isVerified": true,
"address": "arb1:0xF3f01622Ac969156760c32190995F9dC5b3eb7FA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x802c7B6585d20cb69524EF23fCbF919F671F808a"
],
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1715799374,
"transactionHash": "0x42fc27511b05dc35424565463d5dd348283c330d05c963396ee1a68526ac56a5",
"implementations": [
"arb1:0x2a6DD4433ffa96dc1755814FC0d9cc83A5F68DeC"
]
},
{
"timestamp": 1745618146,
"transactionHash": "0xb219997f52a5ffaeb50fb6de4b69cefdd4f1844879a102820ce0878df63bc80b",
"implementations": [
"arb1:0xdF0eaCC3F37356DF320e5B5db16C7eD7A6b596dd"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows WINR sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xF3f01622Ac969156760c32190995F9dC5b3eb7FA#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8E83aED64a0Ad5d7d3A57B6172F14FcA5bfADE56",
"sinceTimestamp": 1722608545,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDC.e"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x6aDFbA9e45b5c1685007Fe48A784e971e412f839",
"sinceTimestamp": 1722608646,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDC"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x8b961A67f49bc6334CBA09dbd70a2F14Fc8226a1",
"sinceTimestamp": 1722608661,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"WETH"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x88FA3A8624065f3Bf2eDe507b6Fd554C58e5b785",
"sinceTimestamp": 1722608675,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"wBTC"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x3222f0F281F1630C50f86fFaA29A29A06559eca8",
"sinceTimestamp": 1722608690,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"USDT"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x0aE2F220cE9698b1c9853f7288aC882150291dca",
"sinceTimestamp": 1722608704,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"ETH"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x023d27390aEd70aA39823A1e1e06a0b075400214",
"sinceTimestamp": 1724262320,
"source": "external",
"bridgedUsing": {
"bridges": [
{
"name": "Socket bridge",
"slug": "socket"
}
]
},
"tokens": [
"ARB"
],
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v40",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v40/arbos",
"verificationSteps": "L2BEAT team was able to independently regenerate this program hash. However currently the following steps for hash regeneration produce an error, so the process could not be independently verified.\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/).\n2. Checkout the correct branch in [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v40` . Commit hash should be `37ae61f20f8efdbc7e2f6af7f21c309bc09086a1`.\n3. Update git submodules `git submodule update --init --recursive --force`.\n4. Generate wasm module root in docker: `docker buildx build --target nitro-node-dev -t nitro-node-dev .`. Currently this step fails with an error.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xdb698a2576298f25448bc092e52cf13b1e24141c997135d70f217d674bbeb69a"
}
],
"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": []
}
+1 -1
{
"baseTimestamp": 1783679422,
"baseTimestamp": 1791789577,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -33
+1 -32
{
"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 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 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"
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1790850812,
"baseTimestamp": 1791789180,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+166 -111
+1 -1
{
"badges": [],
"description": "Zama Confidential Tokens is an app that wraps ERC-20 assets into confidential tokens and hides balances and transfer amounts using Zama FHEVM on Ethereum.",
"detailedDescription": "Zama Confidential Tokens let users hold and send tokens on Ethereum with hidden balances and transfer amounts. A user wraps a token into its confidential version, such as USDC into cUSDC, pays others with it and unwraps it back. Who pays whom and every wrap and unwrap amount stay public.\n\nUsers trust the 13 operators of the key management service (KMS), who share the decryption key, Zama for the coprocessor, relayer and app, and two governance multisigs. Any 5 KMS operators together can decrypt every amount, and the multisigs can upgrade every contract instantly. Each unwrap needs a decryption signed by 7 of them, so funds leave only while the KMS and the coprocessor run.\n\n\n\n### Encryption\n\nThe tokens follow [ERC-7984](https://eips.ethereum.org/EIPS/eip-7984) and use fully homomorphic encryption (FHE), which lets contracts compute on encrypted amounts. One FHE key pair protects every balance and amount. Wallets encrypt with its public key, Zama's coprocessor computes on the ciphertexts without decrypting them, and the KMS operators hold the secret key in shares and decrypt on request.\n\nThe [KMS operators](https://docs.zama.org/protocol/protocol-apps/addresses/mainnet/ethereum#operator-staking) are Zama, Dfns, Figment, Fireblocks, InfStones, Unit410, LayerZero, Ledger, Omakase, Stake Capital, OpenZeppelin, Etherscan and Conduit. Each holds two keys: a share of the FHE secret key, which decrypts, and an ECDSA key, which signs the result for Ethereum. They decrypt an amount only for accounts that the ACL, an onchain access list, allows them to read. [Zama states](https://docs.zama.org/protocol/protocol/overview/kms) that they run in AWS Nitro enclaves, and Ethereum checks only their signatures. Governance multisigs manage signer sets in ProtocolConfig: they can add sets, retune their thresholds and destroy old ones. Removing an operator onchain leaves its key share intact.\n\nZama's coprocessor runs the FHE computation offchain and checks every encrypted input. Ethereum accepts an input signed by 1 of 1 coprocessor signers, so the coprocessor is trusted for validity. Priority mode is on: while on, one coprocessor finalizes inputs and ciphertext commits alone, whatever the signer set. It stores all ciphertexts in a [public bucket](https://coprocessor-1.mainnet.zama.org/). The Zama Gateway, an L3 on Arbitrum, relays decryption requests and publishes who reads which balance and when. Ethereum verifies the KMS signatures itself, while inputs and unwraps depend on the Gateway running.\n\n### Privacy considerations\n\nThe privacy ratings assume [Zama's app](https://app.zama.org), the official interface. Its source is unpublished. Apps reach the protocol through a relayer, and Zama's relayer [requires an API key](https://docs.zama.org/protocol/sdk/guides/relayer-api-keys) on mainnet. It receives each encrypted input and balance read together with the user's address and IP and the token. Practical privacy also depends on the timing and amounts of wraps and unwraps, see [OPSEC best practice](/publications/privacy-best-practices).\n\n### Compliance\n\nEach token's owner, controlled by the multisigs, can block users and check them against the underlying token's denylist, as cUSDC does with USDC's blacklist. It can also appoint a pauser that halts the token, and observers that decrypt all of its balances and amounts. Today no token has a pauser or an observer. Issuers of underlying tokens like USDC can freeze a token's whole escrow.\n\n### Fees\n\nUsers pay Ethereum gas. The Gateway charges 1 ZAMA per encrypted input and 0.1 ZAMA per decryption, paid by the relayer. Zama's relayer bills apps monthly.",
"detailedDescription": "Zama Confidential Tokens let users hold and send tokens on Ethereum with hidden balances and transfer amounts. A user wraps a token into its confidential version, such as USDC into cUSDC, pays others with it and unwraps it back. Who pays whom and every wrap and unwrap amount stay public.\n\nUsers trust the 13 operators of the key management service (KMS), who share the decryption key, Zama for the coprocessor, relayer and app, and two governance multisigs. Any 5 KMS operators together can decrypt every amount, and the multisigs can upgrade every contract instantly. Each unwrap needs a decryption signed by 7 of them, so funds leave only while the KMS and the coprocessor run.\n\n\n\n### Encryption\n\nThe tokens follow [ERC-7984](https://eips.ethereum.org/EIPS/eip-7984) and use fully homomorphic encryption (FHE), which lets contracts compute on encrypted amounts. One FHE key pair protects every balance and amount. Wallets encrypt with its public key, Zama's coprocessor computes on the ciphertexts without decrypting them, and the KMS operators hold the secret key in shares and decrypt on request.\n\nThe [KMS operators](https://docs.zama.org/protocol/protocol-apps/addresses/mainnet/ethereum#operator-staking) are Zama, Dfns, Figment, Fireblocks, InfStones, Unit410, LayerZero, Ledger, Omakase, Stake Capital, OpenZeppelin, Etherscan and Conduit. Each holds two keys: a share of the FHE secret key, which decrypts, and an ECDSA key, which signs the result for Ethereum. They decrypt an amount only for accounts that the ACL, an onchain access list, allows them to read. [Zama states](https://docs.zama.org/protocol/protocol/overview/kms) that they run in AWS Nitro enclaves, and Ethereum checks only their signatures. Governance multisigs manage signer sets in ProtocolConfig: they can add sets, retune their thresholds and destroy old ones. Removing an operator onchain leaves its key share intact.\n\nZama's coprocessor runs the FHE computation offchain and checks every encrypted input. Ethereum accepts an input signed by 1 of 1 coprocessor signers, so the coprocessor is trusted for validity. The Gateway requires 3 matching responses from 5 registered coprocessor senders for ACL updates. Priority mode is on: while on, one coprocessor finalizes inputs and ciphertext commits alone, whatever the signer set. It stores all ciphertexts in a [public bucket](https://coprocessor-1.mainnet.zama.org/). The Zama Gateway, an L3 on Arbitrum, relays decryption requests and publishes who reads which balance and when. Ethereum verifies the KMS signatures itself, while inputs and unwraps depend on the Gateway running.\n\n### Privacy considerations\n\nThe privacy ratings assume [Zama's app](https://app.zama.org), the official interface. Its source is unpublished. Apps reach the protocol through a relayer, and Zama's relayer [requires an API key](https://docs.zama.org/protocol/sdk/guides/relayer-api-keys) on mainnet. It receives each encrypted input and balance read together with the user's address and IP and the token. Practical privacy also depends on the timing and amounts of wraps and unwraps, see [OPSEC best practice](/publications/privacy-best-practices).\n\n### Compliance\n\nEach token's owner, controlled by the multisigs, can block users and check them against the underlying token's denylist, as cUSDC does with USDC's blacklist. It can also appoint a pauser that halts the token, and observers that decrypt all of its balances and amounts. Today no token has a pauser or an observer. Issuers of underlying tokens like USDC can freeze a token's whole escrow.\n\n### Fees\n\nUsers pay Ethereum gas. The Gateway charges 1 ZAMA per encrypted input and 0.1 ZAMA per decryption, paid by the relayer. Zama's relayer bills apps monthly.",
"links": {
"websites": [
"https://www.zama.org"
],
"documentation": [
"https://docs.zama.org/protocol"
],
"repositories": [
"https://github.com/zama-ai"
]
}
}
+141 -100
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "ZamaGovMultisigB",
"name": "ZamaGovMultisigB",
"description": "A Multisig with 3/6 threshold. \nAragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n* Can upgrade **with no delay**\n * ConfidentialSteakUSDTWrapper [via: DAO]\n * ConfidentialArmUSDCpWrapper [via: DAO]\n * HCULimit [via: DAO]\n * ConfidentialRoxUSDCyWrapper [via: DAO]\n * ConfidentialBbqUSDCWrapper [via: DAO]\n * ConfidentialArmUSDTpWrapper [via: DAO]\n * ConfidentialSteakcUSDCWrapper [via: DAO]\n * Staking (Coprocessor) [via: DAO]\n * ConfidentialXAUTWrapper [via: DAO]\n * ConfidentialFAUSDeWrapper [via: DAO]\n * KMSVerifier [via: DAO]\n * ConfidentialArmUSDCsWrapper [via: DAO]\n * ConfidentialBbqUSDTWrapper [via: DAO]\n * ConfidentialZAMAWrapper [via: DAO]\n * ConfidentialBRONWrapper [via: DAO]\n * ConfidentialPENDLEWrapper [via: DAO]\n * ConfidentialPAPYWrapper [via: DAO]\n * ConfidentialFcUSDTWrapper [via: DAO]\n * ConfidentialTGBPWrapper [via: DAO]\n * ConfidentialUSDTWrapper [via: DAO]\n * ConfidentialRoxcUSDCWrapper [via: DAO]\n * DAO [via: DAO]\n * ConfidentialPendleUSDCWrapper [via: DAO]\n * ConfidentialBbqTGBPWrapper [via: DAO]\n * ConfidentialArmUSDTsWrapper [via: DAO]\n * ACL [via: DAO]\n * InputVerifier [via: DAO]\n * ProtocolConfig [via: DAO]\n * FHEVMExecutor [via: DAO]\n * ConfidentialWBTCWrapper [via: DAO]\n * ConfidentialWETHWrapper [via: DAO]\n * ConfidentialUSDCWrapper [via: DAO]\n * Staking (KMS) [via: DAO]\n * ConfidentialAUSDWrapper [via: DAO]\n * ConfidentialTokenWrappersRegistry [via: DAO]\n * KMSGeneration [via: DAO]\n * ConfidentialArmcWBTCWrapper [via: DAO]\n* Can interact with ConfidentialSteakUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDCpWrapper\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 [via: DAO]\n* Can interact with HCULimit\n * change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit [via: DAO]\n* Can interact with ConfidentialRoxUSDCyWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqUSDCWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDTpWrapper\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 [via: DAO]\n* Can interact with ConfidentialSteakcUSDCWrapper\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 [via: DAO]\n* Can interact with Staking (Coprocessor)\n * grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay [via: DAO]\n * set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts [via: DAO]\n* Can interact with ConfidentialXAUTWrapper\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 [via: DAO]\n* Can interact with ConfidentialFAUSDeWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDCsWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialZAMAWrapper\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 [via: DAO]\n* Can interact with ConfidentialBRONWrapper\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 [via: DAO]\n* Can interact with ConfidentialPENDLEWrapper\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 [via: DAO]\n* Can interact with ConfidentialPAPYWrapper\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 [via: DAO]\n* Can interact with ConfidentialFcUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialTGBPWrapper\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 [via: DAO]\n* Can interact with ConfidentialUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialRoxcUSDCWrapper\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 [via: DAO]\n* Can interact with DAO\n * change multisig plugin settings [via: DAO - or - acting directly]\n * change multisig plugin target execution configuration [via: DAO - or - acting directly]\n * grant and revoke DAO permissions [via: DAO]\n* Can interact with ConfidentialPendleUSDCWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqTGBPWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDTsWrapper\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 [via: DAO]\n* Can interact with PauserSet\n * add, remove, or swap accounts that can pause the ACL [via: DAO]\n* Can interact with ACL\n * transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership [via: DAO]\n* Can interact with InputVerifier\n * set the coprocessor signer set and signature threshold used for encrypted input verification [via: DAO]\n* Can interact with ProtocolConfig\n * 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 [via: DAO]\n* Can interact with ConfidentialWBTCWrapper\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 [via: DAO]\n* Can interact with ConfidentialWETHWrapper\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 [via: DAO]\n* Can interact with ConfidentialUSDCWrapper\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 [via: DAO]\n* Can interact with Staking (KMS)\n * grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay [via: DAO]\n * set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts [via: DAO]\n* Can interact with ConfidentialAUSDWrapper\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 [via: DAO]\n* Can interact with ConfidentialTokenWrappersRegistry\n * manage addresses in the registry [via: DAO]\n* Can interact with KMSGeneration\n * trigger and abort FHE key and CRS generation rounds executed by the KMS nodes [via: DAO]\n* Can interact with ConfidentialArmcWBTCWrapper\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 [via: DAO]",
"accounts": [
{
"address": "eth:0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F",
"type": "Contract",
"isVerified": true,
"name": "0xBc86…a38F",
"url": "https://etherscan.io/address/0xBc860b6a4C860C5424B84A056E53ACFb2C99a38F"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"type": "EOA",
"isVerified": true,
"name": "EOA 60",
"url": "#EOA-57-and-EOA-60"
"name": "EOA 64",
"url": "#EOA-61-and-EOA-64"
},
{
"address": "eth:0xf299Cd189498D7d0F0FfACd4DdC94166f614fBBE",
"type": "EOA",
"isVerified": true,
"name": "0xf299…fBBE",
"url": "https://etherscan.io/address/0xf299Cd189498D7d0F0FfACd4DdC94166f614fBBE"
},
{
"address": "eth:0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"type": "EOA",
"isVerified": true,
"name": "EOA 57",
"url": "#EOA-57-and-EOA-60"
"name": "EOA 61",
"url": "#EOA-61-and-EOA-64"
},
{
"address": "eth:0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"type": "EOA",
"isVerified": true,
"name": "EOA 59",
"url": "#EOA-58-and-EOA-59"
"name": "EOA 63",
"url": "#EOA-62-and-EOA-63"
},
{
"address": "eth:0x705380c013c13B4ce62338ab1F012036BAC802b3",
"type": "EOA",
"isVerified": true,
"name": "EOA 58",
"url": "#EOA-58-and-EOA-59"
"name": "EOA 62",
"url": "#EOA-62-and-EOA-63"
},
{
"address": "eth:0x8aA8D71520d88a1Ed2B4257348134b94e00A9978",
"type": "EOA",
"isVerified": true,
"name": "0x8aA8…9978",
"url": "https://etherscan.io/address/0x8aA8D71520d88a1Ed2B4257348134b94e00A9978"
}
],
"discoveryDrivenData": true
},
{
"id": "ZamaGovMultisigA",
"name": "ZamaGovMultisigA",
"description": "A Multisig with 9/17 threshold. \nAragon multisig plugin for creating proposals and collecting approvals against a configurable threshold.\n* Can upgrade **with no delay**\n * ConfidentialSteakUSDTWrapper [via: DAO]\n * ConfidentialArmUSDCpWrapper [via: DAO]\n * HCULimit [via: DAO]\n * ConfidentialRoxUSDCyWrapper [via: DAO]\n * ConfidentialBbqUSDCWrapper [via: DAO]\n * ConfidentialArmUSDTpWrapper [via: DAO]\n * ConfidentialSteakcUSDCWrapper [via: DAO]\n * Staking (Coprocessor) [via: DAO]\n * ConfidentialXAUTWrapper [via: DAO]\n * ConfidentialFAUSDeWrapper [via: DAO]\n * KMSVerifier [via: DAO]\n * ConfidentialArmUSDCsWrapper [via: DAO]\n * ConfidentialBbqUSDTWrapper [via: DAO]\n * ConfidentialZAMAWrapper [via: DAO]\n * ConfidentialBRONWrapper [via: DAO]\n * ConfidentialPENDLEWrapper [via: DAO]\n * ConfidentialPAPYWrapper [via: DAO]\n * ConfidentialFcUSDTWrapper [via: DAO]\n * ConfidentialTGBPWrapper [via: DAO]\n * ConfidentialUSDTWrapper [via: DAO]\n * ConfidentialRoxcUSDCWrapper [via: DAO]\n * DAO [via: DAO]\n * ConfidentialPendleUSDCWrapper [via: DAO]\n * ConfidentialBbqTGBPWrapper [via: DAO]\n * ConfidentialArmUSDTsWrapper [via: DAO]\n * ACL [via: DAO]\n * InputVerifier [via: DAO]\n * ProtocolConfig [via: DAO]\n * FHEVMExecutor [via: DAO]\n * ConfidentialWBTCWrapper [via: DAO]\n * ConfidentialWETHWrapper [via: DAO]\n * ConfidentialUSDCWrapper [via: DAO]\n * Staking (KMS) [via: DAO]\n * ConfidentialAUSDWrapper [via: DAO]\n * ConfidentialTokenWrappersRegistry [via: DAO]\n * KMSGeneration [via: DAO]\n * ConfidentialArmcWBTCWrapper [via: DAO]\n* Can interact with ConfidentialSteakUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDCpWrapper\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 [via: DAO]\n* Can interact with HCULimit\n * change the per-block and per-transaction HCU limits and manage callers that bypass the per-block limit [via: DAO]\n* Can interact with ConfidentialRoxUSDCyWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqUSDCWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDTpWrapper\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 [via: DAO]\n* Can interact with ConfidentialSteakcUSDCWrapper\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 [via: DAO]\n* Can interact with Staking (Coprocessor)\n * grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay [via: DAO]\n * set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts [via: DAO]\n* Can interact with ConfidentialXAUTWrapper\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 [via: DAO]\n* Can interact with ConfidentialFAUSDeWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDCsWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialZAMAWrapper\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 [via: DAO]\n* Can interact with ConfidentialBRONWrapper\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 [via: DAO]\n* Can interact with ConfidentialPENDLEWrapper\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 [via: DAO]\n* Can interact with ConfidentialPAPYWrapper\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 [via: DAO]\n* Can interact with ConfidentialFcUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialTGBPWrapper\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 [via: DAO]\n* Can interact with ConfidentialUSDTWrapper\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 [via: DAO]\n* Can interact with ConfidentialRoxcUSDCWrapper\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 [via: DAO]\n* Can interact with DAO\n * change multisig plugin settings [via: DAO - or - acting directly]\n * change multisig plugin target execution configuration [via: DAO - or - acting directly]\n * grant and revoke DAO permissions [via: DAO]\n* Can interact with ConfidentialPendleUSDCWrapper\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 [via: DAO]\n* Can interact with ConfidentialBbqTGBPWrapper\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 [via: DAO]\n* Can interact with ConfidentialArmUSDTsWrapper\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 [via: DAO]\n* Can interact with PauserSet\n * add, remove, or swap accounts that can pause the ACL [via: DAO]\n* Can interact with ACL\n * transfer ACL ownership, unpause the ACL, block or unblock accounts, and manage PauserSet membership [via: DAO]\n* Can interact with InputVerifier\n * set the coprocessor signer set and signature threshold used for encrypted input verification [via: DAO]\n* Can interact with ProtocolConfig\n * 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 [via: DAO]\n* Can interact with ConfidentialWBTCWrapper\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 [via: DAO]\n* Can interact with ConfidentialWETHWrapper\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 [via: DAO]\n* Can interact with ConfidentialUSDCWrapper\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 [via: DAO]\n* Can interact with Staking (KMS)\n * grant and revoke manager accounts, transfer or renounce the default admin role, and change the default admin transfer delay [via: DAO]\n * set the reward rate, set the unstake cooldown period, and add or remove reward-eligible staking accounts [via: DAO]\n* Can interact with ConfidentialAUSDWrapper\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 [via: DAO]\n* Can interact with ConfidentialTokenWrappersRegistry\n * manage addresses in the registry [via: DAO]\n* Can interact with KMSGeneration\n * trigger and abort FHE key and CRS generation rounds executed by the KMS nodes [via: DAO]\n* Can interact with ConfidentialArmcWBTCWrapper\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 [via: DAO]",
"accounts": [
{
"address": "eth:0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f",
"type": "Contract",
"isVerified": true,
"name": "0xE43c…e66f",
"url": "https://etherscan.io/address/0xE43c73aAb2b6aBBad6d0461997ce1cfea5ABe66f"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x31bBD7a242A38372DE92CA304fE29C12C90A382C",
"type": "Contract",
"isVerified": true,
"name": "ZamaGovMemberDAO",
"url": "#ZamaGovMemberDAO"
},
{
"address": "eth:0x644f248299FA8E1DE46C97A72C36F354Ccdb8a1e",
"type": "EOA",
"isVerified": true,
"name": "0x644f…8a1e",
"url": "https://etherscan.io/address/0x644f248299FA8E1DE46C97A72C36F354Ccdb8a1e"
},
{
"address": "eth:0x0321a4Ee7E843A83Fa314f4e76E756864CBdE62e",
"type": "EOA",
"isVerified": true,
"name": "0x0321…E62e",
"url": "https://etherscan.io/address/0x0321a4Ee7E843A83Fa314f4e76E756864CBdE62e"
},
{
"address": "eth:0x0f81fd435d44Cc49f90BB74bF4BdE0e9A0554ae6",
"type": "EOA",
"isVerified": true,
"name": "0x0f81…4ae6",
"url": "https://etherscan.io/address/0x0f81fd435d44Cc49f90BB74bF4BdE0e9A0554ae6"
},
{
"address": "eth:0x931FB6Ec104dDc9bc556983032b5b85b671db000",
"type": "EOA",
"isVerified": true,
"name": "0x931F…b000",
"url": "https://etherscan.io/address/0x931FB6Ec104dDc9bc556983032b5b85b671db000"
},
{
"address": "eth:0xc2e5960EDa1E8D801b19e96D886B946Dfb4bE709",
"type": "EOA",
"isVerified": true,
"name": "0xc2e5…E709",
"url": "https://etherscan.io/address/0xc2e5960EDa1E8D801b19e96D886B946Dfb4bE709"
},
{
"address": "eth:0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x8c0E2c46F96756C49DBd6723F4C57a03a254B4B0"
},
{
"address": "eth:0x23Cd5e0f3bd1543CBCc5d05bB55e5446be4AD96b",
"type": "EOA",
"isVerified": true,
"name": "0x23Cd…D96b",
"url": "https://etherscan.io/address/0x23Cd5e0f3bd1543CBCc5d05bB55e5446be4AD96b"
},
{
"address": "eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746",
"type": "Contract",
"isVerified": true,
"name": "Conduit Multisig 1",
"url": "https://etherscan.io/address/0x4a4962275DF8C60a80d3a25faEc5AA7De116A746"
},
{
"address": "eth:0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x69E55790880d0ABa56E48Ee1f7fc3834b0F5c223"
},
{
"address": "eth:0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"type": "EOA",
"isVerified": true,
"name": "EOA 59",
"url": "#EOA-58-and-EOA-59"
"name": "EOA 63",
"url": "#EOA-62-and-EOA-63"
},
{
"address": "eth:0x705380c013c13B4ce62338ab1F012036BAC802b3",
"type": "EOA",
"isVerified": true,
"name": "EOA 58",
"url": "#EOA-58-and-EOA-59"
"name": "EOA 62",
"url": "#EOA-62-and-EOA-63"
},
{
"address": "eth:0x97E18544e156724E4076945F10c288ecBBC94e54",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x97E18544e156724E4076945F10c288ecBBC94e54"
},
{
"address": "eth:0xE9AAc45091bF5d52AD7BC109497DAA7cD0245BdB",
"type": "EOA",
"isVerified": true,
"name": "0xE9AA…5BdB",
"url": "https://etherscan.io/address/0xE9AAc45091bF5d52AD7BC109497DAA7cD0245BdB"
},
{
"address": "eth:0xD92e1C1Ec65aBe6C6891EcE56a00c6b79A09C8AE",
"type": "EOA",
"isVerified": true,
"name": "0xD92e…C8AE",
"url": "https://etherscan.io/address/0xD92e1C1Ec65aBe6C6891EcE56a00c6b79A09C8AE"
},
{
"address": "eth:0xc49376C4D044011eEce6eE69eFAe06f0Cc2bd008",
"type": "EOA",
"isVerified": true,
"name": "0xc493…d008",
"url": "https://etherscan.io/address/0xc49376C4D044011eEce6eE69eFAe06f0Cc2bd008"
},
{
"address": "eth:0x27B1c34F2aeEc91F9704BD1CE288E5c667F29045",
"type": "EOA",
"isVerified": true,
"name": "0x27B1…9045",
"url": "https://etherscan.io/address/0x27B1c34F2aeEc91F9704BD1CE288E5c667F29045"
}
],
"discoveryDrivenData": true
},
{
"id": "ZamaGovMemberDAO",
"name": "ZamaGovMemberDAO",
"accounts": [
{
"address": "eth:0x31bBD7a242A38372DE92CA304fE29C12C90A382C",
"type": "Contract",
"isVerified": true,
"name": "0x31bB…382C",
"url": "https://etherscan.io/address/0x31bBD7a242A38372DE92CA304fE29C12C90A382C"
}
],
"chain": "ethereum",
"description": "Aragon DAO that stores governance state and executes proposal action batches.\nMember of ZamaGovMultisigA.\n* Can interact with ZamaGovMemberDAO\n * change multisig plugin settings \n * change multisig plugin target execution configuration ",
"discoveryDrivenData": true
},
{
"id": "EOA-30,-EOA-33,-EOA-34,-EOA-35,-EOA-36,-EOA-40,-EOA-41,-EOA-46,-EOA-48,-EOA-49,-EOA-51,-EOA-52-and-EOA-56",
"name": "EOA 30, EOA 33, EOA 34, EOA 35, EOA 36, EOA 40, EOA 41, EOA 46, EOA 48, EOA 49, EOA 51, EOA 52 and EOA 56",
"id": "EOA-34,-EOA-37,-EOA-38,-EOA-39,-EOA-40,-EOA-44,-EOA-45,-EOA-50,-EOA-52,-EOA-53,-EOA-55,-EOA-56-and-EOA-60",
"name": "EOA 34, EOA 37, EOA 38, EOA 39, EOA 40, EOA 44, EOA 45, EOA 50, EOA 52, EOA 53, EOA 55, EOA 56 and EOA 60",
"accounts": [
{
"address": "eth:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D",
"type": "EOA",
"isVerified": true,
"name": "0x0e25…E31D",
"url": "https://etherscan.io/address/0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D",
"displayName": "EOA 30"
"displayName": "EOA 34"
},
{
"address": "eth:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340",
"type": "EOA",
"isVerified": true,
"name": "0x43e4…8340",
"url": "https://etherscan.io/address/0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340",
"displayName": "EOA 33"
"displayName": "EOA 37"
},
{
"address": "eth:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC",
"type": "EOA",
"isVerified": true,
"name": "0x487e…c5EC",
"url": "https://etherscan.io/address/0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC",
"displayName": "EOA 34"
"displayName": "EOA 38"
},
{
"address": "eth:0x4eC7200E392B97913cbD6d8160B011406EB019F1",
"type": "EOA",
"isVerified": true,
"name": "0x4eC7…19F1",
"url": "https://etherscan.io/address/0x4eC7200E392B97913cbD6d8160B011406EB019F1",
"displayName": "EOA 35"
"displayName": "EOA 39"
},
{
"address": "eth:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04",
"type": "EOA",
"isVerified": true,
"name": "0x577F…De04",
"url": "https://etherscan.io/address/0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04",
"displayName": "EOA 36"
"displayName": "EOA 40"
},
{
"address": "eth:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890",
"type": "EOA",
"isVerified": true,
"name": "0x711E…C890",
"url": "https://etherscan.io/address/0x711EBE8aA590f9C9904ff279239E89dB2eFbC890",
"displayName": "EOA 40"
"displayName": "EOA 44"
},
{
"address": "eth:0x74a1E2e87a4026b7B8b5252c747E514159515e9a",
"type": "EOA",
"isVerified": true,
"name": "0x74a1…5e9a",
"url": "https://etherscan.io/address/0x74a1E2e87a4026b7B8b5252c747E514159515e9a",
"displayName": "EOA 41"
"displayName": "EOA 45"
},
{
"address": "eth:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB",
"type": "EOA",
"isVerified": true,
"name": "0xB4CE…6FFB",
"url": "https://etherscan.io/address/0xB4CE988D382425F64c99A352375F72A5f1cf6FFB",
"displayName": "EOA 46"
"displayName": "EOA 50"
},
{
"address": "eth:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0",
"type": "EOA",
"isVerified": true,
"name": "0xbaac…5BD0",
"url": "https://etherscan.io/address/0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0",
"displayName": "EOA 48"
"displayName": "EOA 52"
},
{
"address": "eth:0xbcF4943A856497FB2345409D35f4d1eae9A0363E",
"type": "EOA",
"isVerified": true,
"name": "0xbcF4…363E",
"url": "https://etherscan.io/address/0xbcF4943A856497FB2345409D35f4d1eae9A0363E",
"displayName": "EOA 49"
"displayName": "EOA 53"
},
{
"address": "eth:0xC105B5933446658D226582f7A112F49a70b54364",
"type": "EOA",
"isVerified": true,
"name": "0xC105…4364",
"url": "https://etherscan.io/address/0xC105B5933446658D226582f7A112F49a70b54364",
"displayName": "EOA 51"
"displayName": "EOA 55"
},
{
"address": "eth:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D",
"type": "EOA",
"isVerified": true,
"name": "0xD227…2e6D",
"url": "https://etherscan.io/address/0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D",
"displayName": "EOA 52"
"displayName": "EOA 56"
},
{
"address": "eth:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236",
"type": "EOA",
"isVerified": true,
"name": "0xEd1D…6236",
"url": "https://etherscan.io/address/0xEd1D622bd59d657580aBAc65312b40B4B2dA6236",
"displayName": "EOA 56"
"displayName": "EOA 60"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolConfig\n * submit KMS key- and CRS-generation responses to KMSGeneration ",
"discoveryDrivenData": true
},
{
"id": "EOA-31",
"name": "EOA 31",
"id": "EOA-35",
"name": "EOA 35",
"accounts": [
{
"address": "eth:0x373E36A8684A3344E177C5894179845Cbe57AE44",
"type": "EOA",
"isVerified": true,
"name": "0x373E…AE44",
"url": "https://etherscan.io/address/0x373E36A8684A3344E177C5894179845Cbe57AE44",
"displayName": "EOA 31"
"displayName": "EOA 35"
}
],
"chain": "ethereum",
"description": "* Can interact with InputVerifier\n * sign encrypted input verification bundles accepted by the InputVerifier ",
"discoveryDrivenData": true
},
{
"id": "EOA-32,-EOA-37,-EOA-38,-EOA-39,-EOA-42,-EOA-43,-EOA-44,-EOA-45,-EOA-47,-EOA-50,-EOA-53,-EOA-54-and-EOA-55",
"name": "EOA 32, EOA 37, EOA 38, EOA 39, EOA 42, EOA 43, EOA 44, EOA 45, EOA 47, EOA 50, EOA 53, EOA 54 and EOA 55",
"id": "EOA-36,-EOA-41,-EOA-42,-EOA-43,-EOA-46,-EOA-47,-EOA-48,-EOA-49,-EOA-51,-EOA-54,-EOA-57,-EOA-58-and-EOA-59",
"name": "EOA 36, EOA 41, EOA 42, EOA 43, EOA 46, EOA 47, EOA 48, EOA 49, EOA 51, EOA 54, EOA 57, EOA 58 and EOA 59",
"accounts": [
{
"address": "eth:0x41b19EB4585450db79ac03ba9503106EC7895905",
"type": "EOA",
"isVerified": true,
"name": "0x41b1…5905",
"url": "https://etherscan.io/address/0x41b19EB4585450db79ac03ba9503106EC7895905",
"displayName": "EOA 32"
"displayName": "EOA 36"
},
{
"address": "eth:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8",
"type": "EOA",
"isVerified": true,
"name": "0x5d0e…f7C8",
"url": "https://etherscan.io/address/0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8",
"displayName": "EOA 37"
"displayName": "EOA 41"
},
{
"address": "eth:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385",
"type": "EOA",
"isVerified": true,
"name": "0x6016…E385",
"url": "https://etherscan.io/address/0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385",
"displayName": "EOA 38"
"displayName": "EOA 42"
},
{
"address": "eth:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921",
"type": "EOA",
"isVerified": true,
"name": "0x6e5f…4921",
"url": "https://etherscan.io/address/0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921",
"displayName": "EOA 39"
"displayName": "EOA 43"
},
{
"address": "eth:0x7C17BE232e5968BDa9516478B798b9E90D013fCC",
"type": "EOA",
"isVerified": true,
"name": "0x7C17…3fCC",
"url": "https://etherscan.io/address/0x7C17BE232e5968BDa9516478B798b9E90D013fCC",
"displayName": "EOA 42"
"displayName": "EOA 46"
},
{
"address": "eth:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58",
"type": "EOA",
"isVerified": true,
"name": "0x7C5E…4F58",
"url": "https://etherscan.io/address/0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58",
"displayName": "EOA 43"
"displayName": "EOA 47"
},
{
"address": "eth:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f",
"type": "EOA",
"isVerified": true,
"name": "0x9150…350f",
"url": "https://etherscan.io/address/0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f",
"displayName": "EOA 44"
"displayName": "EOA 48"
},
{
"address": "eth:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D",
"type": "EOA",
"isVerified": true,
"name": "0x9661…dB8D",
"url": "https://etherscan.io/address/0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D",
"displayName": "EOA 45"
"displayName": "EOA 49"
},
{
"address": "eth:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb",
"type": "EOA",
"isVerified": true,
"name": "0xB797…E0eb",
"url": "https://etherscan.io/address/0xB7978e602D2AF68258dA614AF949E014BF0DE0eb",
"displayName": "EOA 47"
"displayName": "EOA 51"
},
{
"address": "eth:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3",
"type": "EOA",
"isVerified": true,
"name": "0xbf05…79C3",
"url": "https://etherscan.io/address/0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3",
"displayName": "EOA 50"
"displayName": "EOA 54"
},
{
"address": "eth:0xdC472efa1642D5afB684aAaa546E22FB24AAB965",
"type": "EOA",
"isVerified": true,
"name": "0xdC47…B965",
"url": "https://etherscan.io/address/0xdC472efa1642D5afB684aAaa546E22FB24AAB965",
"displayName": "EOA 53"
"displayName": "EOA 57"
},
{
"address": "eth:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f",
"type": "EOA",
"isVerified": true,
"name": "0xDFc9…194f",
"url": "https://etherscan.io/address/0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f",
"displayName": "EOA 54"
"displayName": "EOA 58"
},
{
"address": "eth:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f",
"type": "EOA",
"isVerified": true,
"name": "0xe9f7…ed6f",
"url": "https://etherscan.io/address/0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f",
"displayName": "EOA 55"
"displayName": "EOA 59"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolConfig\n * sign public decryption results accepted by the KMSVerifier and key- and CRS-generation responses accepted by KMSGeneration ",
"discoveryDrivenData": true
},
{
"id": "EOA-57-and-EOA-60",
"name": "EOA 57 and EOA 60",
"id": "EOA-61-and-EOA-64",
"name": "EOA 61 and EOA 64",
"accounts": [
{
"address": "eth:0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"type": "EOA",
"isVerified": true,
"name": "0x6dd4…5874",
"url": "https://etherscan.io/address/0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"displayName": "EOA 57"
"displayName": "EOA 61"
},
{
"address": "eth:0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"type": "EOA",
"isVerified": true,
"name": "0x9b82…9B71",
"url": "https://etherscan.io/address/0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"displayName": "EOA 60"
"displayName": "EOA 64"
}
],
"chain": "ethereum",
"description": "Member of ZamaGovMultisigB.\n* Can interact with PauserSet\n * pause the ACL ",
"discoveryDrivenData": true
},
{
"id": "EOA-58-and-EOA-59",
"name": "EOA 58 and EOA 59",
"id": "EOA-62-and-EOA-63",
"name": "EOA 62 and EOA 63",
"accounts": [
{
"address": "eth:0x705380c013c13B4ce62338ab1F012036BAC802b3",
"type": "EOA",
"isVerified": true,
"name": "0x7053…02b3",
"url": "https://etherscan.io/address/0x705380c013c13B4ce62338ab1F012036BAC802b3",
"displayName": "EOA 58"
"displayName": "EOA 62"
},
{
"address": "eth:0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"type": "EOA",
"isVerified": true,
"name": "0x8edF…8CB8",
"url": "https://etherscan.io/address/0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"displayName": "EOA 59"
"displayName": "EOA 63"
}
],
"chain": "ethereum",
"description": "Member of ZamaGovMultisigB, ZamaGovMultisigA.\n* Can interact with PauserSet\n * pause the ACL ",
"discoveryDrivenData": true
}
]
},
"zama": {
"roles": [],
"actors": [
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 3/5 threshold. \nGateway owner Safe. Its LayerZero governance module is outside the Zama Gateway protocol surface covered here.\n* Can upgrade **with no delay**\n * MultichainACL \n * Decryption \n * KMSGeneration \n * ProtocolPayment \n * InputVerification \n * CiphertextCommits \n * GatewayConfig \n* Can interact with Decryption\n * unpause Decryption \n* Can interact with GatewayPauserSet\n * add, remove, or swap gateway pausers \n* Can interact with ProtocolPayment\n * set gateway fee prices for input verification, public decryption, and user decryption \n* Can interact with InputVerification\n * unpause InputVerification \n* Can interact with GatewayConfig\n * create KMS contexts that immediately become current, destroy historical KMS contexts, update thresholds of any live context, manage coprocessors, custodians and host chains, set or remove the priority coprocessor that alone finalizes coprocessor consensus, transfer ownership, and unpause gateway workflow contracts ",
"accounts": [
{
"address": "zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE",
"type": "Contract",
"isVerified": true,
"name": "0x5f0F…e2bE",
"url": "https://explorer.mainnet.zama.org/address/0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE"
}
],
"chain": "zama",
"references": [],
"participants": [
{
"address": "zama:0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"type": "EOA",
"isVerified": true,
"name": "EOA 64",
"url": "#EOA-61,-EOA-62,-EOA-63-and-EOA-64"
"name": "EOA 68",
"url": "#EOA-65,-EOA-66,-EOA-67-and-EOA-68"
},
{
"address": "zama:0xf299Cd189498D7d0F0FfACd4DdC94166f614fBBE",
"type": "EOA",
"isVerified": true,
"name": "0xf299…fBBE",
"url": "https://explorer.mainnet.zama.org/address/0xf299Cd189498D7d0F0FfACd4DdC94166f614fBBE"
},
{
"address": "zama:0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"type": "EOA",
"isVerified": true,
"name": "EOA 61",
"url": "#EOA-61,-EOA-62,-EOA-63-and-EOA-64"
"name": "EOA 65",
"url": "#EOA-65,-EOA-66,-EOA-67-and-EOA-68"
},
{
"address": "zama:0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"type": "EOA",
"isVerified": true,
"name": "EOA 63",
"url": "#EOA-61,-EOA-62,-EOA-63-and-EOA-64"
"name": "EOA 67",
"url": "#EOA-65,-EOA-66,-EOA-67-and-EOA-68"
},
{
"address": "zama:0x705380c013c13B4ce62338ab1F012036BAC802b3",
"type": "EOA",
"isVerified": true,
"name": "EOA 62",
"url": "#EOA-61,-EOA-62,-EOA-63-and-EOA-64"
"name": "EOA 66",
"url": "#EOA-65,-EOA-66,-EOA-67-and-EOA-68"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "zama:0x373E36A8684A3344E177C5894179845Cbe57AE44",
"type": "EOA",
"isVerified": true,
"name": "0x373E…AE44",
"url": "https://explorer.mainnet.zama.org/address/0x373E36A8684A3344E177C5894179845Cbe57AE44",
"displayName": "EOA 1"
}
],
"chain": "zama",
"description": "* Can interact with MultichainACL\n * submit public-decryption allowances, account handle allowances, and user-decryption delegation or revocation messages to MultichainACL \n* Can interact with InputVerification\n * finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active \n * sign encrypted input proof verification responses accepted by InputVerification \n * submit coprocessor proof verification and rejection responses to InputVerification \n* Can interact with CiphertextCommits\n * commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active \n * submit ciphertext and SNS ciphertext digests to CiphertextCommits \n* Can interact with GatewayConfig\n * finalize coprocessor consensus alone for encrypted input proofs and ciphertext material commitments while priority mode is active \n * sign encrypted input proof verification responses accepted by the gateway \n * submit coprocessor responses, ACL mirror updates, and ciphertext material commitments to gateway contracts ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "zama:0x0000000000000000000000000000000000000000",
"type": "EOA",
"isVerified": true,
"name": "0x0000…0000",
"url": "https://explorer.mainnet.zama.org/address/0x0000000000000000000000000000000000000000",
"displayName": "EOA 2"
}
],
"chain": "zama",
"description": "* Can upgrade **with no delay**\n * MultichainACL \n * Decryption \n * KMSGeneration \n * ProtocolPayment \n * InputVerification \n * CiphertextCommits \n* Can interact with GatewayConfig\n * accept GatewayConfig ownership ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"id": "EOA-3,-EOA-4,-EOA-5-and-EOA-6",
"name": "EOA 3, EOA 4, EOA 5 and EOA 6",
"accounts": [
{
"address": "zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456",
"type": "EOA",
"isVerified": true,
"name": "0x2e80…3456",
"url": "https://explorer.mainnet.zama.org/address/0x2e809E897AA8046Ff6e936502b6275F0B8993456",
"displayName": "EOA 3"
},
{
"address": "zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64",
"type": "EOA",
"isVerified": true,
"name": "0x6799…3E64",
"url": "https://explorer.mainnet.zama.org/address/0x679953d556e71F62673F38EE4775d6E7CCb23E64",
"displayName": "EOA 4"
},
{
"address": "zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7",
"type": "EOA",
"isVerified": true,
"name": "0x68ED…cbd7",
"url": "https://explorer.mainnet.zama.org/address/0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7",
"displayName": "EOA 5"
},
{
"address": "zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634",
"type": "EOA",
"isVerified": true,
"name": "0xF6ee…9634",
"url": "https://explorer.mainnet.zama.org/address/0xF6ee37de6bDaB31597E90ED70448B92073cD9634",
"displayName": "EOA 6"
}
],
"chain": "zama",
"description": "* Can interact with MultichainACL\n * submit public-decryption allowances, account handle allowances, and user-decryption delegation or revocation messages to MultichainACL \n* Can interact with InputVerification\n * sign encrypted input proof verification responses accepted by InputVerification \n * submit coprocessor proof verification and rejection responses to InputVerification \n* Can interact with CiphertextCommits\n * submit ciphertext and SNS ciphertext digests to CiphertextCommits \n* Can interact with GatewayConfig\n * sign encrypted input proof verification responses accepted by the gateway \n * submit coprocessor responses, ACL mirror updates, and ciphertext material commitments to gateway contracts ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "zama:0x0000000000000000000000000000000000000001",
"type": "EOA",
"isVerified": true,
"name": "0x0000…0001",
"url": "https://explorer.mainnet.zama.org/address/0x0000000000000000000000000000000000000001",
"displayName": "EOA 3"
"displayName": "EOA 7"
}
],
"chain": "zama",
"description": "* Can interact with GatewayConfig\n * participate in gateway key custody workflows \n * sign gateway key custody material ",
"discoveryDrivenData": true
},
{
"id": "EOA-4,-EOA-6,-EOA-7,-EOA-8,-EOA-9,-EOA-13,-EOA-14,-EOA-19,-EOA-21,-EOA-22,-EOA-24,-EOA-25-and-EOA-29",
"name": "EOA 4, EOA 6, EOA 7, EOA 8, EOA 9, EOA 13, EOA 14, EOA 19, EOA 21, EOA 22, EOA 24, EOA 25 and EOA 29",
"id": "EOA-8,-EOA-10,-EOA-11,-EOA-12,-EOA-13,-EOA-17,-EOA-18,-EOA-23,-EOA-25,-EOA-26,-EOA-28,-EOA-29-and-EOA-33",
"name": "EOA 8, EOA 10, EOA 11, EOA 12, EOA 13, EOA 17, EOA 18, EOA 23, EOA 25, EOA 26, EOA 28, EOA 29 and EOA 33",
"accounts": [
{
"address": "zama:0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D",
"type": "EOA",
"isVerified": true,
"name": "0x0e25…E31D",
"url": "https://explorer.mainnet.zama.org/address/0x0e25B8DB74c754C8275C0B219ba2A6CD7c59E31D",
"displayName": "EOA 4"
"displayName": "EOA 8"
},
{
"address": "zama:0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340",
"type": "EOA",
"isVerified": true,
"name": "0x43e4…8340",
"url": "https://explorer.mainnet.zama.org/address/0x43e4c21cf9d24Dc5b4e00031349EC213A2ba8340",
"displayName": "EOA 6"
"displayName": "EOA 10"
},
{
"address": "zama:0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC",
"type": "EOA",
"isVerified": true,
"name": "0x487e…c5EC",
"url": "https://explorer.mainnet.zama.org/address/0x487e41623b7FeB464ff79F7326DCa791c9a1c5EC",
"displayName": "EOA 7"
"displayName": "EOA 11"
},
{
"address": "zama:0x4eC7200E392B97913cbD6d8160B011406EB019F1",
"type": "EOA",
"isVerified": true,
"name": "0x4eC7…19F1",
"url": "https://explorer.mainnet.zama.org/address/0x4eC7200E392B97913cbD6d8160B011406EB019F1",
"displayName": "EOA 8"
"displayName": "EOA 12"
},
{
"address": "zama:0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04",
"type": "EOA",
"isVerified": true,
"name": "0x577F…De04",
"url": "https://explorer.mainnet.zama.org/address/0x577Fd21e4BC7D644A4177C4B89146e1Ab394De04",
"displayName": "EOA 9"
"displayName": "EOA 13"
},
{
"address": "zama:0x711EBE8aA590f9C9904ff279239E89dB2eFbC890",
"type": "EOA",
"isVerified": true,
"name": "0x711E…C890",
"url": "https://explorer.mainnet.zama.org/address/0x711EBE8aA590f9C9904ff279239E89dB2eFbC890",
"displayName": "EOA 13"
"displayName": "EOA 17"
},
{
"address": "zama:0x74a1E2e87a4026b7B8b5252c747E514159515e9a",
"type": "EOA",
"isVerified": true,
"name": "0x74a1…5e9a",
"url": "https://explorer.mainnet.zama.org/address/0x74a1E2e87a4026b7B8b5252c747E514159515e9a",
"displayName": "EOA 14"
"displayName": "EOA 18"
},
{
"address": "zama:0xB4CE988D382425F64c99A352375F72A5f1cf6FFB",
"type": "EOA",
"isVerified": true,
"name": "0xB4CE…6FFB",
"url": "https://explorer.mainnet.zama.org/address/0xB4CE988D382425F64c99A352375F72A5f1cf6FFB",
"displayName": "EOA 19"
"displayName": "EOA 23"
},
{
"address": "zama:0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0",
"type": "EOA",
"isVerified": true,
"name": "0xbaac…5BD0",
"url": "https://explorer.mainnet.zama.org/address/0xbaac6F9DD84bFB303F05B4DE45A88Eec86855BD0",
"displayName": "EOA 21"
"displayName": "EOA 25"
},
{
"address": "zama:0xbcF4943A856497FB2345409D35f4d1eae9A0363E",
"type": "EOA",
"isVerified": true,
"name": "0xbcF4…363E",
"url": "https://explorer.mainnet.zama.org/address/0xbcF4943A856497FB2345409D35f4d1eae9A0363E",
"displayName": "EOA 22"
"displayName": "EOA 26"
},
{
"address": "zama:0xC105B5933446658D226582f7A112F49a70b54364",
"type": "EOA",
"isVerified": true,
"name": "0xC105…4364",
"url": "https://explorer.mainnet.zama.org/address/0xC105B5933446658D226582f7A112F49a70b54364",
"displayName": "EOA 24"
"displayName": "EOA 28"
},
{
"address": "zama:0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D",
"type": "EOA",
"isVerified": true,
"name": "0xD227…2e6D",
"url": "https://explorer.mainnet.zama.org/address/0xD227C4B573800EdA3bAdA6DAC872E9134E012e6D",
"displayName": "EOA 25"
"displayName": "EOA 29"
},
{
"address": "zama:0xEd1D622bd59d657580aBAc65312b40B4B2dA6236",
"type": "EOA",
"isVerified": true,
"name": "0xEd1D…6236",
"url": "https://explorer.mainnet.zama.org/address/0xEd1D622bd59d657580aBAc65312b40B4B2dA6236",
"displayName": "EOA 29"
"displayName": "EOA 33"
}
],
"chain": "zama",
"description": "* Can interact with Decryption\n * submit KMS decryption responses to Decryption \n* Can interact with GatewayConfig\n * submit KMS decryption responses to gateway contracts ",
"discoveryDrivenData": true
},
{
"id": "EOA-5,-EOA-10,-EOA-11,-EOA-12,-EOA-15,-EOA-16,-EOA-17,-EOA-18,-EOA-20,-EOA-23,-EOA-26,-EOA-27-and-EOA-28",
"name": "EOA 5, EOA 10, EOA 11, EOA 12, EOA 15, EOA 16, EOA 17, EOA 18, EOA 20, EOA 23, EOA 26, EOA 27 and EOA 28",
"id": "EOA-9,-EOA-14,-EOA-15,-EOA-16,-EOA-19,-EOA-20,-EOA-21,-EOA-22,-EOA-24,-EOA-27,-EOA-30,-EOA-31-and-EOA-32",
"name": "EOA 9, EOA 14, EOA 15, EOA 16, EOA 19, EOA 20, EOA 21, EOA 22, EOA 24, EOA 27, EOA 30, EOA 31 and EOA 32",
"accounts": [
{
"address": "zama:0x41b19EB4585450db79ac03ba9503106EC7895905",
"type": "EOA",
"isVerified": true,
"name": "0x41b1…5905",
"url": "https://explorer.mainnet.zama.org/address/0x41b19EB4585450db79ac03ba9503106EC7895905",
"displayName": "EOA 5"
"displayName": "EOA 9"
},
{
"address": "zama:0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8",
"type": "EOA",
"isVerified": true,
"name": "0x5d0e…f7C8",
"url": "https://explorer.mainnet.zama.org/address/0x5d0e7033774dD43eE546D49b72Bd0B561E52f7C8",
"displayName": "EOA 10"
"displayName": "EOA 14"
},
{
"address": "zama:0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385",
"type": "EOA",
"isVerified": true,
"name": "0x6016…E385",
"url": "https://explorer.mainnet.zama.org/address/0x6016DCA5e91e62826e3FEA1Fb0a763602dc1E385",
"displayName": "EOA 11"
"displayName": "EOA 15"
},
{
"address": "zama:0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921",
"type": "EOA",
"isVerified": true,
"name": "0x6e5f…4921",
"url": "https://explorer.mainnet.zama.org/address/0x6e5f02Cd4B33f0Cf4ED5326ac9eE25e5aA8c4921",
"displayName": "EOA 12"
"displayName": "EOA 16"
},
{
"address": "zama:0x7C17BE232e5968BDa9516478B798b9E90D013fCC",
"type": "EOA",
"isVerified": true,
"name": "0x7C17…3fCC",
"url": "https://explorer.mainnet.zama.org/address/0x7C17BE232e5968BDa9516478B798b9E90D013fCC",
"displayName": "EOA 15"
"displayName": "EOA 19"
},
{
"address": "zama:0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58",
"type": "EOA",
"isVerified": true,
"name": "0x7C5E…4F58",
"url": "https://explorer.mainnet.zama.org/address/0x7C5Eeb4D8CED0101799B8Cc212eE874097364F58",
"displayName": "EOA 16"
"displayName": "EOA 20"
},
{
"address": "zama:0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f",
"type": "EOA",
"isVerified": true,
"name": "0x9150…350f",
"url": "https://explorer.mainnet.zama.org/address/0x915055c5F05C0d88BCdf1e3DfBA18aBD2a18350f",
"displayName": "EOA 17"
"displayName": "EOA 21"
},
{
"address": "zama:0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D",
"type": "EOA",
"isVerified": true,
"name": "0x9661…dB8D",
"url": "https://explorer.mainnet.zama.org/address/0x966188a1f697F6A1B5cfA51495DD8A8A7b5CdB8D",
"displayName": "EOA 18"
"displayName": "EOA 22"
},
{
"address": "zama:0xB7978e602D2AF68258dA614AF949E014BF0DE0eb",
"type": "EOA",
"isVerified": true,
"name": "0xB797…E0eb",
"url": "https://explorer.mainnet.zama.org/address/0xB7978e602D2AF68258dA614AF949E014BF0DE0eb",
"displayName": "EOA 20"
"displayName": "EOA 24"
},
{
"address": "zama:0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3",
"type": "EOA",
"isVerified": true,
"name": "0xbf05…79C3",
"url": "https://explorer.mainnet.zama.org/address/0xbf05c17BEB0BF2F2c78Cd491A53a148e035279C3",
"displayName": "EOA 23"
"displayName": "EOA 27"
},
{
"address": "zama:0xdC472efa1642D5afB684aAaa546E22FB24AAB965",
"type": "EOA",
"isVerified": true,
"name": "0xdC47…B965",
"url": "https://explorer.mainnet.zama.org/address/0xdC472efa1642D5afB684aAaa546E22FB24AAB965",
"displayName": "EOA 26"
"displayName": "EOA 30"
},
{
"address": "zama:0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f",
"type": "EOA",
"isVerified": true,
"name": "0xDFc9…194f",
"url": "https://explorer.mainnet.zama.org/address/0xDFc9Dcb3D206AA164770874f36a4B5AD2EE5194f",
"displayName": "EOA 27"
"displayName": "EOA 31"
},
{
"address": "zama:0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f",
"type": "EOA",
"isVerified": true,
"name": "0xe9f7…ed6f",
"url": "https://explorer.mainnet.zama.org/address/0xe9f7ecfF21a2e0Ca58eA26ae869FEF38ab49ed6f",
"displayName": "EOA 28"
"displayName": "EOA 32"
}
],
"chain": "zama",
"description": "* Can interact with Decryption\n * sign public decryption results and user decryption shares accepted by Decryption \n* Can interact with GatewayConfig\n * sign KMS decryption material accepted by gateway contracts ",
"discoveryDrivenData": true
},
{
"id": "EOA-61,-EOA-62,-EOA-63-and-EOA-64",
"name": "EOA 61, EOA 62, EOA 63 and EOA 64",
"id": "EOA-65,-EOA-66,-EOA-67-and-EOA-68",
"name": "EOA 65, EOA 66, EOA 67 and EOA 68",
"accounts": [
{
"address": "zama:0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"type": "EOA",
"isVerified": true,
"name": "0x6dd4…5874",
"url": "https://explorer.mainnet.zama.org/address/0x6dd470B50BbC1Ec03bf2B13B30c7d864F2025874",
"displayName": "EOA 61"
"displayName": "EOA 65"
},
{
"address": "zama:0x705380c013c13B4ce62338ab1F012036BAC802b3",
"type": "EOA",
"isVerified": true,
"name": "0x7053…02b3",
"url": "https://explorer.mainnet.zama.org/address/0x705380c013c13B4ce62338ab1F012036BAC802b3",
"displayName": "EOA 62"
"displayName": "EOA 66"
},
{
"address": "zama:0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"type": "EOA",
"isVerified": true,
"name": "0x8edF…8CB8",
"url": "https://explorer.mainnet.zama.org/address/0x8edFb885a32C72aF32943D4db13D319181d18CB8",
"displayName": "EOA 63"
"displayName": "EOA 67"
},
{
"address": "zama:0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"type": "EOA",
"isVerified": true,
"name": "0x9b82…9B71",
"url": "https://explorer.mainnet.zama.org/address/0x9b828219ad863491eb9b5225aE2d133eEDEa9B71",
"displayName": "EOA 64"
"displayName": "EOA 68"
}
],
"chain": "zama",
"description": "Member of SafeL2.\n* Can interact with GatewayPauserSet\n * pause GatewayConfig and pausable gateway workflow contracts ",
"discoveryDrivenData": true
}
]
}
}
+9 -9
{
"addresses": {
"ethereum": [
{
"name": "ConfidentialSteakUSDTWrapper",
"isVerified": true,
"address": "eth:0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789152239,
"transactionHash": "0xe9f33dc7a110fea67894ef7f3ef9254918eaabeb7ad01facde7cefb240395b4d",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1F6A937119c0c34Db0a2c4F000386a3BfD4A9e73#code"
},
{
"name": "ConfidentialArmUSDCpWrapper",
"isVerified": true,
"address": "eth:0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789150751,
"transactionHash": "0xd55cc3a9346ae5156efdfbbb3d628e8d93de08f419e3f0ec55ae90bde92e28c0",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2ebBd099f66b0ca94DD82B4c06fe3eEf6AFf853c#code"
},
{
"name": "HCULimit",
"isVerified": true,
"address": "eth:0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763549531,
"transactionHash": "0xfd792abe94dd6c945b787284045ee8a66684985e48834872cc4452705e8ab27d",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1763549663,
"transactionHash": "0xb5ab1dbab2a11947fad8475b643fb3ecf7710a1d09bf250038635a0198c7fc0d",
"implementations": [
"eth:0x4E4329F10f7EE88a5dDB13716B8bE00c077CBeb6"
]
},
{
"timestamp": 1783672451,
"transactionHash": "0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224",
"implementations": [
"eth:0x0F2B7e8F19ADc874F21e27ADAA4B22FC00a0B442"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0x69A91389006443448d8E90Fd84B6bDF5ae253837"
]
}
],
"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* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3b4da65e45Fda2CAa0285A735ab4361a44F171E2#code"
},
{
"name": "ConfidentialRoxUSDCyWrapper",
"isVerified": true,
"address": "eth:0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789154375,
"transactionHash": "0x7a7eadb1e667732e52a0064b3a1f253a562fb35d34d1bc96663bbdf0f95a8f1a",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4FCCF8046FB7FB7AB76321BD39C27453e396B88f#code"
},
{
"name": "ConfidentialBbqUSDCWrapper",
"isVerified": true,
"address": "eth:0x501b014f86a73A7199E00cB31C0e9565Ac51e51B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789153067,
"transactionHash": "0x889469791190aaf6a60a02c423bd1080bf1dd4bfb768f778521e3ca927690d59",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x501b014f86a73A7199E00cB31C0e9565Ac51e51B#code"
},
{
"name": "ConfidentialArmUSDTpWrapper",
"isVerified": true,
"address": "eth:0x63a60aCC304b84eF829b263f28e7b636Bf77d45A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789153331,
"transactionHash": "0x46e9abc4237bb9560dc0595f6f18dd84cc984a09adfac882e44c84b37fcb23f0",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x63a60aCC304b84eF829b263f28e7b636Bf77d45A#code"
},
{
"name": "ConfidentialSteakcUSDCWrapper",
"isVerified": true,
"address": "eth:0x66Bf74E96900D1a19c7070D939D124f2F565C458",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1781877707,
"transactionHash": "0x295406f3a8a3481eb9e33e25b9b9967a9b833244b76e39e91fe05424b7f14beb",
"implementations": [
"eth:0xAea1d2cc69aF93CA0fdd34426E74Ad7cB19E9745"
]
},
{
"timestamp": 1782125723,
"transactionHash": "0x78c56acfe7e477612beb8536dc51fe47a0531b0e71ca194fe1b449bfd4f110c2",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x66Bf74E96900D1a19c7070D939D124f2F565C458#code"
},
{
"name": "ConfidentialXAUTWrapper",
"isVerified": true,
"address": "eth:0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772116091,
"transactionHash": "0x6824019fdc0404c3517600959f4e8dec43ae218dac150e63db45f2cb4b22360a",
"implementations": [
"eth:0x9CFdA0290EdeF98D0539e5747bea9Bd889a08BaB"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x73cc9aF9d6BEFdb3c3fAf8a5E8c05Cb95FdaEEf1#code"
},
{
"name": "ConfidentialFAUSDeWrapper",
"isVerified": true,
"address": "eth:0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789148387,
"transactionHash": "0x7eef71a0892e61b5b1db77cc9443cf2951497ef28c483823b22b69bf623c5f24",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x76A3f985315aAc9789Cb5BF8A5bb83BFF55FD5a6#code"
},
{
"name": "KMSVerifier",
"isVerified": true,
"address": "eth:0x77627828a55156b04Ac0DC0eb30467f1a552BB03",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763549507,
"transactionHash": "0x06d02641ad92aa250ac4fc62db0f221916bef24bbabbf3b4d0b70f6688abd2c4",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1763549639,
"transactionHash": "0x7e4b4f2daadb3e6752b8c1fc896cba229da788a227041dfdc2660122ca1a7568",
"implementations": [
"eth:0x8210A6c69FAc2e9856C7a19Ee70b26cFa3A4F0E2"
]
},
{
"timestamp": 1783672451,
"transactionHash": "0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224",
"implementations": [
"eth:0xd0d0C7E1bc1E2F6Cd00E3b4B1083DdD9969155FD"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0x390683dEa46a61786f4F0807bf3559038Cf43Fa4"
]
}
],
"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* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x77627828a55156b04Ac0DC0eb30467f1a552BB03#code"
},
{
"name": "ConfidentialArmUSDCsWrapper",
"isVerified": true,
"address": "eth:0x77F8207ee451441336538bA07a2F425780dED8DB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789151411,
"transactionHash": "0x96d24e2718e693259e6f30d476fc2a1157018ee8b4978f224807e2ecb06f6c56",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x77F8207ee451441336538bA07a2F425780dED8DB#code"
},
{
"name": "ConfidentialBbqUSDTWrapper",
"isVerified": true,
"address": "eth:0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789152695,
"transactionHash": "0x015d053c281a8ebb13d7170b1f91cdbac616e0aff901335a9cdb542dd15137dd",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x80Ae7dbCe3c1696d3eeD04Ec8348c3C432322273#code"
},
{
"name": "ConfidentialZAMAWrapper",
"isVerified": true,
"address": "eth:0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750867,
"transactionHash": "0x45633b2aab6c5c6315c172eae43ecc3d3d41644a6bbfdea0f06d98c2c399c43a",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x80CB147Fd86dC6dEe3Eee7e4Cee33d1397d98071#code"
},
{
"name": "ConfidentialBRONWrapper",
"isVerified": true,
"address": "eth:0x85dE671c3bec1aDeD752c3Cea943521181C826bc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750855,
"transactionHash": "0xa779010ac9c5e5117b225f1ad387c33747a27ae91c429b8004ecb55643bfe0c5",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x85dE671c3bec1aDeD752c3Cea943521181C826bc#code"
},
{
"name": "ConfidentialPENDLEWrapper",
"isVerified": true,
"address": "eth:0x8900123F7e17709C1D80eda1E611A9503Cf1B3df",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789150991,
"transactionHash": "0x81bc67cd541d90df6904fd05608b64880b98be74fb5c1c0f5e4f17a0ec779561",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8900123F7e17709C1D80eda1E611A9503Cf1B3df#code"
},
{
"name": "ConfidentialPAPYWrapper",
"isVerified": true,
"address": "eth:0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789151975,
"transactionHash": "0xeb2532285d2ac5d8939481a8bfa78ddd8fc0418d031cfc525d97bf7201939a66",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9ABb8f3dC2863B1F108DeD7ea41902fEF6732A8c#code"
},
{
"name": "ConfidentialFcUSDTWrapper",
"isVerified": true,
"address": "eth:0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789388567,
"transactionHash": "0xac60b0c2440232297fb1e4b7aabe445e32b69cc56d0d7be02bef6f4bba219ff9",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA28A369Df348ac232E4DAF7B0Ef90280d8707D7F#code"
},
{
"name": "ConfidentialTGBPWrapper",
"isVerified": true,
"address": "eth:0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1767000887,
"transactionHash": "0x7bee57213dda8d8b4c15cccef163e7b8767989deb0181b855dc98bf00e0b46ec",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa873750ccBafD5ec7Dd13bfD5237d7129832eDD9#code"
},
{
"name": "ConfidentialUSDTWrapper",
"isVerified": true,
"address": "eth:0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750831,
"transactionHash": "0x2eeb06d478ab37699ab18bc2cd90248eaf67f3a05c9995808ca5e949b4d1f606",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xAe0207C757Aa2B4019Ad96edD0092ddc63EF0c50#code"
},
{
"name": "ConfidentialRoxcUSDCWrapper",
"isVerified": true,
"address": "eth:0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789153955,
"transactionHash": "0x3ef21251bb814e05e1ad9812ad70d000318e223d8655c395944d1ca345984f7a",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB1B18Ad1F16D744c470cb6B09Cb826AfFcc9EB30#code"
},
{
"name": "ConfidentialPendleUSDCWrapper",
"isVerified": true,
"address": "eth:0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789150499,
"transactionHash": "0x245c01d53b1793bf5bcdcc33260534472552aeb287fa76e0330648a25385f7f1",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb6e5299fc56053DD5440104Fd6Fd2A3CD064edbC#code"
},
{
"name": "ConfidentialBbqTGBPWrapper",
"isVerified": true,
"address": "eth:0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1780585031,
"transactionHash": "0xf8f65cadc2879300e74e4bf02a727021a71732b6c122a9243f3445799ec12212",
"implementations": [
"eth:0xAea1d2cc69aF93CA0fdd34426E74Ad7cB19E9745"
]
},
{
"timestamp": 1780663271,
"transactionHash": "0x88640fcae1f813a06ecd522d8baad4898ea1abeec37935d5280f0edec77717e4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xBA4cFF6ED6F7Cb2A58776dECa4E984b498446762#code"
},
{
"name": "ConfidentialArmUSDTsWrapper",
"isVerified": true,
"address": "eth:0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789150187,
"transactionHash": "0x0126561c5f1b610e7f7dac5a364b5e6122bf5c3cb86f56908b94a94893df33b5",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbaC6DeDf2C10D6D381F9DBd9EFd69D93FfCef50B#code"
},
{
"name": "ACL",
"isVerified": true,
"address": "eth:0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763549471,
"transactionHash": "0x858617542602611205744c3ae5f6905ac1bba19d3c08971de9c1a820a8a33f03",
"implementations": [
"eth:0xcD88EA408376C426308703e5808aa9f2e4cb09F2"
]
},
{
"timestamp": 1763549591,
"transactionHash": "0x99b4c55992ead5468d12e37b84c00ab6e7a9eb01380736586abab6300543faa0",
"implementations": [
"eth:0x4E35869D1e8106058d11b414876B735F62A325e2"
]
},
{
"timestamp": 1765296611,
"transactionHash": "0x106ad2025c3f8b47cc0be8456e38f332345068a2c99ad8f12fc779c573676a05",
"implementations": [
"eth:0x96B171e4f8eCda0FFdD128b319Fa185b14f99D76"
]
},
{
"timestamp": 1783672451,
"transactionHash": "0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224",
"implementations": [
"eth:0x3F6D970d30E1FFE9657aa8072C82dA10eef1c3D6"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0x9A017e0ba4c19A325D5a89f5dd2112e605E85418"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6#code"
},
{
"name": "InputVerifier",
"isVerified": true,
"address": "eth:0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0xc4a1a1BaE73ca6aceb2FAa62ce08BfAbCd2323b6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763549519,
"transactionHash": "0x4ca7637788e07eb8c1253055b3ce2e104c210fb289854b749c6cfedbd17b09cd",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1763549651,
"transactionHash": "0xd13b7d81bbe520a5184759a326747a536c47dd3d1d990754288f1e1ec325fc29",
"implementations": [
"eth:0xc4a1a1BaE73ca6aceb2FAa62ce08BfAbCd2323b6"
]
}
],
"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* Roles:\n * **getCoprocessorSigners**: EOA 31\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"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* Roles:\n * **getCoprocessorSigners**: EOA 35\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2#code"
},
{
"name": "ProtocolConfig",
"isVerified": true,
"address": "eth:0xD8236B57394f90726b26aB25D38CeAC776E1a7C4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1785941423,
"transactionHash": "0x2b75b644a4fc5c175242df9efb03c0aa3f2be2c67cae2560e9ffc5333316c468",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0x25c76298Fb4d15bFADce4798519a7B37ac0076E7"
]
}
],
"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* Roles:\n * **currentKmsTxSenders**: EOA 30, EOA 33, EOA 34, EOA 35, EOA 36, EOA 40, EOA 41, EOA 46, EOA 48, EOA 49, EOA 51, EOA 52, EOA 56\n * **getKmsSigners**: EOA 32, EOA 37, EOA 38, EOA 39, EOA 42, EOA 43, EOA 44, EOA 45, EOA 47, EOA 50, EOA 53, EOA 54, EOA 55\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"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* Roles:\n * **currentKmsTxSenders**: EOA 34, EOA 37, EOA 38, EOA 39, EOA 40, EOA 44, EOA 45, EOA 50, EOA 52, EOA 53, EOA 55, EOA 56, EOA 60\n * **getKmsSigners**: EOA 36, EOA 41, EOA 42, EOA 43, EOA 46, EOA 47, EOA 48, EOA 49, EOA 51, EOA 54, EOA 57, EOA 58, EOA 59\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD8236B57394f90726b26aB25D38CeAC776E1a7C4#code"
},
{
"name": "FHEVMExecutor",
"isVerified": true,
"address": "eth:0xD82385dADa1ae3E969447f20A3164F6213100e75",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763549495,
"transactionHash": "0x43a0b2d4811549a09d7c1de5fd980ec9751343bb0b8babc3dcaf39a72cb10389",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1763549603,
"transactionHash": "0xcf5069f2c6b06734e6a866122d122be50d2b3f0251cd8833cca13d6a5b5c1076",
"implementations": [
"eth:0x9a2886431fDd00449D4B02e3aF9C04a2608162e6"
]
},
{
"timestamp": 1774083191,
"transactionHash": "0xc43696e8168a63f43cf6aa8bee9651d3170d311fd07fd6dda6e4e51e18fd2b44",
"implementations": [
"eth:0xde3624dA8d9c45B57674cA0AcAC40630682211bb"
]
},
{
"timestamp": 1783672451,
"transactionHash": "0xec2212fb2d35b72388507e5fe9c218c97512b943b5f28cedbfba35b7ac9bd224",
"implementations": [
"eth:0xC38aAfCBB73Fd4bd6f995275079C4Add9C1687E5"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5"
]
},
{
"timestamp": 1791216671,
"transactionHash": "0x63594740e6849980ffeecf14392b8b7f3e1e382c2e1ea023eb7a3df345f61328",
"implementations": [
"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B"
]
}
],
"description": "FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle.\n* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD82385dADa1ae3E969447f20A3164F6213100e75#code"
},
{
"name": "ConfidentialWBTCWrapper",
"isVerified": true,
"address": "eth:0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789148087,
"transactionHash": "0x2542e4587e213e5d97c9589fb98ce80648043a69f8e55417b045677f64bac13e",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd86aE89C089B380f064Fe01899B4071F1eb6Bb3d#code"
},
{
"name": "ConfidentialWETHWrapper",
"isVerified": true,
"address": "eth:0xda9396b82634Ea99243cE51258B6A5Ae512D4893",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750843,
"transactionHash": "0xf1d8c691a4db0974cbfb6d5e638ae9204d19a1733b65e6e41e934d9acf50e921",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xda9396b82634Ea99243cE51258B6A5Ae512D4893#code"
},
{
"name": "ConfidentialUSDCWrapper",
"isVerified": true,
"address": "eth:0xe978F22157048E5DB8E5d07971376e86671672B2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750819,
"transactionHash": "0xc4795dcb1554d8e2dd718bca62c2107f346954973072ad781bab27147f6a1664",
"implementations": [
"eth:0x0309b4308A6AC121B9b3A960aC7Bc9bd8256cf38"
]
},
{
"timestamp": 1778571743,
"transactionHash": "0x5a09940b75c7fb272ce47bef53ac0282740b3278b3c0ce520240f10c90018f32",
"implementations": [
"eth:0xFF9e1Db30031Cb2B1b82E138beC70d7DE70d8413"
]
},
{
"timestamp": 1780321931,
"transactionHash": "0x468f9a1433f795da68b88d6adb33f7180e86937d3f3437ec001173c52e7f35f4",
"implementations": [
"eth:0x5226fe30Fa7Bf20C1Cd33F125f77D0c42d3c23b5"
]
},
{
"timestamp": 1787673575,
"transactionHash": "0x55c55172da4c231406a41da3838bff87dc9b361c62f208fe0e60994a1b82b0b0",
"implementations": [
"eth:0x2ABad2203Eba104b52cf040cCcFA100Df15687F8"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe978F22157048E5DB8E5d07971376e86671672B2#code"
},
{
"name": "ConfidentialAUSDWrapper",
"isVerified": true,
"address": "eth:0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789146719,
"transactionHash": "0x696d006e217f5ccda05c1bf61a575622009037f45ec832dac617dbce7edaf677",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEa9A15A29DD180c40442142CaeEfC491d37bfDB2#code"
},
{
"name": "ConfidentialTokenWrappersRegistry",
"isVerified": true,
"address": "eth:0xeb5015fF021DB115aCe010f23F55C2591059bBA0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0xA989D32d7348e0Da8145C6282E839dfC4DB8954f"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1766750315,
"transactionHash": "0x01110836e21dfbb28a25ebf7be8dd6e95b7f09ef006c10f4a108a60ec5cf0f69",
"implementations": [
"eth:0xA989D32d7348e0Da8145C6282E839dfC4DB8954f"
]
}
],
"description": "Registry for Zama confidential token wrappers.\n* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xeb5015fF021DB115aCe010f23F55C2591059bBA0#code"
},
{
"name": "KMSGeneration",
"isVerified": true,
"address": "eth:0xf102cC9A9D2174630c394f5b7B7D63104E348daa",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1785941447,
"transactionHash": "0x4a00d0e3d19c4a81c0edc5272cbdad53572ac78d7ddc602cde1bfadb358209cd",
"implementations": [
"eth:0xC94790325C61A7D98e90d835ea89777d64b17492"
]
},
{
"timestamp": 1786362647,
"transactionHash": "0x3a73cbfe82d45d522aafa83acbc4a44dd89a2b409530e3a52d0076009a036c78",
"implementations": [
"eth:0x5DD95e97287672b5d86dd3a427E855099E5AC940"
]
}
],
"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* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf102cC9A9D2174630c394f5b7B7D63104E348daa#code"
},
{
"name": "ConfidentialArmcWBTCWrapper",
"isVerified": true,
"address": "eth:0xF921A5B0634f4236B21A4e948317abf9a2E86B6f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1789148987,
"transactionHash": "0xd938d016e57611121abc327202b921dc60afe8d505b7eaee1f0dd7dd67eca127",
"implementations": [
"eth:0x35E980f5Fe42BBA64C1ed0332AADACb98faBDDaD"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **owner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF921A5B0634f4236B21A4e948317abf9a2E86B6f#code"
},
{
"name": "DAO",
"isVerified": true,
"address": "eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0000000000000000000000000000000000000000"
],
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1763037479,
"transactionHash": "0x98aff8abc8828132c15a9aa5d510766bc3358cb3a7ca98636306e94b0debefc1",
"implementations": [
"eth:0x58C1F7Bc62Bb63fb137bc8F6d8ea6321a0501d29"
]
}
],
"description": "Aragon DAO that stores governance state and executes proposal action batches.\n* Roles:\n * **daoExecutors**: ZamaGovMultisigA, ZamaGovMultisigB\n * **daoRootHolders**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **daoUpgraders**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **multisigSettingsAdmins**: DAO, ZamaGovMultisigA, ZamaGovMultisigB; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **multisigTargetConfigAdmins**: DAO, ZamaGovMultisigA, ZamaGovMultisigB; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3#code"
},
{
"name": "PauserSet",
"isVerified": true,
"address": "eth:0xbBfE1680b4a63ED05f7F80CE330BED7C992A586C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Maintains the pauser account set used in pause-control checks.\n* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **pausers**: EOA 57, EOA 58, EOA 59, EOA 60",
"description": "Maintains the pauser account set used in pause-control checks.\n* Roles:\n * **lOwner**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **pausers**: EOA 61, EOA 62, EOA 63, EOA 64",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbBfE1680b4a63ED05f7F80CE330BED7C992A586C#code"
},
{
"name": "Staking (Coprocessor)",
"isVerified": true,
"address": "eth:0x7147485b892158f2B875f7aC5Ea48A9937C66AE8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0xeaBD906bE5E72F1a7949c8DC5E7Fb047Db7E7EAE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768300679,
"transactionHash": "0x7d7fb37c635bb8e63cebe6d76e8b5e26a0f08cc4630f792b782d6a19f81a2cf2",
"implementations": [
"eth:0xeaBD906bE5E72F1a7949c8DC5E7Fb047Db7E7EAE"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **defaultAdmin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **managerRoleMembers**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7147485b892158f2B875f7aC5Ea48A9937C66AE8#code"
},
{
"name": "Staking (KMS)",
"isVerified": true,
"address": "eth:0xe9b176CCaA8840DC3b3567bb83e2cD2a6c36F4Ab",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xB6D69D5F334d8B97B194617B53c6aB62f8681Ef3"
],
"implementations": [
"eth:0xeaBD906bE5E72F1a7949c8DC5E7Fb047Db7E7EAE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768300691,
"transactionHash": "0x049b7dbbe648f4de55b54b2950fadbb205342e8c99b3a9bf73333c8075033be3",
"implementations": [
"eth:0xeaBD906bE5E72F1a7949c8DC5E7Fb047Db7E7EAE"
]
}
],
"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* Roles:\n * **admin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **defaultAdmin**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB\n * **managerRoleMembers**: DAO; ultimately ZamaGovMultisigA, ZamaGovMultisigB",
"upgradableBy": [
{
"name": "ZamaGovMultisigB",
"delay": "no"
},
{
"name": "ZamaGovMultisigA",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe9b176CCaA8840DC3b3567bb83e2cD2a6c36F4Ab#code"
}
],
"zama": [
{
"name": "MultichainACL",
"isVerified": true,
"address": "zama:0x055d9FD50a612A9027716ec8db663E7D68562468",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0x9B5bc299FC3C7AEFb6a215C1c156D5854B53b262"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504840,
"transactionHash": "0x9c8e29cac9aa9f2d93f9b00f8814d25c86565a296a7193be70ca554a4273d845",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1763504923,
"transactionHash": "0x163e2453c6431119ace5b38c524f4e47892e7661bf0e08319785032654a31c05",
"implementations": [
"zama:0x55F101e2D2331119ceCD136A9f0E89643A163bB8"
]
},
{
"timestamp": 1765291728,
"transactionHash": "0x68ea8a8347f0b22ac7ddba487f9baeb69eeb393cb4aca98e86fed97a91a80cfa",
"implementations": [
"zama:0x9B5bc299FC3C7AEFb6a215C1c156D5854B53b262"
]
}
],
"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* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorTxSenders**: EOA 1\n * **gatewayOwner**: SafeL2",
"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* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorTxSenders**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **gatewayOwner**: SafeL2",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0x055d9FD50a612A9027716ec8db663E7D68562468#code"
},
{
"name": "Decryption",
"isVerified": true,
"address": "zama:0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504841,
"transactionHash": "0x967e084e69cce0203af66ac59ebea6c1433877322f9c8a01da30b5fbf1ba5cb0",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1763504924,
"transactionHash": "0xb69c7b64e7ed4ccacf621edd25059e062d63cdebd71a8a2f1dcc4fbe7dd0b6f4",
"implementations": [
"zama:0x99c454f6c59b66C5B39D85DEA99565A78e597b7c"
]
},
{
"timestamp": 1765291178,
"transactionHash": "0x0dd6bc720fd0c2158c1720e26292d3df770b9ba6613ebcce2c292bfbcc1eff08",
"implementations": [
"zama:0xe691cE3d7a71E2eC9E96AF5bdD263FfEB124F8dE"
]
},
{
"timestamp": 1783671340,
"transactionHash": "0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217",
"implementations": [
"zama:0x943CEfD1A00d3ae5b298bB10D4EddA09B279C8B0"
]
},
{
"timestamp": 1786036264,
"transactionHash": "0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c",
"implementations": [
"zama:0x86F8e9626cCff3f2eB3dA248F33DfF43531DBFD8"
]
}
],
"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* Roles:\n * **admin**: EOA 2\n * **gatewayKmsSigners**: EOA 10, EOA 11, EOA 12, EOA 15, EOA 16, EOA 17, EOA 18, EOA 20, EOA 23, EOA 26, EOA 27, EOA 28, EOA 5\n * **gatewayKmsTxSenders**: EOA 13, EOA 14, EOA 19, EOA 21, EOA 22, EOA 24, EOA 25, EOA 29, EOA 4, EOA 6, EOA 7, EOA 8, EOA 9\n * **gatewayOwner**: SafeL2",
"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* Roles:\n * **admin**: EOA 2\n * **gatewayKmsSigners**: EOA 14, EOA 15, EOA 16, EOA 19, EOA 20, EOA 21, EOA 22, EOA 24, EOA 27, EOA 30, EOA 31, EOA 32, EOA 9\n * **gatewayKmsTxSenders**: EOA 10, EOA 11, EOA 12, EOA 13, EOA 17, EOA 18, EOA 23, EOA 25, EOA 26, EOA 28, EOA 29, EOA 33, EOA 8\n * **gatewayOwner**: SafeL2",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24#code"
},
{
"name": "KMSGeneration",
"isVerified": true,
"address": "zama:0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504841,
"transactionHash": "0xf3172c87f8513e0f7215aaf0e61496e4fbf4e44c40f51562db8f48794771bd5f",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1763504920,
"transactionHash": "0xc25eaf0d69185160935a98ef009505fbeb16e04a46d7307abeccc1e06e3105be",
"implementations": [
"zama:0x24Aa237cE5FfD591059Bbd78014F8540cC4864a7"
]
},
{
"timestamp": 1765291450,
"transactionHash": "0xf37c1f04d35127d17f35fda57e53b68bc8063c1d3b08a05bdbbfec12eb7e447d",
"implementations": [
"zama:0x3d345DFc156381E6060Cdf652cDf7f92DF94fAFF"
]
},
{
"timestamp": 1786036264,
"transactionHash": "0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c",
"implementations": [
"zama:0x68CEb7709aC1bcD60e36c4144a243A445A2cb076"
]
}
],
"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* Roles:\n * **admin**: EOA 2\n * **gatewayOwner**: SafeL2",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0x290947F9fed2d91fdB22f35E162aDfA744b7aEe3#code"
},
{
"name": "ProtocolPayment",
"isVerified": true,
"address": "zama:0x7E179E45E5fe0a21015Be25185363B4F2F2F7e89",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0xEbaC23dc56b1339558cdbdf7dEf245c80d727075"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1765289750,
"transactionHash": "0xb922a7b5126ca4dff4364743c33110d5219d7f2978a815e20a72d6f0068a88bf",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1765289833,
"transactionHash": "0xf7acc60460f2adce48c4a1e3f7d630d9612d18008188ec4b95ebdfa2419cc792",
"implementations": [
"zama:0xEbaC23dc56b1339558cdbdf7dEf245c80d727075"
]
}
],
"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* Roles:\n * **admin**: EOA 2\n * **gatewayOwner**: SafeL2",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0x7E179E45E5fe0a21015Be25185363B4F2F2F7e89#code"
},
{
"name": "InputVerification",
"isVerified": true,
"address": "zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504842,
"transactionHash": "0x880800809b7723cf723efc897cdeb0f9a560530317f1281a61601851f1ef0449",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1763504919,
"transactionHash": "0x8d530fcff93bb112195829d27e90eedf65f122f4262b809a5d57fbd9fcc1ea19",
"implementations": [
"zama:0x7bfF0c5aEF31a8AB7116594A492cBEe9a829fF74"
]
},
{
"timestamp": 1765291315,
"transactionHash": "0x1be878372ad005809903c742e7c3ea908bfcaa1f1e63ebac2eeb0834d499fcc7",
"implementations": [
"zama:0xA08c4367eB984945da2dad5BF7d94D1B2863197A"
]
},
{
"timestamp": 1786036264,
"transactionHash": "0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c",
"implementations": [
"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821"
]
},
{
"timestamp": 1791453910,
"transactionHash": "0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",
"implementations": [
"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8"
]
}
],
"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorSigners**: EOA 1\n * **gatewayCoprocessorTxSenders**: EOA 1\n * **gatewayOwner**: SafeL2\n * **gatewayPriorityCoprocessorTxSender**: EOA 1",
"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorSigners**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **gatewayCoprocessorTxSenders**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **gatewayOwner**: SafeL2\n * **gatewayPriorityCoprocessorTxSender**: EOA 1",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287#code"
},
{
"name": "CiphertextCommits",
"isVerified": true,
"address": "zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x0000000000000000000000000000000000000000"
],
"implementations": [
"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504840,
"transactionHash": "0xd9fa2324e7460bb03aab530a0aa72d0d9bd6e029b6dc4cba601584558184a475",
"implementations": [
"zama:0x74adf0e5324Ba67d51872c27A025f1eEC0DaA500"
]
},
{
"timestamp": 1763504922,
"transactionHash": "0x23f1f4743b50b67226581c9755326253e470e0784661f65766f8a02f8db6e770",
"implementations": [
"zama:0xd550654F0cD1B56e1C887569A5F7b5e643Fd3e47"
]
},
{
"timestamp": 1765291041,
"transactionHash": "0x36d9d960dd681eff0022eac04f63b06c514b54296f7c248ea6041b785ef59977",
"implementations": [
"zama:0xC92f2dc7eF79728ed32e745020EF463270217e78"
]
},
{
"timestamp": 1786036264,
"transactionHash": "0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c",
"implementations": [
"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622"
]
},
{
"timestamp": 1791453910,
"transactionHash": "0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",
"implementations": [
"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948"
]
}
],
"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own.\n* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorTxSenders**: EOA 1\n * **gatewayOwner**: SafeL2\n * **gatewayPriorityCoprocessorTxSender**: EOA 1",
"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own.\n* Roles:\n * **admin**: EOA 2\n * **gatewayCoprocessorTxSenders**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **gatewayOwner**: SafeL2\n * **gatewayPriorityCoprocessorTxSender**: EOA 1",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
},
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0xd82cF70FC102028cd01acB87D0E107780ae4F41F#code"
},
{
"name": "GatewayConfig",
"isVerified": true,
"address": "zama:0xDE537Be194777A56f8B19d14079E6a78249390ab",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"zama:0x5f0F86BcEad6976711C9B131bCa5D30E767fe2bE"
],
"implementations": [
"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C"
]
},
"chain": "zama",
"pastUpgrades": [
{
"timestamp": 1763504825,
"transactionHash": "0x716ebd474f8714fb9e32f2eec6bb28083e1fe7e0185494fab8ce0ca70a26339e",
"implementations": [
"zama:0xf0EfBe52c0a3B07718D5eEFfb9FCa9E442988BeF"
]
},
{
"timestamp": 1763504917,
"transactionHash": "0x30ac1d1808d4dfbad21cad05b50d62b861cf578cd97b43693488ad269287f608",
"implementations": [
"zama:0x96C188a54E880Fe86741b8ef19C429234b72A9Af"
]
},
{
"timestamp": 1765291588,
"transactionHash": "0xd05685ebd7a7a76a93963ade6cabe69887f3e0f2160eb1a122abc9eb347550f5",
"implementations": [
"zama:0xDa97dfc327349F7C1333610C80cc20971eD0eb0f"
]
},
{
"timestamp": 1783671340,
"transactionHash": "0x5d63d8d9bf4790e7169cd1d6c440262aad29368190932f823377df311f389217",
"implementations": [
"zama:0x2294E3C211238Ae31E2824576CCd7f996CC7Dc00"
]
},
{
"timestamp": 1786036264,
"transactionHash": "0x350755101263bed64dc377ef6f3ef07f95f97918b689967a60ee625d0d9e025c",
"implementations": [
"zama:0x1950aD98e834f6c07553365196d4CddeD179c536"
]
},
{
"timestamp": 1791453910,
"transactionHash": "0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa",
"implementations": [
"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C"
]
}
],
"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. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.\n* Roles:\n * **admin**: SafeL2\n * **getCoprocessorSigners**: EOA 1\n * **getCoprocessorTxSenders**: EOA 1\n * **getCustodianSigners**: EOA 3\n * **getCustodianTxSenders**: EOA 3\n * **getKmsSigners**: EOA 10, EOA 11, EOA 12, EOA 15, EOA 16, EOA 17, EOA 18, EOA 20, EOA 23, EOA 26, EOA 27, EOA 28, EOA 5\n * **getKmsTxSenders**: EOA 13, EOA 14, EOA 19, EOA 21, EOA 22, EOA 24, EOA 25, EOA 29, EOA 4, EOA 6, EOA 7, EOA 8, EOA 9\n * **getPriorityCoprocessorTxSender**: EOA 1\n * **owner**: SafeL2\n * **pendingOwner**: EOA 2",
"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. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.\n* Roles:\n * **admin**: SafeL2\n * **getCoprocessorSigners**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **getCoprocessorTxSenders**: EOA 1, EOA 3, EOA 4, EOA 5, EOA 6\n * **getCustodianSigners**: EOA 7\n * **getCustodianTxSenders**: EOA 7\n * **getKmsSigners**: EOA 14, EOA 15, EOA 16, EOA 19, EOA 20, EOA 21, EOA 22, EOA 24, EOA 27, EOA 30, EOA 31, EOA 32, EOA 9\n * **getKmsTxSenders**: EOA 10, EOA 11, EOA 12, EOA 13, EOA 17, EOA 18, EOA 23, EOA 25, EOA 26, EOA 28, EOA 29, EOA 33, EOA 8\n * **getPriorityCoprocessorTxSender**: EOA 1\n * **owner**: SafeL2\n * **pendingOwner**: EOA 2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0xDE537Be194777A56f8B19d14079E6a78249390ab#code"
},
{
"name": "GatewayPauserSet",
"isVerified": true,
"address": "zama:0x571ecb596fCc5c840DA35CbeCA175580db50ac1b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "zama",
"description": "Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.\n* Roles:\n * **gatewayOwner**: SafeL2\n * **pausers**: EOA 61, EOA 62, EOA 63, EOA 64",
"description": "Maintains the set of accounts allowed to pause gateway contracts. The set is managed by the GatewayConfig owner.\n* Roles:\n * **gatewayOwner**: SafeL2\n * **pausers**: EOA 65, EOA 66, EOA 67, EOA 68",
"discoveryDrivenData": true,
"url": "https://explorer.mainnet.zama.org/address/0x571ecb596fCc5c840DA35CbeCA175580db50ac1b#code"
}
]
},
"risks": []
}
+1 -1
{
"baseTimestamp": 1791458506,
"baseTimestamp": 1791789284,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "d2fea842",
"date": "Mon, 12 Oct 2026 07:17:01 GMT",
"timestamp": 1791789284,
"description": "Gateway coprocessors expanded from one to five, and their majority threshold rose to three. ACL updates now need three responses.",
"isHighSeverity": true,
"changeCount": 28,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\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+++ description: Minimum number of matching coprocessor messages required before an ACL update reaches consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may update the gateway ACL mirror once enough coprocessors agree.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] {\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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n+++ description: Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor signer addresses configured in GatewayConfig. Their EIP-712 signatures determine whether encrypted input proofs reach consensus.\n+++ severity: HIGH\n values.gatewayCoprocessorSigners.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit signed verification responses and rejection responses.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] {\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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own.\n+++ description: Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\n+++ severity: HIGH\n values.gatewayCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses configured in GatewayConfig. These accounts may submit ciphertext material commitments.\n+++ severity: HIGH\n values.gatewayCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_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. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.\n+++ description: Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates are applied live without pausing InputVerification. The threshold is inert while a priority coprocessor is set (see getPriorityCoprocessorTxSender).\n+++ severity: HIGH\n values.getCoprocessorMajorityThreshold:\n- 1\n+ 3\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor signer addresses registered for this gateway. These sign encrypted input proof responses accepted by InputVerification.\n+++ severity: HIGH\n values.getCoprocessorSigners.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.1:\n+ \"zama:0x679953d556e71F62673F38EE4775d6E7CCb23E64\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.2:\n+ \"zama:0xF6ee37de6bDaB31597E90ED70448B92073cD9634\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.3:\n+ \"zama:0x2e809E897AA8046Ff6e936502b6275F0B8993456\"\n+++ description: Coprocessor transaction-sender addresses registered for this gateway. These accounts submit input-verification, ACL, and ciphertext-material consensus messages.\n+++ severity: HIGH\n values.getCoprocessorTxSenders.4:\n+ \"zama:0x68EDabe2F16CcC37cB2Bb05F1D1EDad3e1Eecbd7\"\n }\n```"
}
]
},
{
"id": "5931caeb",
"date": "Thu, 08 Oct 2026 11:23:05 GMT",
"timestamp": 1791458506,
"description": "Upgraded:\n\n- Gateway contracts introduce a priority coprocessor mode, where a single registered coprocessor can ignore the majority threshold and finalize input-proof verification and rejection, and ciphertext commits on its own (GatewayConfig: https://disco.l2beat.com/diff/zama:0x1950aD98e834f6c07553365196d4CddeD179c536/zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C, InputVerification: https://disco.l2beat.com/diff/zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821/zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8, CiphertextCommits: https://disco.l2beat.com/diff/zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622/zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948). This mode effectively removes coprocessor decentralization. Zama coprocessor is also set as the priority coprocessor.\n- FHEVMExecutor has new validity checks (https://disco.l2beat.com/diff/eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5/eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B).",
"isHighSeverity": true,
"changeCount": 51,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract FHEVMExecutor (eth:0xD82385dADa1ae3E969447f20A3164F6213100e75) [zama/ZamaFHEVMExecutor_v0_5_0] {\n +++ description: FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle.\n template:\n- \"zama/ZamaFHEVMExecutor_v0_4_0\"\n+ \"zama/ZamaFHEVMExecutor_v0_5_0\"\n sourceHashes.1:\n- \"0x8521799e0a57218bcbd587c2f46222a266bbcbe2f27780cc0bf6ed66eb9cda1f\"\n+ \"0x270ee2b9f564ae13a2f925f057cc5baca30e031fab0362ab7ce086bdd2cd1a01\"\n description:\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+ \"FHEVM executor that accepts encrypted operation requests, accounts for computation usage, and stores ciphertext handles for operation results. v0.5.0 rejects plaintext scalar operands and trivial-encryption inputs that do not fit their FHE type, checks division by zero in the shared binary-operation path, and adds a checkHandleType view that asserts the type of an initialized handle.\"\n values.$implementation:\n- \"eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5\"\n+ \"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B\"\n values.$pastUpgrades.5:\n+ [\"2026-10-05T16:11:11.000Z\",\"0x63594740e6849980ffeecf14392b8b7f3e1e382c2e1ea023eb7a3df345f61328\",[\"eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.getVersion:\n- \"FHEVMExecutor v0.4.0\"\n+ \"FHEVMExecutor v0.5.0\"\n implementationNames.eth:0xf444B2B5e45cD07F1E735122F53A2d70A8c81dB5:\n- \"FHEVMExecutor\"\n implementationNames.eth:0x0675c7BFA34aF170C49e6590A2cBf845c3029d7B:\n+ \"FHEVMExecutor\"\n }\n```\n\n```diff\n EOA (zama:0x373E36A8684A3344E177C5894179845Cbe57AE44) {\n +++ description: None\n receivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287\",\"description\":\"finalize encrypted input proof verification or rejection in InputVerification alone while priority mode is active.\",\"role\":\".gatewayPriorityCoprocessorTxSender\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F\",\"description\":\"commit ciphertext and SNS ciphertext digests to CiphertextCommits alone while priority mode is active.\",\"role\":\".gatewayPriorityCoprocessorTxSender\"}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"zama:0xDE537Be194777A56f8B19d14079E6a78249390ab\",\"description\":\"finalize coprocessor consensus alone for encrypted input proofs and ciphertext material commitments while priority mode is active.\",\"role\":\".getPriorityCoprocessorTxSender\"}\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.4.description:\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+ \"create KMS contexts that immediately become current, destroy historical KMS contexts, update thresholds of any live context, manage coprocessors, custodians and host chains, set or remove the priority coprocessor that alone finalizes coprocessor consensus, transfer ownership, and unpause gateway workflow contracts.\"\n }\n```\n\n```diff\n contract InputVerification (zama:0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287) [zama/InputVerification_v0_5_0] {\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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\n template:\n- \"zama/InputVerification\"\n+ \"zama/InputVerification_v0_5_0\"\n sourceHashes.1:\n- \"0x58bb055397e294a46ebccbc53c94bb2494bf05acd7ad77f2fb7cc46b3ef1eb92\"\n+ \"0x5018850c43e4cdb57f9d66bfa3b13efd5321f0c3d39a78259aab0c007663a1ef\"\n description:\n- \"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+ \"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single response finalizes verification or rejection and the attestation carries only its signature. Ethereum InputVerifier verifies attestations against this contract's EIP-712 domain.\"\n values.$implementation:\n- \"zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821\"\n+ \"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8\"\n values.$pastUpgrades.4:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"InputVerification v0.4.0\"\n+ \"InputVerification v0.5.0\"\n+++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor finalizes encrypted input proof verification and rejection on its own and other coprocessor responses cannot finalize.\n+++ severity: HIGH\n values.gatewayPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.gatewayCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected.\"\n+ \"Minimum number of matching coprocessor responses required for an encrypted input proof to be verified or rejected. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\"\n fieldMeta.gatewayPriorityCoprocessorTxSender:\n+ {\"severity\":\"HIGH\",\"description\":\"Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor finalizes encrypted input proof verification and rejection on its own and other coprocessor responses cannot finalize.\",\"type\":\"PERMISSION\"}\n implementationNames.zama:0xf9f0F5ef8301CF1573EBe0F45E13A4CabB621821:\n- \"InputVerification\"\n implementationNames.zama:0xa9A3eA1cdD078a79bB31c3a284a4abA80bd0E8d8:\n+ \"InputVerification\"\n }\n```\n\n```diff\n contract CiphertextCommits (zama:0xd82cF70FC102028cd01acB87D0E107780ae4F41F) [zama/CiphertextCommits_v0_5_0] {\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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own.\n template:\n- \"zama/CiphertextCommits\"\n+ \"zama/CiphertextCommits_v0_5_0\"\n sourceHashes.1:\n- \"0xa3aa22a184258ca16a5d83ce495ae0d307d4c5ec9fda8a7622d4f95728f4af03\"\n+ \"0x2b3db0e0d5ff22923e545ffb64992573f75c3b020179bd81534fb16c054dfa7c\"\n description:\n- \"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+ \"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. Since v0.5.0, if GatewayConfig designates a priority coprocessor, that coprocessor's single submission commits the material on its own.\"\n values.$implementation:\n- \"zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622\"\n+ \"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948\"\n values.$pastUpgrades.4:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.getVersion:\n- \"CiphertextCommits v0.4.0\"\n+ \"CiphertextCommits v0.5.0\"\n+++ description: Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor commits ciphertext material on its own and other coprocessor submissions cannot finalize.\n+++ severity: HIGH\n values.gatewayPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.gatewayCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor submissions required before ciphertext material is committed.\"\n+ \"Minimum number of matching coprocessor submissions required before ciphertext material is committed. Inert while a priority coprocessor is set in GatewayConfig (see gatewayPriorityCoprocessorTxSender).\"\n fieldMeta.gatewayPriorityCoprocessorTxSender:\n+ {\"severity\":\"HIGH\",\"description\":\"Priority coprocessor transaction sender configured in GatewayConfig, or zero when disabled. While set, this single coprocessor commits ciphertext material on its own and other coprocessor submissions cannot finalize.\",\"type\":\"PERMISSION\"}\n implementationNames.zama:0xB373Ae42736E3C266D4A5D090c00c7f0Bda06622:\n- \"CiphertextCommits\"\n implementationNames.zama:0x81a6CBD6B1bb0296BfFd38AD8584918640F35948:\n+ \"CiphertextCommits\"\n }\n```\n\n```diff\n contract GatewayConfig (zama:0xDE537Be194777A56f8B19d14079E6a78249390ab) [zama/GatewayConfig_v0_7_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. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.\n template:\n- \"zama/GatewayConfig_v0_6_0\"\n+ \"zama/GatewayConfig_v0_7_0\"\n sourceHashes.1:\n- \"0xe903576aaecdd97c5036c6bc029149a11b44484c78d9c6b0d802a882d4744597\"\n+ \"0x26ff42c37647db207e8c9fa6bbc7ff8e6a15f782d4f85480a5fe711b95f25894\"\n description:\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+ \"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. Since v0.7.0 the owner can designate a priority coprocessor transaction sender whose single response finalizes coprocessor consensus in InputVerification and CiphertextCommits, making the coprocessor majority threshold inert, and coprocessor set and threshold updates are applied live without pausing InputVerification.\"\n values.$implementation:\n- \"zama:0x1950aD98e834f6c07553365196d4CddeD179c536\"\n+ \"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C\"\n values.$pastUpgrades.5:\n+ [\"2026-10-08T10:05:10.000Z\",\"0x2dc9ffacebc169a90ee746b5818b83d470bf7dbc5855c1ae05268b76caf604aa\",[\"zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.getVersion:\n- \"GatewayConfig v0.6.0\"\n+ \"GatewayConfig v0.7.0\"\n+++ description: Priority coprocessor transaction sender, or zero when priority mode is disabled. While set, a single response from this registered coprocessor finalizes encrypted input proof verification and rejection in InputVerification and ciphertext material commitments in CiphertextCommits; the coprocessor majority threshold is inert and other coprocessors cannot finalize. The owner can set or remove it live, and updateCoprocessors cannot drop the active priority coprocessor or rotate its signer.\n+++ severity: HIGH\n values.getPriorityCoprocessorTxSender:\n+ \"zama:0x373E36A8684A3344E177C5894179845Cbe57AE44\"\n fieldMeta.owner.description:\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+ \"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), sets or removes the priority coprocessor, transfers ownership, and unpauses gateway contracts. A newly created context becomes current immediately; older contexts remain selectable by Decryption requests until destroyed. Coprocessor set, threshold and priority updates are applied live without pausing InputVerification.\"\n fieldMeta.inputVerification.description:\n- \"InputVerification workflow contract paused and unpaused by GatewayConfig. Coprocessor set and threshold updates require this contract to be paused first.\"\n+ \"InputVerification workflow contract paused and unpaused by GatewayConfig. Since v0.7.0 coprocessor set, threshold and priority coprocessor updates are applied live without pausing this contract first.\"\n fieldMeta.getCoprocessorMajorityThreshold.description:\n- \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates require InputVerification to be paused first.\"\n+ \"Minimum number of matching coprocessor messages required for gateway coprocessor consensus. Updates are applied live without pausing InputVerification. The threshold is inert while a priority coprocessor is set (see getPriorityCoprocessorTxSender).\"\n fieldMeta.getPriorityCoprocessorTxSender:\n+ {\"severity\":\"HIGH\",\"description\":\"Priority coprocessor transaction sender, or zero when priority mode is disabled. While set, a single response from this registered coprocessor finalizes encrypted input proof verification and rejection in InputVerification and ciphertext material commitments in CiphertextCommits; the coprocessor majority threshold is inert and other coprocessors cannot finalize. The owner can set or remove it live, and updateCoprocessors cannot drop the active priority coprocessor or rotate its signer.\",\"type\":\"PERMISSION\"}\n implementationNames.zama:0x1950aD98e834f6c07553365196d4CddeD179c536:\n- \"GatewayConfig\"\n implementationNames.zama:0x94209410f6CAa4A8c6Fd7ED4AB67560eD8A3002C:\n+ \"GatewayConfig\"\n }\n```"
}
]
},
{
"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```"
}
]
}
]
+168 -52
+2 -7
{
"redWarning": {
"text": "The canonical bridge escrow was upgraded to an unverified implementation and user funds were moved to [an EOA, then deposited to AAVE](https://etherscan.io/tx/0x0f1ca15e92757dc08e1ac62ef5cfc45a37735c589c655f521f0fd99fb0d5a5d2). They were subsequently withdrawn and [moved to a new contract](https://etherscan.io/tx/0x59304b6420a556c303b4fbcc0608c14d57d06b7aa13366f3851b3be3d6e167ed). Related [tweet by the ZKFair team](https://x.com/ZKFCommunity/status/1910329561105252694)."
"text": "Bridge withdrawals require a signature from one configured address. An administrator can withdraw all escrow funds directly. Validium proofs constrain neither path."
},
"unverifiedContracts": [
"eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861"
]
"unverifiedContracts": []
}
+1 -1
{
"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",
"type": "DA",
"name": "Data Availability Committee",
"description": "There is a Data Availability Committee that provides/attests to data availability",
"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"
}
}
],
"description": "ZKFair is a Validium based on Polygon CDK and Celestia DA.",
"description": "ZKFair uses Polygon CDK for validium state proofs and a separate signature-authorized bridge for asset transfers.",
"links": {
"websites": [
"https://zkfair.io/"
],
"bridges": [
"https://wallet.zkfair.io/"
],
"documentation": [
"https://docs.zkfair.io/"
],
"explorers": [
"https://scan.zkfair.io/"
],
"repositories": [
"https://github.com/ZKFair"
],
"socialMedia": [
"https://twitter.com/ZKFCommunity",
"https://t.me/zkfaircommunity",
"https://mirror.xyz/zkfair.eth"
]
}
}
+2 -2
[
{
"address": "0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"sinceTimestamp": 1744292087,
"tokens": "*",
"contract": {
"isVerified": false,
"isVerified": true,
"address": "eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"sinceTimestamp": 1702879283,
"tokens": "*",
"contract": {
"isVerified": false,
"isVerified": true,
"address": "eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702879283,
"transactionHash": "0x22ef364422913d82a57f2fb0b440655ced0178c3549491490edff4663389f511",
"implementations": [
"eth:0xEb80283EBc508CF6AaC5E054118954a2BD7fA006"
]
},
{
"timestamp": 1743053459,
"transactionHash": "0xca7c847dde27f60d98b07ef29ba9e0a677f28dddd980bb20c52f660c0071e768",
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
}
],
"url": "https://etherscan.io/address/0x9cb4706e20A18E59a48ffa7616d700A3891e1861#code"
},
"chain": "ethereum",
"includeInTotal": true,
"untilTimestamp": 1744292087,
"chainId": 1
}
]
+9 -14
{
"self": {
"stateValidation": {
"value": "Validity proofs (SN)",
"description": "SNARKs are succinct zero knowledge proofs that ensure state correctness, but require trusted setup.",
"sentiment": "good",
"orderHint": null,
"permissioned": true
"value": "None",
"description": "Currently the system permits invalid state roots. More details in project overview.",
"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 3/5 that is tasked with protecting and supplying the data.",
"sentiment": "bad",
"orderHint": 0.6
},
"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": -1296000,
"regular": {
"value": "1d",
"sentiment": "warning",
"description": "Even though there is a 1d Timelock for non-emergency upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
}
"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": "Self propose",
"description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state.",
"sentiment": "good"
"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
}
}
}
+40 -7
{
"dataAvailability": [
{
"name": "Data is not stored on chain",
"description": "The transaction data is not recorded on the Ethereum main chain.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the external data becomes unavailable.",
"isCritical": true
}
],
"references": [
{
"title": "ZKFairValidium.sol#L494 - Etherscan source code, sequencedBatches mapping",
"url": "https://etherscan.io/address/0x668965757127549f8755D2eEd10494B06420213b#code#F8#L494"
}
]
}
],
"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": []
"name": "Signature-authorized withdrawal",
"description": "Users depend on the bridge signing address to authorize withdrawals. Anyone can submit its valid signature and proposal to release tokens from the escrow. A validium proof cannot replace the signature.",
"risks": [
{
"category": "Funds can be frozen if",
"text": "the bridge signing address stops authorizing withdrawals or the administration pauses the token bridge."
}
],
"references": [
{
"title": "TokenBridge - executeProposal and executeProposals",
"url": "https://etherscan.io/address/0xB66bbf236CE102A1De692f2A034b9dB245986671#code"
}
]
}
],
"forceTransactions": {
"name": "Users can't force any transaction",
"description": "The mechanism for allowing users to submit their own transactions is currently disabled.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator refuses to include their transactions."
}
],
"references": [
{
"title": "ZKFairValidium.sol#L475 - Etherscan source code, isForceBatchAllowed modifier",
"url": "https://etherscan.io/address/0x668965757127549f8755D2eEd10494B06420213b#code#F8#L475"
}
]
},
"operator": {
"name": "The system has a centralized sequencer",
"description": "Only a trusted sequencer is allowed to submit transaction batches. A mechanism for users to submit their own batches is currently disabled.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
},
{
"category": "Funds can be frozen if",
"text": "the sequencer refuses to include an exit transaction.",
"isCritical": true
}
],
"references": [
{
"title": "ZKFairValidium.sol#L61 - Etherscan source code, onlyTrustedSequencer modifier",
"url": "https://etherscan.io/address/0x668965757127549f8755D2eEd10494B06420213b#code#F8#L461"
}
]
},
"stateValidation": {
"categories": [
{
"title": "No state validation",
"description": "The token bridge accepts an EIP-712 signature recovering to its configured address. It checks no source-chain proof or threshold of distinct signers. A used source-domain nonce prevents replay. The escrow also accepts unrestricted withdrawals instructed by the bridge administration.",
"risks": [
{
"category": "Funds can be stolen if",
"text": "the bridge signing key authorizes an arbitrary token release."
},
{
"category": "Funds can be stolen if",
"text": "the bridge withdrawal authority sends escrow funds to itself."
}
],
"references": [
{
"title": "TokenBridge - verify, executeProposals and adminWithdraw",
"url": "https://etherscan.io/address/0xB66bbf236CE102A1De692f2A034b9dB245986671#code"
},
{
"title": "ERC20Handler - executeProposal and withdraw",
"url": "https://etherscan.io/address/0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e#code"
}
]
},
{
"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": [],
"description": "ZKFairValidium verifies proofs of state transitions using an Fflonk verifier. Its verified state and exit roots do not authorize releases from the current token escrow.",
"references": [
{
"title": "ZKFairValidium.sol#L758 - Etherscan source code, _verifyAndRewardBatches function",
"url": "https://etherscan.io/address/0x668965757127549f8755D2eEd10494B06420213b#code#F8#L758"
}
]
}
]
},
"warning": "The forced transaction mechanism is currently disabled. The project claims to use CelestiaDA but smart contracts on L1 use DAC. Arbitrary messaging passing is removed from the bridge."
"warning": "Forced transactions are disabled. The validium contracts use a data availability committee, and the token bridge uses separate signature validation."
}
+46 -1
{
"ethereum": {
"actors": [
{
"id": "Bridge signing address",
"name": "Bridge signing address",
"accounts": [
{
"address": "eth:0xb2A240c6cEac75176d99287961F05ccb8DB39a0e",
"type": "EOA",
"isVerified": true,
"name": "0xb2A2…9a0e",
"url": "https://etherscan.io/address/0xb2A240c6cEac75176d99287961F05ccb8DB39a0e"
}
],
"description": "Its ECDSA signature can authorize arbitrary releases from the current token escrow. The contract enforces no threshold of distinct signers.",
"chain": "ethereum"
},
{
"id": "Bridge permissions administrator",
"name": "Bridge permissions administrator",
"accounts": [
{
"address": "eth:0xFA12a0567fa25fB45405Efd3786b565941E3E84b",
"type": "EOA",
"isVerified": true,
"name": "0xFA12…E84b",
"url": "https://etherscan.io/address/0xFA12a0567fa25fB45405Efd3786b565941E3E84b"
}
],
"description": "Can replace every per-function bridge authority, including withdrawal and access-control replacement authorities, without delay.",
"chain": "ethereum"
},
{
"id": "Bridge withdrawal authority",
"name": "Bridge withdrawal authority",
"accounts": [
{
"address": "eth:0xcd14BE1959928BB8c160D11817E2BE2129e2F25F",
"type": "Contract",
"isVerified": true,
"name": "0xcd14…F25F",
"url": "https://etherscan.io/address/0xcd14BE1959928BB8c160D11817E2BE2129e2F25F"
}
],
"description": "Can withdraw all escrow funds directly through the token bridge, without a validium proof or bridge signature.",
"chain": "ethereum"
},
{
"id": "Sequencer",
"name": "Sequencer",
"accounts": [
{
"address": "eth:0x9eed06d1566F0cAfdA3df624E2376864cA84Db6c",
"type": "EOA",
"isVerified": true,
"name": "0x9eed…Db6c",
"url": "https://etherscan.io/address/0x9eed06d1566F0cAfdA3df624E2376864cA84Db6c"
}
],
"description": "Its sole purpose and ability is to submit transaction batches. In case they are unavailable users cannot rely on the force batch mechanism because it is currently disabled.",
"chain": "ethereum"
},
{
"id": "Proposer",
"name": "Proposer",
"accounts": [
{
"address": "eth:0xd6888c41EeAcc94f4A1CEe7A99E1557aa41FA027",
"type": "EOA",
"isVerified": true,
"name": "0xd688…A027",
"url": "https://etherscan.io/address/0xd6888c41EeAcc94f4A1CEe7A99E1557aa41FA027"
}
],
"description": "The trusted proposer (called Aggregator) provides the ZKFairValidium contract with ZK proofs of the new system state. In case they are unavailable a mechanism for users to submit proofs on their own exists, but is behind a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state.",
"chain": "ethereum"
},
{
"id": "ZKFairAdmin",
"name": "ZKFairAdmin",
"description": "A Multisig with 3/4 threshold. \nAdmin of the ZKFairValidium, can set core system parameters like timeouts, sequencer and aggregator as well as deactivate emergency state.",
"accounts": [
{
"address": "eth:0x0110B1B231aA3b96a94c900eb3056297526AB725",
"type": "Contract",
"isVerified": true,
"name": "0x0110…B725",
"url": "https://etherscan.io/address/0x0110B1B231aA3b96a94c900eb3056297526AB725"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x39FcAEb9870cB015f2165e93c51f4663AE970953",
"type": "EOA",
"isVerified": true,
"name": "0x39Fc…0953",
"url": "https://etherscan.io/address/0x39FcAEb9870cB015f2165e93c51f4663AE970953"
},
{
"address": "eth:0x3226ECf79dc7007063599A334832d015B48aBDBc",
"type": "EOA",
"isVerified": true,
"name": "0x3226…BDBc",
"url": "https://etherscan.io/address/0x3226ECf79dc7007063599A334832d015B48aBDBc"
},
{
"address": "eth:0x4dba6F06597Ea29A330C06806FA284610c810295",
"type": "EOA",
"isVerified": true,
"name": "0x4dba…0295",
"url": "https://etherscan.io/address/0x4dba6F06597Ea29A330C06806FA284610c810295"
},
{
"address": "eth:0xe1229a2716D19eC9aF74017418Fc9E165b80c7aF",
"type": "EOA",
"isVerified": true,
"name": "0xe122…c7aF",
"url": "https://etherscan.io/address/0xe1229a2716D19eC9aF74017418Fc9E165b80c7aF"
}
]
},
{
"id": "ZKFairOwner",
"name": "ZKFairOwner",
"description": "A Multisig with 3/4 threshold. \nThe ZkFair Owner is a multisig that can be used to trigger the emergency state which pauses bridge functionality, restricts advancing system state and removes the upgradeability delay.",
"description": "A Multisig with 3/4 threshold. \nThe ZkFair Owner is a multisig that can be used to trigger the emergency state which restricts advancing system state and removes the upgradeability delay.",
"accounts": [
{
"address": "eth:0x8933Fa0A97f39cd38f56b1887d5cc56cF04F3A88",
"type": "Contract",
"isVerified": true,
"name": "0x8933…3A88",
"url": "https://etherscan.io/address/0x8933Fa0A97f39cd38f56b1887d5cc56cF04F3A88"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9fAe81C21be8D1Ad91c3617A7b0140dfe0DCe6C7",
"type": "EOA",
"isVerified": true,
"name": "0x9fAe…e6C7",
"url": "https://etherscan.io/address/0x9fAe81C21be8D1Ad91c3617A7b0140dfe0DCe6C7"
},
{
"address": "eth:0x540C913ad8b197152EB041bC56f9c6Ab314D25Ba",
"type": "EOA",
"isVerified": true,
"name": "0x540C…25Ba",
"url": "https://etherscan.io/address/0x540C913ad8b197152EB041bC56f9c6Ab314D25Ba"
},
{
"address": "eth:0xcf6226d0264496abB69eF8BC1DF366c9E00f5b87",
"type": "EOA",
"isVerified": true,
"name": "0xcf62…5b87",
"url": "https://etherscan.io/address/0xcf6226d0264496abB69eF8BC1DF366c9E00f5b87"
},
{
"address": "eth:0x4B7f09f4D658638d81Bb2023674B80a9Dd7e9976",
"type": "EOA",
"isVerified": true,
"name": "0x4B7f…9976",
"url": "https://etherscan.io/address/0x4B7f09f4D658638d81Bb2023674B80a9Dd7e9976"
}
]
},
{
"id": "DAC members",
"name": "DAC members",
"accounts": [
{
"address": "eth:0x033A75B6B0fc26eDf60e99c4172eB5f87E733ca2",
"type": "EOA",
"isVerified": true,
"name": "0x033A…3ca2",
"url": "https://etherscan.io/address/0x033A75B6B0fc26eDf60e99c4172eB5f87E733ca2"
},
{
"address": "eth:0x061D273bEf947BD0ef2B828526e710eEa0f297ae",
"type": "EOA",
"isVerified": true,
"name": "0x061D…97ae",
"url": "https://etherscan.io/address/0x061D273bEf947BD0ef2B828526e710eEa0f297ae"
},
{
"address": "eth:0x9231622437bD57349cC9a15CDEc5383627DEbA17",
"type": "EOA",
"isVerified": true,
"name": "0x9231…bA17",
"url": "https://etherscan.io/address/0x9231622437bD57349cC9a15CDEc5383627DEbA17"
},
{
"address": "eth:0x9d8616545C9941138832EebC58Cb498E0ef21a13",
"type": "EOA",
"isVerified": true,
"name": "0x9d86…1a13",
"url": "https://etherscan.io/address/0x9d8616545C9941138832EebC58Cb498E0ef21a13"
},
{
"address": "eth:0xFe1da7CAd939805d4A889822357c348177a5118d",
"type": "EOA",
"isVerified": true,
"name": "0xFe1d…118d",
"url": "https://etherscan.io/address/0xFe1da7CAd939805d4A889822357c348177a5118d"
}
],
"description": "Members of the Data Availability Committee. The setup is equivalent to a 3/5 multisig.",
"chain": "ethereum"
},
{
"id": "DAC Owner",
"name": "DAC Owner",
"accounts": [
{
"address": "eth:0xa57c2B747193fe3F9CC8bea89103B7d76B8A0c70",
"type": "EOA",
"isVerified": true,
"name": "0xa57c…0c70",
"url": "https://etherscan.io/address/0xa57c2B747193fe3F9CC8bea89103B7d76B8A0c70"
}
],
"description": "The owner of the Data Availability Committee, can update the member set at any time.",
"chain": "ethereum"
},
{
"id": "TimelockExecutor",
"name": "TimelockExecutor",
"accounts": [
{
"address": "eth:0x75575Dc1adD71eA794A52D83f836a13F7891C527",
"type": "EOA",
"isVerified": true,
"name": "0x7557…C527",
"url": "https://etherscan.io/address/0x75575Dc1adD71eA794A52D83f836a13F7891C527"
},
{
"address": "eth:0x9412eCbEE1e8dd25F347D6d8002f62eF540ddDAa",
"type": "EOA",
"isVerified": true,
"name": "0x9412…dDAa",
"url": "https://etherscan.io/address/0x9412eCbEE1e8dd25F347D6d8002f62eF540ddDAa"
}
],
"description": "Controls the upgrades to the ZKFairValidiumDAC and ZKFairValidium contracts through the Timelock. ",
"chain": "ethereum"
}
]
}
}
+53 -19
{
"addresses": {
"ethereum": [
{
"name": "ZKFairValidium",
"isVerified": true,
"address": "eth:0x1CbC08bf0D48b18F9f97796c61352b192d1850A5",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0x668965757127549f8755D2eEd10494B06420213b"
]
},
"chain": "ethereum",
"references": [
{
"title": "State injections - stateRoot and exitRoot are part of the validity proof input.",
"url": "https://etherscan.io/address/0x668965757127549f8755D2eEd10494B06420213b#code#F8#L809"
}
],
"pastUpgrades": [
{
"timestamp": 1702879355,
"transactionHash": "0xf231cd4ea460fef7127452f1f2e380080338d99b581b1fbdb69c02b3eb43c396",
"implementations": [
"eth:0x668965757127549f8755D2eEd10494B06420213b"
]
}
],
"description": "The main contract of the Polygon CDK Validium. It defines the rules of the system including core system parameters, permissioned actors as well as emergency procedures. The emergency state can be activated either by the ZkFair Owner, by proving a soundness error or by presenting a sequenced batch that has not been aggregated before a 7d timeout. This contract receives transaction roots, L2 state roots as well as ZK proofs. It also holds the address of ZKFairValidiumDAC.",
"upgradableBy": [
{
"name": "ZKFairAdmin",
"delay": "None"
"delay": "1d"
}
],
"upgradeConsiderations": "Even though there is a 1d Timelock for non-emergency upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d.",
"upgradeConsiderations": "Non-emergency validium upgrades require a 1d timelock. Emergency upgrades bypass that delay. The token bridge has separate administrative controls.",
"url": "https://etherscan.io/address/0x1CbC08bf0D48b18F9f97796c61352b192d1850A5#code"
},
{
"name": "Bridge",
"isVerified": false,
"isVerified": true,
"address": "eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The current escrow contract for user funds.",
"description": "ERC20Handler escrow holding ERC20 tokens and ETH. Only TokenBridge can release or withdraw funds. Validium proofs do not constrain these releases.",
"url": "https://etherscan.io/address/0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e#code"
},
{
"name": "TokenBridge",
"isVerified": true,
"address": "eth:0xB66bbf236CE102A1De692f2A034b9dB245986671",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0xB66bbf236CE102A1De692f2A034b9dB245986671#code"
},
{
"name": "AccessControlSegregator",
"isVerified": true,
"address": "eth:0x8E1b1B3Be901eF8efACe4767097a75976Ce7d512",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0x8E1b1B3Be901eF8efACe4767097a75976Ce7d512#code"
},
{
"name": "FeeHandlerRouter",
"isVerified": true,
"address": "eth:0x899b97352c91cC21384944350Ba8bf00fCAbCd53",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0x899b97352c91cC21384944350Ba8bf00fCAbCd53#code"
},
{
"name": "OldBridge",
"isVerified": false,
"isVerified": true,
"address": "eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702879283,
"transactionHash": "0x22ef364422913d82a57f2fb0b440655ced0178c3549491490edff4663389f511",
"implementations": [
"eth:0xEb80283EBc508CF6AaC5E054118954a2BD7fA006"
]
},
{
"timestamp": 1743053459,
"transactionHash": "0xca7c847dde27f60d98b07ef29ba9e0a677f28dddd980bb20c52f660c0071e768",
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
}
],
"description": "Deprecated! Was the escrow contract for user funds. It is mirrored on the L2 side and can be used to transfer ERC20 assets. To transfer funds a user initiated transaction on both sides is required.",
"upgradableBy": [
{
"name": "ZKFairAdmin",
"delay": "None"
"delay": "1d"
}
],
"upgradeConsiderations": "Even though there is a 1d Timelock for non-emergency upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d.",
"upgradeConsiderations": "Non-emergency validium upgrades require a 1d timelock. Emergency upgrades bypass that delay. The token bridge has separate administrative controls.",
"url": "https://etherscan.io/address/0x9cb4706e20A18E59a48ffa7616d700A3891e1861#code"
},
{
"name": "GlobalExitRoot",
"isVerified": true,
"address": "eth:0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0xC4CD3D0b31904969a397A98AcE8bDF2A94ba8615"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702879331,
"transactionHash": "0x4e28f8a72e2c30b692920184f37ffd953bfdcc89b907a1284fbb986aad9bc686",
"implementations": [
"eth:0xC4CD3D0b31904969a397A98AcE8bDF2A94ba8615"
]
}
],
"description": "Synchronizes deposit and withdraw merkle trees across L1 and L2. The global root from this contract is injected into the L2 contract.",
"upgradableBy": [
{
"name": "ZKFairAdmin",
"delay": "None"
"delay": "1d"
}
],
"upgradeConsiderations": "Even though there is a 1d Timelock for non-emergency upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d.",
"upgradeConsiderations": "Non-emergency validium upgrades require a 1d timelock. Emergency upgrades bypass that delay. The token bridge has separate administrative controls.",
"url": "https://etherscan.io/address/0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b#code"
},
{
"name": "FflonkVerifier",
"isVerified": true,
"address": "eth:0x769E285d2120472c3400A09684B82A842012F46d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "An autogenerated contract that verifies ZK proofs in the ZKFairValidium system.",
"url": "https://etherscan.io/address/0x769E285d2120472c3400A09684B82A842012F46d#code"
},
{
"name": "ZKFairValidiumDAC",
"isVerified": true,
"address": "eth:0x997CfB0838544f68E59f877EDc905001456F125b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0x63150fA72c1c9fF8Fe4438f8355927D3415b0FDc"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702879319,
"transactionHash": "0xc32e3c87473e1564ad91461787c42867d6793e330617ca806ea1357c40fc4cba",
"implementations": [
"eth:0x63150fA72c1c9fF8Fe4438f8355927D3415b0FDc"
]
}
],
"description": "Committee attesting that data for a given dataRoot has been published. The DAC Owner can update the member set at any time.",
"upgradableBy": [
{
"name": "ZKFairAdmin",
"delay": "None"
"delay": "1d"
}
],
"upgradeConsiderations": "Even though there is a 1d Timelock for non-emergency upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d.",
"upgradeConsiderations": "Non-emergency validium upgrades require a 1d timelock. Emergency upgrades bypass that delay. The token bridge has separate administrative controls.",
"url": "https://etherscan.io/address/0x997CfB0838544f68E59f877EDc905001456F125b#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0x52882c7564fAca480549145fAc4d0b09eD0D9c17",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract upgrades have to go through a 1d timelock unless the Emergency State is activated. It is controlled by the TimelockExecutor.",
"url": "https://etherscan.io/address/0x52882c7564fAca480549145fAc4d0b09eD0D9c17#code"
}
]
},
"escrows": [
{
"address": "0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"sinceTimestamp": 1744292087,
"tokens": "*",
"contract": {
"isVerified": false,
"isVerified": true,
"address": "eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"url": "https://etherscan.io/address/0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"sinceTimestamp": 1702879283,
"tokens": "*",
"contract": {
"isVerified": false,
"isVerified": true,
"address": "eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3"
],
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1702879283,
"transactionHash": "0x22ef364422913d82a57f2fb0b440655ced0178c3549491490edff4663389f511",
"implementations": [
"eth:0xEb80283EBc508CF6AaC5E054118954a2BD7fA006"
]
},
{
"timestamp": 1743053459,
"transactionHash": "0xca7c847dde27f60d98b07ef29ba9e0a677f28dddd980bb20c52f660c0071e768",
"implementations": [
"eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46"
]
}
],
"url": "https://etherscan.io/address/0x9cb4706e20A18E59a48ffa7616d700A3891e1861#code"
},
"chain": "ethereum",
"includeInTotal": true,
"untilTimestamp": 1744292087,
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 1d delay on code upgrades."
},
{
"category": "Funds can be stolen if",
"text": "the source code of unverified contracts contains malicious code.",
"isCritical": true
"text": "the bridge administration changes withdrawal permissions or asset routes without delay."
}
]
}
+1 -1
{
"baseTimestamp": 1745306051,
"baseTimestamp": 1791789247,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "e82e4031",
"date": "Mon, 12 Oct 2026 08:23:53 GMT",
"timestamp": 1791789247,
"description": "New source verification confirms that the current escrow trusts one ECDSA signing address. Separate administrators can withdraw funds without bridge signatures or validium proofs.",
"isHighSeverity": false,
"changeCount": 30,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract OldBridge (eth:0x9cb4706e20A18E59a48ffa7616d700A3891e1861) [N/A] {\n +++ description: None\n unverified:\n- true\n values.admin:\n+ \"eth:0xcd14BE1959928BB8c160D11817E2BE2129e2F25F\"\n values.bridgeFee:\n+ 2500000000000000\n values.feeAddress:\n+ \"eth:0xfED4D68744115A50ed22a6DA32DBA42eCaB5CF8D\"\n values.gasTokenAddress:\n+ \"eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"\n values.gasTokenDecimalDiffFactor:\n+ 1000000000000\n values.gasTokenMetadata:\n+ \"0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005457468657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034554480000000000000000000000000000000000000000000000000000000000\"\n values.globalExitRootManager:\n+ \"eth:0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b\"\n values.isEmergencyState:\n+ false\n values.networkID:\n+ 0\n values.polygonZkEVMaddress:\n+ \"eth:0x1CbC08bf0D48b18F9f97796c61352b192d1850A5\"\n implementationNames.eth:0x58371687dc997A7A11154bBcA72aEb15e4Db8F46:\n- \"\"\n+ \"PolygonZkEVMBridge\"\n sourceHashes:\n+ [\"0x3f8d1d2461c05779ca5de685fd391f6a4c07e91953373effd46d11f72b025dc3\",\"0x9435648db8821f142e34edf2f081caac9606cb70cdc1186184324c5db48ecf78\"]\n }\n```\n\n```diff\n contract Bridge (eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e) [chainsafe/ERC20Handler] {\n +++ description: Escrow holding ERC20 tokens and ETH for the configured bridge. Only that bridge can execute releases, withdraw funds or configure token mappings. Its own admin can set deposit limits.\n unverified:\n- true\n+++ description: Bridge authorized to release or withdraw all escrow funds and configure token mappings.\n values._bridgeAddress:\n+ \"eth:0xB66bbf236CE102A1De692f2A034b9dB245986671\"\n values.accessControl:\n+ {\"DEFAULT_ADMIN_ROLE\":{\"adminRole\":\"DEFAULT_ADMIN_ROLE\",\"members\":[\"eth:0xFA12a0567fa25fB45405Efd3786b565941E3E84b\"]}}\n values.DEFAULT_ADMIN_ROLE:\n+ \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n values.defaultAdminAC:\n+ [\"eth:0xFA12a0567fa25fB45405Efd3786b565941E3E84b\"]\n values.defaultDecimals:\n+ 18\n values.startTime:\n+ 1742988323\n implementationNames.eth:0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e:\n- \"\"\n+ \"ERC20Handler\"\n template:\n+ \"chainsafe/ERC20Handler\"\n sourceHashes:\n+ [\"0xa697494f19ebcebaa1da9ce4932e84eab588af0f3f92468fc196e40d80f1582a\"]\n description:\n+ \"Escrow holding ERC20 tokens and ETH for the configured bridge. Only that bridge can execute releases, withdraw funds or configure token mappings. Its own admin can set deposit limits.\"\n critical:\n+ {\"sinceTimestamp\":1744292087}\n fieldMeta:\n+ {\"_bridgeAddress\":{\"description\":\"Bridge authorized to release or withdraw all escrow funds and configure token mappings.\"}}\n }\n```\n\n```diff\n+ Status: CREATED\n contract FeeHandlerRouter (eth:0x899b97352c91cC21384944350Ba8bf00fCAbCd53) [chainsafe/FeeHandlerRouter]\n +++ description: Routes bridge deposit fees to a configured fee handler for each token resource.\n```\n\n```diff\n+ Status: CREATED\n contract AccessControlSegregator (eth:0x8E1b1B3Be901eF8efACe4767097a75976Ce7d512) [chainsafe/AccessControlSegregator]\n +++ description: Stores one authorized address per bridge function selector. The authority for grantAccess can replace any function's authority, including unrestricted escrow withdrawal and access-control replacement.\n```\n\n```diff\n+ Status: CREATED\n contract TokenBridge (eth:0xB66bbf236CE102A1De692f2A034b9dB245986671) [chainsafe/Bridge]\n +++ description: Routes token deposits and releases to asset handlers. Releases require an EIP-712 signature recovering to the configured signing address. The contract checks no source-chain proof or signer threshold. Per-function authorities can withdraw escrow funds, remap handlers and replace access control.\n```\n\n```diff\n+ Status: CREATED\n contract BridgeAdminMultiSig (eth:0xcd14BE1959928BB8c160D11817E2BE2129e2F25F) [GnosisSafe]\n +++ description: None\n```"
}
]
},
{
"id": "2a17f2d5",
"date": "Mon, 14 Jul 2025 12:46:46 GMT",
"timestamp": 1752497206,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract ZKFairAdmin (0x0110B1B231aA3b96a94c900eb3056297526AB725)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZKFairValidium (0x1CbC08bf0D48b18F9f97796c61352b192d1850A5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Timelock (0x52882c7564fAca480549145fAc4d0b09eD0D9c17)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GlobalExitRoot (0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FflonkVerifier (0x769E285d2120472c3400A09684B82A842012F46d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZKFairOwner (0x8933Fa0A97f39cd38f56b1887d5cc56cF04F3A88)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ZKFairValidiumDAC (0x997CfB0838544f68E59f877EDc905001456F125b)\n +++ description: Committee attesting that data for a given dataRoot has been published. The DAC Owner can update the member set at any time.\n```\n\n```diff\n+ Status: CREATED\n contract OldBridge (0x9cb4706e20A18E59a48ffa7616d700A3891e1861)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3)\n +++ description: None\n```"
}
]
},
{
"id": "74c12c4f",
"date": "Tue, 22 Apr 2025 07:14:25 GMT",
"timestamp": 1745306065,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Bridge (0xb10f60B4Ea978CA02aFBAC57fa84907e8439766e)\n +++ description: None\n```"
}
]
},
{
"id": "a4496754",
"date": "Mon, 31 Mar 2025 11:42:43 GMT",
"timestamp": 1743421363,
"description": "Bridge upgraded to an unverified implementation. Funds moved to an EOA and deposited to DeFi from there.",
"isHighSeverity": true,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Timelock (0x52882c7564fAca480549145fAc4d0b09eD0D9c17) {\n +++ description: None\n values.accessControl.PROPOSER_ROLE.members.1:\n+ \"0x9412eCbEE1e8dd25F347D6d8002f62eF540ddDAa\"\n values.accessControl.EXECUTOR_ROLE.members.1:\n+ \"0x9412eCbEE1e8dd25F347D6d8002f62eF540ddDAa\"\n }\n```\n\n```diff\n contract Bridge (0x9cb4706e20A18E59a48ffa7616d700A3891e1861) {\n +++ description: None\n sourceHashes:\n- [\"0x3f8d1d2461c05779ca5de685fd391f6a4c07e91953373effd46d11f72b025dc3\",\"0x63f00c3d965d6858168ed7d73fd0c413524877b196c4c5e3cf8fbc6ba40846e8\"]\n values.$implementation:\n- \"0xEb80283EBc508CF6AaC5E054118954a2BD7fA006\"\n+ \"0x58371687dc997A7A11154bBcA72aEb15e4Db8F46\"\n values.$pastUpgrades.1:\n+ [\"2023-12-18T06:01:23.000Z\",\"0x22ef364422913d82a57f2fb0b440655ced0178c3549491490edff4663389f511\",[\"0xEb80283EBc508CF6AaC5E054118954a2BD7fA006\"]]\n values.$pastUpgrades.0.2:\n- \"0x22ef364422913d82a57f2fb0b440655ced0178c3549491490edff4663389f511\"\n+ \"0xca7c847dde27f60d98b07ef29ba9e0a677f28dddd980bb20c52f660c0071e768\"\n values.$pastUpgrades.0.1:\n- \"2023-12-18T06:01:23.000Z\"\n+ [\"0x58371687dc997A7A11154bBcA72aEb15e4Db8F46\"]\n values.$pastUpgrades.0.0:\n- [\"0xEb80283EBc508CF6AaC5E054118954a2BD7fA006\"]\n+ \"2025-03-27T05:30:59.000Z\"\n values.$upgradeCount:\n- 1\n+ 2\n values.admin:\n- \"0xcd14BE1959928BB8c160D11817E2BE2129e2F25F\"\n values.bridgeFee:\n- 2500000000000000\n values.feeAddress:\n- \"0xfED4D68744115A50ed22a6DA32DBA42eCaB5CF8D\"\n values.gasTokenAddress:\n- \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"\n values.gasTokenDecimalDiffFactor:\n- 1000000000000\n values.gasTokenMetadata:\n- \"0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005457468657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034554480000000000000000000000000000000000000000000000000000000000\"\n values.globalExitRootManager:\n- \"0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b\"\n values.isEmergencyState:\n- false\n values.networkID:\n- 0\n values.polygonZkEVMaddress:\n- \"0x1CbC08bf0D48b18F9f97796c61352b192d1850A5\"\n derivedName:\n- \"PolygonZkEVMBridge\"\n+ \"\"\n unverified:\n+ true\n }\n```\n\n```diff\n- Status: DELETED\n contract BridgeAdminMultiSig (0xcd14BE1959928BB8c160D11817E2BE2129e2F25F)\n +++ description: None\n```"
}
]
},
{
"id": "59f2f33e",
"date": "Mon, 09 Sep 2024 08:19:48 GMT",
"timestamp": 1725869988,
"description": "DAC member URLs have changed (to Tencent). (Onchain addresses stay the same)",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ZKFairValidiumDAC (0x997CfB0838544f68E59f877EDc905001456F125b) {\n +++ description: Committee attesting that data for a given dataRoot has been published. The DAC Owner can update the member set at any time.\n+++ description: URL and address of the DAC member\n values.members.4.0:\n- \"http://ec2-54-219-14-189.us-west-1.compute.amazonaws.com:8444\"\n+ \"http://43.129.158.203:8444\"\n+++ description: URL and address of the DAC member\n values.members.3.0:\n- \"http://ec2-18-144-4-166.us-west-1.compute.amazonaws.com:8444\"\n+ \"http://119.28.1.197:8444\"\n+++ description: URL and address of the DAC member\n values.members.2.0:\n- \"http://ec2-52-53-165-158.us-west-1.compute.amazonaws.com:8444\"\n+ \"http://43.155.22.171:8444\"\n+++ description: URL and address of the DAC member\n values.members.1.0:\n- \"http://ec2-54-153-117-150.us-west-1.compute.amazonaws.com:8444\"\n+ \"http://129.226.185.196:8444\"\n+++ description: URL and address of the DAC member\n values.members.0.0:\n- \"http://ec2-13-57-35-237.us-west-1.compute.amazonaws.com:8444\"\n+ \"http://43.129.159.5:8444\"\n }\n```"
}
]
},
{
"id": "cc7965ce",
"date": "Wed, 24 Apr 2024 15:27:14 GMT",
"timestamp": 1713972434,
"description": "The URLs on amazon aws for all 5 DAC members are changed. Their onchain addresses remain the same.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract DataAvailabilityCommittee (0x997CfB0838544f68E59f877EDc905001456F125b) {\n +++ description: Committee attesting that data for a given dataRoot has been published. The DAC Owner can update the member set at any time.\n+++ description: URL and address of the DAC member\n values.members.4.0:\n- \"http://ec2-18-163-127-148.ap-east-1.compute.amazonaws.com:8444\"\n+ \"http://ec2-54-219-14-189.us-west-1.compute.amazonaws.com:8444\"\n+++ description: URL and address of the DAC member\n values.members.3.0:\n- \"http://ec2-18-167-116-200.ap-east-1.compute.amazonaws.com:8444\"\n+ \"http://ec2-18-144-4-166.us-west-1.compute.amazonaws.com:8444\"\n+++ description: URL and address of the DAC member\n values.members.2.0:\n- \"http://ec2-43-198-25-156.ap-east-1.compute.amazonaws.com:8444\"\n+ \"http://ec2-52-53-165-158.us-west-1.compute.amazonaws.com:8444\"\n+++ description: URL and address of the DAC member\n values.members.1.0:\n- \"http://ec2-18-163-181-171.ap-east-1.compute.amazonaws.com:8444\"\n+ \"http://ec2-54-153-117-150.us-west-1.compute.amazonaws.com:8444\"\n+++ description: URL and address of the DAC member\n values.members.0.0:\n- \"http://ec2-18-166-77-46.ap-east-1.compute.amazonaws.com:8444\"\n+ \"http://ec2-13-57-35-237.us-west-1.compute.amazonaws.com:8444\"\n }\n```"
}
]
},
{
"id": "a4a6c391",
"date": "Fri, 12 Jan 2024 15:03:34 GMT",
"timestamp": 1705071814,
"description": "DataAvailabilityCommittee contract (CDKDataCommittee) became verified, exposing\naddresses of committee members. This committee attests that data for a given\ndataRoot has been published. The DAC Owner can update the member set at any\ntime.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n contract DataAvailabilityCommittee (0x997CfB0838544f68E59f877EDc905001456F125b) {\n unverified:\n- true\n derivedName:\n- \"\"\n+ \"CDKDataCommittee\"\n values:\n+ {\"committeeHash\":\"0xba409e01b8959e09c11202ce45dd3e4ac8aa7e21440e86c1e9dc924369151fca\",\"getAmountOfMembers\":5,\"members\":[[\"http://ec2-18-166-77-46.ap-east-1.compute.amazonaws.com:8444\",\"0x033A75B6B0fc26eDf60e99c4172eB5f87E733ca2\"],[\"http://ec2-18-163-181-171.ap-east-1.compute.amazonaws.com:8444\",\"0x061D273bEf947BD0ef2B828526e710eEa0f297ae\"],[\"http://ec2-43-198-25-156.ap-east-1.compute.amazonaws.com:8444\",\"0x9231622437bD57349cC9a15CDEc5383627DEbA17\"],[\"http://ec2-18-167-116-200.ap-east-1.compute.amazonaws.com:8444\",\"0x9d8616545C9941138832EebC58Cb498E0ef21a13\"],[\"http://ec2-18-163-127-148.ap-east-1.compute.amazonaws.com:8444\",\"0xFe1da7CAd939805d4A889822357c348177a5118d\"]],\"owner\":\"0xa57c2B747193fe3F9CC8bea89103B7d76B8A0c70\",\"requiredAmountOfSignatures\":3}\n }\n```"
}
]
},
{
"id": "26b68159",
"date": "Thu, 21 Dec 2023 14:05:42 GMT",
"timestamp": 1703167542,
"description": "Add initial config for ZKFair.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n+ Status: CREATED\n contract GnosisSafe (0x0110B1B231aA3b96a94c900eb3056297526AB725) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract CDKValidium (0x1CbC08bf0D48b18F9f97796c61352b192d1850A5) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract CDKValidiumTimelock (0x52882c7564fAca480549145fAc4d0b09eD0D9c17) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract (0x6dfAF52259d494C29596F5Eb16573B105693E78f) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract GlobalExitRoot (0x72abD6416Ea2d99ad30C86B90e7409Dc2d1ba40b) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract FflonkVerifier (0x769E285d2120472c3400A09684B82A842012F46d) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0x8933Fa0A97f39cd38f56b1887d5cc56cF04F3A88) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract (0x997CfB0838544f68E59f877EDc905001456F125b) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract Bridge (0x9cb4706e20A18E59a48ffa7616d700A3891e1861) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xb57b9101dEc7dC1635B576fFf71F2f522C970EF3) {\n }\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xcd14BE1959928BB8c160D11817E2BE2129e2F25F) {\n }\n```"
}
]
}
]