de933fa9 (main)
and
24e1b850 (PR)
+26 -16
+25 -15
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x2EDc71E9991A962c7FE172212d1aA9E50480fBb9",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729680467,
"transactionHash": "0x19c7d643ec805bc5785ad2447af0fe01286db18018d08c3e1d2680e96cf5490f",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1729680467,
"transactionHash": "0x19c7d643ec805bc5785ad2447af0fe01286db18018d08c3e1d2680e96cf5490f",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736869259,
"transactionHash": "0x6b99ca6cca224747e1e7475ef027d2d504830f43b946a9a9649ab69e3bb21c83",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742940287,
"transactionHash": "0xe27e320246920e2b0a486e2f09ef847d15e79b1364930ba960f158fa8d05f9ca",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747078811,
"transactionHash": "0xc63fb7bdd8acc5852d262a14f0630fbf0a1a00b48890f389adad34ced6bfd241",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1747400387,
"transactionHash": "0xcaefda7f4c6e29f90b34a0b68817feeb9fac3da2cb66538ea15fbeed434a7201",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751397995,
"transactionHash": "0x5baabf6f89fd91775efbaa3fcf547e344999ed8550560828e6d02511c220b7bc",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755018191,
"transactionHash": "0x6748f394d7dbce205a1a2b85f8d2896ae4d6e68653193498b54ad6d3e18ef194",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761601727,
"transactionHash": "0x1e0981b58494e533e348c55373907e8d29a478dd38d081c3e1f4e0213339008c",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769463923,
"transactionHash": "0x8dacb39adb60b416058d5965b00fc4c83ec955ba60c160b0c766840b08584453",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1771005779,
"transactionHash": "0xa1b9a5968d7a9dd2d0c811f4e381780c2f21cb2628199f65abe9d1621010f3ff",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1785842723,
"transactionHash": "0xb0fa77c3fac001aff58b0cbeef7894fd44b89b3f62a4bd72df9de38072811092",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786221011,
"transactionHash": "0x7b15fc436b4e0afacf42accd854927504dc817cfc752ce1a4fad75b7631d8071",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786883903,
"transactionHash": "0x3039621e033e2274d2efc899e880c6ccf4834e956a2c757c65295526e5fc5204",
"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**: ChainAdmin; ultimately Abstract Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2EDc71E9991A962c7FE172212d1aA9E50480fBb9#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "ChainAdmin",
"isVerified": true,
"address": "eth:0xA1f75f491f630037C4Ccaa2bFA22363CEC05a661",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Abstract Multisig act through it.\n* Roles:\n * **owner**: Abstract Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA1f75f491f630037C4Ccaa2bFA22363CEC05a661#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": "L1VerifierPlonk",
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "L1VerifierFflonk",
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x9B9256E7D5b696F7BD7525F42238Ba3d9BBD9cDA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Abstract Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B9256E7D5b696F7BD7525F42238Ba3d9BBD9cDA#code"
},
{
"name": "DualVerifier",
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"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/0xC47D355402E78b886B628914B3b129F236fEe3cc#code"
"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"
}
],
"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",
"YGG"
],
"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 Abstract and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"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:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c"
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF"
]
}
+1 -1
{
"baseTimestamp": 1786434343,
"baseTimestamp": 1786966176,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+22 -40
+22 -40
{
"creator": "Matter Labs",
"projectsForTvs": [
{
"projectId": "zklinknova",
"sinceTimestamp": 1709217961
},
{
"projectId": "zksync2",
"sinceTimestamp": 1689544800
},
{
"projectId": "abstract",
"sinceTimestamp": 1737932400
},
{
"projectId": "sophon",
"sinceTimestamp": 1734476400
},
{
"projectId": "cronoszkevm",
"sinceTimestamp": 1723672800
},
{
"projectId": "zeronetwork",
"sinceTimestamp": 1731366000
},
{
"projectId": "lens",
"sinceTimestamp": 1743717600
},
{
"projectId": "wonder",
"sinceTimestamp": 1746741600
},
{
"projectId": "zkcandy",
"sinceTimestamp": 1743976800
},
{
"projectId": "grvt",
"sinceTimestamp": 1734649200
},
{
"projectId": "lachain",
"sinceTimestamp": 1747692000
}
],
"proofSystemInfo": "## Description\n\nBoojum is a proving system operating on [EraVM](https://matter-labs.github.io/zksync-era/core/latest/guides/advanced/12_alternative_vm_intro.html) ISA and supporting [zk stack](https://zkstack.io) chains. It includes recursive STARK proving of zkVM execution, as well as the final wrap with [Plonk](https://github.com/matter-labs/franklin-crypto/tree/dev/src/plonk) or [Fflonk](https://github.com/matter-labs/zksync-crypto/blob/main/crates/fflonk/docs/spec.pdf) SNARK proving system. Boojum targets [100 bits of security](https://github.com/matter-labs/era-boojum?tab=readme-ov-file#for-curions-in-benchmarks-only).\n\n## Proof system\n\n### zkVM component\n\n[Boojum](https://github.com/matter-labs/era-boojum/tree/main)'s core is an implementation of the [**Redshift**](https://eprint.iacr.org/2019/1400.pdf) protocol which uses the Plonk IOP with a polynomial commitment scheme based on List Polynomial Commitments (LPCs), which is in turn based on FRI, making the scheme transparent. The scheme makes use of the Goldilocks field, which is much smaller than BN254's field. This part of boojum implements a zkVM for EraVM, which is closely aligned with EVM but has essential differences like 16 registers.\n\n### Recursion circuits\n\nThe protocol makes use of several layers of recursive proof aggregation for 15 types of [circuits](https://github.com/matter-labs/era-zkevm_test_harness/blob/3cd647aa57fc2e1180bab53f7a3b61ec47502a46/circuit_definitions/src/circuit_definitions/recursion_layer/mod.rs#L29). In particular, node and scheduler circuits aggregate zk proofs and compressor and wrapper circuits reduce the final proof size. Further information about the aggregation architecture can be found [**here**](https://github.com/matter-labs/zksync-era/blob/1b61d0797062ab8b0aa2c1e92b23a3a0d8fd2c61/docs/guides/advanced/15_prover_keys.md#circuits).\n\n### Final wrap\n\nThe final proof could either be wrapped into a [Plonk](https://github.com/matter-labs/era-zkevm_test_harness/blob/3cd647aa57fc2e1180bab53f7a3b61ec47502a46/circuit_definitions/src/circuit_definitions/aux_layer/wrapper.rs)+KZG proof, or into [Fflonk](https://github.com/matter-labs/zksync-crypto/tree/main/crates/fflonk)+KZG for cheap verification. The KZG commitment is done over BN254 curve and it uses Aztec Ignition trusted setup ceremony, see [below](#trusted-setups) for more details.",
"techStack": {
"zkVM": [
{
"id": "Boojum",
"type": "STARK",
"name": "Boojum",
"description": "zkVM STARK proving system developed by Matter Labs for proving state transition of ZKsync Era."
},
{
"id": "EraVM",
"type": "ISA",
"name": "EraVM",
"description": "Instruction language for ZKsync Era virtual machine."
},
{
"id": "Goldilocks",
"type": "Field",
"name": "Goldilocks",
"description": "Prime field of order p = 2**64 - 2**32 + 1."
}
],
"finalWrap": [
{
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
{
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
{
"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": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"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": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"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)."
}
],
"verifierHashes": [
{
"hash": "0x34e7f769253b128e4ac6fbf71b3f8471d507c4f93bc50dcf26509ed1bae25122",
"name": "Boojum Fflonk v29.5 verifier",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "eth:0x9f5C39a2790f38542065E7854b90407371923375"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0xcde2e1dc7800da93384e5b2e0bb1f195ed3eb4aed0ad01a877588a890f8bd970",
"name": "Boojum Plonk v30.0 verifier",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0x95d735ed04680e0f7777f1d2016f3b6e2f507726b32e2d8b47a37fd8355fd47a",
"name": "Boojum Fflonk v30.0 verifier",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0x18bdc7272350532ca7c3d4d613f0f22aa4100bcddd06722b2f8c6896ca5f5ad3",
"name": "Boojum Plonk v29.5 verifier",
"hash": "0xbaaa46d644f7034d609eea327e818bd9a93a3c0fdd60e887d233da8a35c4f8ae",
"name": "Boojum Plonk v30.1 verifier",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0xd22cA89e8991FCE568456914c616d303e3142395"
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"name": "Boojum Plonk zkLinkNova verifier",
"hash": "0xd89b62ac599b15d9dc47860c8ebca5964c99e7b177e9b8ea38a0c13714dc32bb",
"name": "Boojum Fflonk v30.1 verifier",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
},
"knownDeployments": [
{
"address": "linea:0x902C3806A84f4e855a8746e92d7F1C9a51400458"
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0xb2f50340e0edbe49dc657d4eb298e07f13860c1be0fe2e438e44ef8fad133d84",
"name": "Boojum Plonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"hash": "0x18bdc7272350532ca7c3d4d613f0f22aa4100bcddd06722b2f8c6896ca5f5ad3",
"name": "Boojum Plonk v29.5 verifier",
"proofSystem": {
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0x7f33D100f482093182111d69a4a457289e99f4ec"
"address": "eth:0xd22cA89e8991FCE568456914c616d303e3142395"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `snark_wrapper` value."
"verificationStatus": "notVerified"
},
{
"hash": "0xc8cd705a0db89577146137de78eba6bd1f1c9c3f66dc52f7627e7c2df30895b2",
"name": "Boojum Fflonk core-v29.11.1",
"sourceLink": "https://github.com/matter-labs/zksync-era/tree/core-v29.11.1/prover",
"hash": "0x8574e152c41dc39a2ecab984545e1cf21cb3ec250b919018a8053f2fa270784f",
"name": "Boojum Plonk zkLinkNova verifier",
"proofSystem": {
"id": "Zksync",
"type": "Fflonk",
"name": "Zksync",
"description": "Matter Labs Rust implementation of Fflonk improvement over standard Plonk proving system."
"id": "Bellman",
"type": "Plonk",
"name": "Bellman",
"description": "Bellman Rust library for Plonk proving system, originally developed for ZCash."
},
"knownDeployments": [
{
"address": "eth:0xa38a0Df579F9eCA29fbA560b9885B1113b1Df442"
"address": "linea:0x902C3806A84f4e855a8746e92d7F1C9a51400458"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "Verification requires an Ubuntu 22.04 machine with an NVIDIA GPU. We used a g6.4xlarge aws instance with 24 GiB GPU memory and 64 GiB RAM. \nThe setup part is based on [this guide](https://paragraph.com/@zksync/from-integration-to-verification-completing-the-first-steps-in-zksync-s-prover-network) with modifications, the verification is done using [this script](https://github.com/matter-labs/zksync-era/tree/main/prover/crates/bin/vk_setup_data_generator_server_fri).\n\n1. Install rust, yarn, some essential libraries, docker and cmake:\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\n\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash\nexport NVM_DIR=$HOME/.nvm\n. .bashrc\nnvm install 20\nnpm install -g yarn\nyarn set version 1.22.19\n\nsudo apt-get update\nsudo apt-get install -y build-essential pkg-config cmake clang lldb lld libssl-dev postgresql apt-transport-https ca-certificates curl software-properties-common\ncargo install sqlx-cli --version 0.8.1\n\n# install the latest version of cmake\nsudo apt remove cmake\ncurl -fsSL https://apt.kitware.com/kitware-archive.sh | sudo sh\nsudo apt-get install cmake\n```\n\n2. Install CUDA drivers and toolkit 12.2, export necessary env vars. On Ubuntu 22.04 this requires updating gcc to version 12.\n\n```\nsudo apt-get install gcc-12 g++-12\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100\nsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100\n\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get install -y cuda-drivers-535\nsudo apt-get install -y cuda-toolkit-12-2\n```\n\nReboot the machine to apply the drivers.\n\n3. Install `foundryup-zksync`.\n\n```\ncurl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash\n. ~/.bashrc\nfoundryup-zksync\n```\n\n4. Build bellman-cuda. We used the tag version `prerelease-dev-a87a309`, commit hash `a87a309e7c07ef6b3fc5532e50d5d244aab9f4d0`.\n```\nexport CUDA_HOME=/usr/local/cuda\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64\nexport PATH=$PATH:$CUDA_HOME/bin\n\ngit clone https://github.com/matter-labs/era-bellman-cuda.git\ncd era-bellman-cuda\ngit checkout prerelease-dev-a87a309\ngit submodule update --init --recursive\ncmake -B./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\nexport BELLMAN_CUDA_DIR=$HOME/era-bellman-cuda\n```\n\n5. Run all scripts to regenerate verification keys. The correct tag version of the repo is `core-v29.11.1`, commit hash `3f71cb2230fb9c365c095ce7bcf3373ea63fbec2`.\n```\ncd ~ \ngit clone https://github.com/matter-labs/zksync-era.git\ncd zksync-era/\ngit checkout core-v29.11.1\n\n# Download compact CRS for the compressor data step, put in repo root\ncurl -o setup_compact.key https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_compact.key\nexport COMPACT_CRS_FILE=~/zksync-era/setup_compact.key\n\ncd prover/crates/bin/vk_setup_data_generator_server_fri\nCRS_FILE=https://storage.googleapis.com/matterlabs-setup-keys-us/setup-keys/setup_2^24.key ZKSYNC_HOME=$HOME \n\n# Run regeneration steps\ncargo run --release --bin key_generator generate-vk\ncargo run --features gpu --release --bin key_generator generate-compressor-data\n```\n\nThe output of the last command will contain the required `fflonk_snark_wrapper` value."
"verificationStatus": "notVerified"
}
]
}
+4 -4
+3 -3
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x7b2DA4e77BAE0e0d23c53C3BE6650497d0576CFc",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1722357035,
"transactionHash": "0x98231507bfbba69996de5a8572d8f83ccf9756be6232d3f9431e2fc68c98d58b",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1722357035,
"transactionHash": "0x98231507bfbba69996de5a8572d8f83ccf9756be6232d3f9431e2fc68c98d58b",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1727850971,
"transactionHash": "0xe5711797fb601abc2d70e9265a897ba5a16a10125a9cadbd616f938592604fe7",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1737527783,
"transactionHash": "0x2784286656e572cfe0abf2117628fdc5a6cd12e5c060de171c54063b273bc216",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742983103,
"transactionHash": "0x8a8381da196ef20e8eb6868cdfff6f518ea9affc197a6ba7e607e9bd52947d3a",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748419643,
"transactionHash": "0xe90b1302fcd633e9c1158daba6a6f05512efb7bc437b79eeb4f1a87d52dda076",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1753861967,
"transactionHash": "0x8428717649285a036a7d0463dad7fbec8f244330ddf804401480f369a76e3ecd",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1755756827,
"transactionHash": "0x7fb079169799d3618fdbbde9815e5e1b0afeb2191b301dfb80c9811b67b38489",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1765445075,
"transactionHash": "0xef33b2d54a34da1a1d04bc1929f239f104751f6c1a5776760df176520283c73b",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1780910903,
"transactionHash": "0x7d96630296efe03df04817a3a8c321f7676edd22f4a387632c018ae7f83f152c",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1780997267,
"transactionHash": "0x2cf6ba0dc95e4d5160f6146838f8cbac0ca887cc0617d898020b1fff8c343204",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786181807,
"transactionHash": "0xce0ea2790b5b12033089168685da6c016111f209c0a4e870c9de7956035a956d",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786351031,
"transactionHash": "0xfeca0b076fcaff4a944b72952fab789eded3f96f34417b0d0cdbee0012c27a64",
"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**: CronosZkEVMAdmin; ultimately CronosChainAdminMultisig, EOA 1, TxFiltererOwnerMultisig\n * **getTransactionFilterer**: TransactionFiltererDenyList\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7b2DA4e77BAE0e0d23c53C3BE6650497d0576CFc#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "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": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
},
{
"name": "CronosZkEVMAdmin",
"isVerified": true,
"address": "eth:0x6a88E8f6B5382d87F39213eB3df43c5FF2498Dd4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **admins**: CronosChainAdminMultisig, EOA 1, TxFiltererOwnerMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6a88E8f6B5382d87F39213eB3df43c5FF2498Dd4#code"
},
{
"name": "DualVerifier",
"isVerified": true,
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC47D355402E78b886B628914B3b129F236fEe3cc#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"
}
],
"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": [
"CRO",
"USDC",
"WBTC",
"zkCRO",
"FUL",
"FRTN",
"MOON"
],
"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 Cronos zkEVM and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x309429DE3621992Cb0ab8982A448c9Cc5c38405b",
"l2EtherAddress": "0x898B3560AFFd6D955b1574D87EE09e46669c60eA",
"tokensToAssignFromL1": [
"zkCRO"
]
},
"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:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c"
]
}
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786966360,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+5 -1
+4 -0
{
"message": {
"type": "underReview",
"text": "The requirement for available node software is under review."
},
"missing": {
"nextStage": "Stage 1",
"requirements": [
"Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring.",
"The Security Council is not properly set up."
],
"principle": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
},
"stage": "Stage 0",
"summary": [
{
"stage": "Stage 0",
"requirements": [
{
"satisfied": true,
"description": "The project self-identifies as a Validium or Optimium."
},
{
"satisfied": true,
"description": "State roots are posted to Ethereum L1."
},
{
"satisfied": true,
"description": "A complete and functional proof system (fraud or validity proofs) is deployed."
},
{
"satisfied": "UnderReview",
"description": "A source-available node exists that can reconstruct the L2 state when DA is accessible. Please note that the L2BEAT team has not verified the validity of the node source code."
},
{
"satisfied": false,
"description": "Fraud proof submission is not sufficiently decentralized."
}
]
},
{
"stage": "Stage 1",
"requirements": [
{
"satisfied": true,
"description": "Users are able to exit without the help of the permissioned operators, provided DA is accessible."
},
{
"satisfied": false,
"description": "Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring."
},
{
"satisfied": false,
"description": "The Security Council is not properly set up."
},
{
"satisfied": true,
"description": "The sources of all programs used are public and program hashes can be independently regenerated."
}
],
"principle": {
"satisfied": false,
"description": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
}
},
{
"stage": "Stage 2",
"requirements": [
{
"satisfied": false,
"description": "Fraud proof submission is open only to whitelisted actors."
},
{
"satisfied": false,
"description": "Upgrades unrelated to onchain provable bugs, including upgrades to the DA verifier, provide less than 30d to exit."
},
{
"satisfied": false,
"description": "The Security Council's actions are not confined to onchain provable bugs."
}
]
}
]
}
+1 -1
{
"addresses": {
"base": [
{
"name": "SequencerInbox",
"isVerified": true,
"address": "base:0x6216dD1EE27C5aCEC7427052d3eCDc98E2bc2221",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x5ad3e9141D0EAd2132afFF0CD74487964cE9135A"
]
},
{
"timestamp": 1719879137,
"transactionHash": "0xc313d7714edf75e41115f458d8704acc2174d14247b8944202d64dd32d678fa7",
"implementations": [
"base:0x98DB769A9E15D66EA04665da0dF616596c296BA8"
]
},
{
"timestamp": 1746650461,
"transactionHash": "0xcae4abe1fb86f2d6e7db916c62b946b605a8ae100571f7db7ccccab07b2b1f3b",
"implementations": [
"base:0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AlchemyMultisig2\n * **batchPosters**: EOA 2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x6216dD1EE27C5aCEC7427052d3eCDc98E2bc2221#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "base:0x67812161Bbb6aCF891aA6028BC614a660961ceD8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0x5C2950Bd136716540e1F5CF442f2AB0aD2F413A7"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x9Db0bB898C500DD84C7c7bd7fFFFE914569a6677"
]
},
{
"timestamp": 1719879137,
"transactionHash": "0xc313d7714edf75e41115f458d8704acc2174d14247b8944202d64dd32d678fa7",
"implementations": [
"base:0x377A5b786E94cAcdcB2B309451C373c8F2166A79"
]
},
{
"timestamp": 1736796675,
"transactionHash": "0xd67a1ccd5e97907f82409a506ecc0d1ae8b8963ab6ced7f837b9643375be4f26",
"implementations": [
"base:0x5C2950Bd136716540e1F5CF442f2AB0aD2F413A7"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x67812161Bbb6aCF891aA6028BC614a660961ceD8#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "base:0xD34F3a11F10DB069173b32d84F02eDA578709143",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"base:0xaA3A7A2ec2477A61082E1C41a2c6710587917028"
],
"implementations": [
"base:0xb760B98D6256F8D135cEB738Eb9A9E44Af9B3b41",
"base:0x747D88df773721558575BA29fEf11FE28ED25266"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x3A59b13eB3F661DE35a1e203Bd12b3B4123976cf",
"base:0xB7202d306936B79Ba29907b391faA87D3BEec33A"
]
},
{
"timestamp": 1736796675,
"transactionHash": "0xd67a1ccd5e97907f82409a506ecc0d1ae8b8963ab6ced7f837b9643375be4f26",
"implementations": [
"base:0xb760B98D6256F8D135cEB738Eb9A9E44Af9B3b41",
"base:0x747D88df773721558575BA29fEf11FE28ED25266"
]
}
],
"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 AlchemyMultisig2\n * **anyTrustFastConfirmer**: DegenFastConfirmerMultisig; ultimately EOA 1\n * **owner**: UpgradeExecutor; ultimately AlchemyMultisig2\n * **validators**: DegenFastConfirmerMultisig, EOA 1; ultimately EOA 1",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xD34F3a11F10DB069173b32d84F02eDA578709143#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "base:0xEfEf4558802bF373Ce3307189C79a9cAb0a4Cb9C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0xf48cBc0e2Bd8d9ED8d76A54A3672bbb6e07Cf6D0"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0xc00336Cdf86AE7AD58D8773B0114082C190D28D5"
]
},
{
"timestamp": 1746570979,
"transactionHash": "0xb5cacac7e409b6c786dc0e6e3d171a2f6ea8758fda7637fa88c333aa5817d35d",
"implementations": [
"base:0xf48cBc0e2Bd8d9ED8d76A54A3672bbb6e07Cf6D0"
]
}
],
"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 AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xEfEf4558802bF373Ce3307189C79a9cAb0a4Cb9C#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "base:0xaA3A7A2ec2477A61082E1C41a2c6710587917028",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0x3C4DF76De31816443C207E49F9fE48737C8F2746"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x3C4DF76De31816443C207E49F9fE48737C8F2746"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AlchemyMultisig2\n * **executors**: AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xaA3A7A2ec2477A61082E1C41a2c6710587917028#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "base:0x21A1e2BFC61F30F2E81E0b08cd37c1FC7ef776E7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0xa9Fa7dFC5885E83af241c31c865d5f59eD4669d5"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0xcA00Db0289131B71A6624f62666bd54305697BB2"
]
},
{
"timestamp": 1746650461,
"transactionHash": "0xcae4abe1fb86f2d6e7db916c62b946b605a8ae100571f7db7ccccab07b2b1f3b",
"implementations": [
"base:0xa9Fa7dFC5885E83af241c31c865d5f59eD4669d5"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x21A1e2BFC61F30F2E81E0b08cd37c1FC7ef776E7#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "base:0xe63ddb12FBb6211a73F12a4367b10dA0834B82da",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0x20fA6358f89Ed16d48F6588a8f500887354Ff56c"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x20fA6358f89Ed16d48F6588a8f500887354Ff56c"
]
}
],
"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 AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xe63ddb12FBb6211a73F12a4367b10dA0834B82da#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "base:0x15D2a9A14de6Ea03AADE944641eAb497a3A4c9DF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0x15D2a9A14de6Ea03AADE944641eAb497a3A4c9DF#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "base:0x173FCB92df1854c3B78dC8696C23B1c88437b892",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0x173FCB92df1854c3B78dC8696C23B1c88437b892#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "base:0x23b0348788b96ee1cE4e7DdED4AC2A99de516F51",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "This contract implements view only utilities for validators.\n",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x23b0348788b96ee1cE4e7DdED4AC2A99de516F51#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "base:0x320e29bc3f34bc6B8834bBD2B6b013ef6620E69F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0x320e29bc3f34bc6B8834bBD2B6b013ef6620E69F#code"
},
{
"name": "UTBDecent",
"isVerified": true,
"address": "base:0x43019F8BE1F192587883b67dEA2994999f5a2de2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "The UTB contract serves as an L2<->L3 gateway by integrating with Decent (LayerZero app) to allow bridging and swapping in- and out of Degen L3. This is achieved using external modules (smart contracts) like swappers and bridgers that can be registered in the UTB contract.\n* Roles:\n * **cessControl**: EOA 4",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x43019F8BE1F192587883b67dEA2994999f5a2de2#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "base:0x766DD3A13d17C6D175975C89225bde89F052dBc4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0x4326B3755539d35b0A8846bF9b33982A8eA42c93"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0x4326B3755539d35b0A8846bF9b33982A8eA42c93"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately AlchemyMultisig2",
"upgradableBy": [
{
"name": "AlchemyMultisig2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0x766DD3A13d17C6D175975C89225bde89F052dBc4#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "base:0x97ba9522f2e5D67e96FeA6B612e794dc96637AAc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0x97ba9522f2e5D67e96FeA6B612e794dc96637AAc#code"
},
{
"name": "OrbitERC20OFTAdapter",
"isVerified": true,
"address": "base:0xDb8E759859058952c34953c8469f464109826e52",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "As a designated allowed outbox, this contract can access all funds of the canonical bridge escrow. It also interfaces with the LayerZero AMB, giving this external bridge access to the Degen L3 canonical bridge and making canonical bridge security dependent on LayerZero security.\n* Roles:\n * **owner**: EOA 3",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xDb8E759859058952c34953c8469f464109826e52#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "base:0xDf6C4562e853C4F775285710B467e2EE4Ca8D22c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"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://basescan.org/address/0xDf6C4562e853C4F775285710B467e2EE4Ca8D22c#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "base:0xFB48D385Fa3da33762B350e1d705b9E46054E677",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "base",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://basescan.org/address/0xFB48D385Fa3da33762B350e1d705b9E46054E677#code"
}
]
},
"escrows": [
{
"address": "0xEfEf4558802bF373Ce3307189C79a9cAb0a4Cb9C",
"sinceTimestamp": 1710087441,
"tokens": [
"DEGEN"
],
"contract": {
"isVerified": true,
"address": "base:0xEfEf4558802bF373Ce3307189C79a9cAb0a4Cb9C",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"base:0xFB48D385Fa3da33762B350e1d705b9E46054E677"
],
"implementations": [
"base:0xf48cBc0e2Bd8d9ED8d76A54A3672bbb6e07Cf6D0"
]
},
"chain": "base",
"pastUpgrades": [
{
"timestamp": 1710087441,
"transactionHash": "0x85708428ba3eb696c32b3e634fed7ac46016b61d6c0df46959a494d6ecc2bdec",
"implementations": [
"base:0xc00336Cdf86AE7AD58D8773B0114082C190D28D5"
]
},
{
"timestamp": 1746570979,
"transactionHash": "0xb5cacac7e409b6c786dc0e6e3d171a2f6ea8758fda7637fa88c333aa5817d35d",
"implementations": [
"base:0xf48cBc0e2Bd8d9ED8d76A54A3672bbb6e07Cf6D0"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows DEGEN sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://basescan.org/address/0xEfEf4558802bF373Ce3307189C79a9cAb0a4Cb9C#code"
},
"chain": "base",
"includeInTotal": false,
"chainId": 8453
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v51.1",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v51.1/arbos",
"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 [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v51.1` . Commit hash should be `e5dab3512419c50893813f4226c0621c3bfe2bdc`.\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 .`.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xc2c02df561d4afaf9a1d6785f70098ec3874765c638e3cb6dbe8d3c83333e14c"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "the security stack of the whitelisted LayerZero adapter changes or is compromised.",
"isCritical": true
},
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": []
}
+5 -1
+4 -0
{
"message": {
"type": "underReview",
"text": "The requirement for available node software is under review."
},
"missing": {
"nextStage": "Stage 1",
"requirements": [
"Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring.",
"The Security Council is not properly set up."
],
"principle": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
},
"stage": "Stage 0",
"summary": [
{
"stage": "Stage 0",
"requirements": [
{
"satisfied": true,
"description": "The project self-identifies as a Validium or Optimium."
},
{
"satisfied": true,
"description": "State roots are posted to Ethereum L1."
},
{
"satisfied": true,
"description": "A complete and functional proof system (fraud or validity proofs) is deployed."
},
{
"satisfied": "UnderReview",
"description": "A source-available node exists that can reconstruct the L2 state when DA is accessible. Please note that the L2BEAT team has not verified the validity of the node source code."
},
{
"satisfied": false,
"description": "Fraud proof submission is not sufficiently decentralized."
}
]
},
{
"stage": "Stage 1",
"requirements": [
{
"satisfied": true,
"description": "Users are able to exit without the help of the permissioned operators, provided DA is accessible."
},
{
"satisfied": false,
"description": "Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring."
},
{
"satisfied": false,
"description": "The Security Council is not properly set up."
},
{
"satisfied": true,
"description": "The sources of all programs used are public and program hashes can be independently regenerated."
}
],
"principle": {
"satisfied": false,
"description": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
}
},
{
"stage": "Stage 2",
"requirements": [
{
"satisfied": false,
"description": "Fraud proof submission is open only to whitelisted actors."
},
{
"satisfied": false,
"description": "Upgrades unrelated to onchain provable bugs, including upgrades to the DA verifier, provide less than 30d to exit."
},
{
"satisfied": false,
"description": "The Security Council's actions are not confined to onchain provable bugs."
}
]
}
]
}
+1 -1
{
"addresses": {
"arbitrum": [
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0x3131627362AD79b3D831559E0AfC986BF60A6870",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x079840Cc8959Ef60d414E5AFC6ED0493b8eAf514"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x079840Cc8959Ef60d414E5AFC6ED0493b8eAf514"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3131627362AD79b3D831559E0AfC986BF60A6870#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0x38d41Ac2fbc3f13FcA7838F6638D8FbDb189e807",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x7be08B013de2b23a6329De51C4994f841dcE1a10"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x3De02cf69192f4805edE47d7fA5efa614c5A6593"
]
},
{
"timestamp": 1767709919,
"transactionHash": "0x6ba75dc2936bc08617505e2a1abc4d117e98fc03707dbce6a598331ae6e21e7c",
"implementations": [
"arb1:0x7be08B013de2b23a6329De51C4994f841dcE1a10"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1, SafeL2\n * **batchPosters**: EOA 3",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x38d41Ac2fbc3f13FcA7838F6638D8FbDb189e807#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0xA9F4ee72439afC704db48dc049CbFb7E914aD300",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x234e937F1a2926737b0084Fb7498772579497735"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x234e937F1a2926737b0084Fb7498772579497735"
]
}
],
"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 EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xA9F4ee72439afC704db48dc049CbFb7E914aD300#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0xc930fd48846e956b308f28524dA2d5E14c832e33",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0xcD3D1CFE5e0cDa77D0a2D1ac1c0268C77115f89D"
],
"implementations": [
"arb1:0xF9725312bd91CcfA3aD797e78A8A10b6d692FCd6",
"arb1:0xF916Bfe431B7A7AaE083273F5b862e00a15d60F4"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0xF9725312bd91CcfA3aD797e78A8A10b6d692FCd6",
"arb1:0xF916Bfe431B7A7AaE083273F5b862e00a15d60F4"
]
}
],
"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 EOA 1, SafeL2\n * **owner**: UpgradeExecutor; ultimately EOA 1, SafeL2\n * **validators**: EOA 2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xc930fd48846e956b308f28524dA2d5E14c832e33#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0xcD3D1CFE5e0cDa77D0a2D1ac1c0268C77115f89D",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x12B1389Fbf261E781bdc3094d28636Abfb03C5b3"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x12B1389Fbf261E781bdc3094d28636Abfb03C5b3"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1, SafeL2\n * **executors**: EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xcD3D1CFE5e0cDa77D0a2D1ac1c0268C77115f89D#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0x39919941b42DAb335d9924Ef56dF7b9813b2D6d9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0xCf66F830c4e5E1904B599ED61249601901E55D89"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0xCf66F830c4e5E1904B599ED61249601901E55D89"
]
}
],
"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 EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x39919941b42DAb335d9924Ef56dF7b9813b2D6d9#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0x446626827f14F89B38D5bA1ab152B484cd7912fD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0xD87f160f8c414d834cBDd9477c3D8c3ad1802255"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x0f728dd0217E26120A304B3Fa554C3Ba2b2aF535"
]
},
{
"timestamp": 1767709919,
"transactionHash": "0x6ba75dc2936bc08617505e2a1abc4d117e98fc03707dbce6a598331ae6e21e7c",
"implementations": [
"arb1:0xD87f160f8c414d834cBDd9477c3D8c3ad1802255"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x446626827f14F89B38D5bA1ab152B484cd7912fD#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x09fDA6447fA7758EA9245ac78Ca3c9ba68CBfd3d",
"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/0x09fDA6447fA7758EA9245ac78Ca3c9ba68CBfd3d#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x3930AD9a21dA38E63d52B43b0c530CB0AACcB389",
"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/0x3930AD9a21dA38E63d52B43b0c530CB0AACcB389#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8D9e5bB33Da252739780e3df5F9E686fd11E0536#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0xa0d6E6b1B950aCC748B45F3419FeAd4b52f7389A",
"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/0xa0d6E6b1B950aCC748B45F3419FeAd4b52f7389A#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0xA6D1cE7210353E431CE79f41BcFA9Ea3Ae507b98",
"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/0xA6D1cE7210353E431CE79f41BcFA9Ea3Ae507b98#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0xAc9348017885a132F1A0614B508F632A56B90ec4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x3e9A459089758E760bEA267aBB9485EE5b47a909"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x3e9A459089758E760bEA267aBB9485EE5b47a909"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1, SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
},
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xAc9348017885a132F1A0614B508F632A56B90ec4#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0xD3dE403eADdf791104918E9C9336B434AE7DDA01",
"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/0xD3dE403eADdf791104918E9C9336B434AE7DDA01#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0xF5f5bc097ca8f4bE96D8CdE86c96Bd2d81fd2585",
"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/0xF5f5bc097ca8f4bE96D8CdE86c96Bd2d81fd2585#code"
}
]
},
"escrows": [
{
"address": "0xA9F4ee72439afC704db48dc049CbFb7E914aD300",
"sinceTimestamp": 1750157155,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "arb1:0xA9F4ee72439afC704db48dc049CbFb7E914aD300",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8D9e5bB33Da252739780e3df5F9E686fd11E0536"
],
"implementations": [
"arb1:0x234e937F1a2926737b0084Fb7498772579497735"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1750157155,
"transactionHash": "0xd0a0751d8450543a294e38729482791348b8daba8017cdc92d3ada20f67a4e21",
"implementations": [
"arb1:0x234e937F1a2926737b0084Fb7498772579497735"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0xA9F4ee72439afC704db48dc049CbFb7E914aD300#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x0b6b5aFEe8602A4d88dC26Fc2E85b2d1236156F6",
"sinceTimestamp": 1745356800,
"tokens": "*",
"chain": "arbitrum",
"chainId": 42161
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v51.1",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v51.1/arbos",
"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 [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v51.1` . Commit hash should be `e5dab3512419c50893813f4226c0621c3bfe2bdc`.\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 .`.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xc2c02df561d4afaf9a1d6785f70098ec3874765c638e3cb6dbe8d3c83333e14c"
}
],
"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": []
}
+30 -1
+4 -0
{
"message": {
"type": "underReview",
"text": "The requirement for available node software is under review."
},
"missing": {
"nextStage": "Stage 1",
"requirements": [
"Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring.",
"The Security Council is not properly set up."
],
"principle": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
},
"stage": "Stage 0",
"summary": [
{
"stage": "Stage 0",
"requirements": [
{
"satisfied": true,
"description": "The project self-identifies as a Validium or Optimium."
},
{
"satisfied": true,
"description": "State roots are posted to Ethereum L1."
},
{
"satisfied": true,
"description": "A complete and functional proof system (fraud or validity proofs) is deployed."
},
{
"satisfied": "UnderReview",
"description": "A source-available node exists that can reconstruct the L2 state when DA is accessible. Please note that the L2BEAT team has not verified the validity of the node source code."
},
{
"satisfied": false,
"description": "Fraud proof submission is not sufficiently decentralized."
}
]
},
{
"stage": "Stage 1",
"requirements": [
{
"satisfied": true,
"description": "Users are able to exit without the help of the permissioned operators, provided DA is accessible."
},
{
"satisfied": false,
"description": "Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring."
},
{
"satisfied": false,
"description": "The Security Council is not properly set up."
},
{
"satisfied": true,
"description": "The sources of all programs used are public and program hashes can be independently regenerated."
}
],
"principle": {
"satisfied": false,
"description": "Compromising ≥75% of the Security Council to push a malicious upgrade, or sequencer+DA-committee collusion to withhold data and finalize invalid state roots, should be the only ways (other than bugs) to steal funds or block withdrawals indefinitely."
}
},
{
"stage": "Stage 2",
"requirements": [
{
"satisfied": false,
"description": "Fraud proof submission is open only to whitelisted actors."
},
{
"satisfied": false,
"description": "Upgrades unrelated to onchain provable bugs, including upgrades to the DA verifier, provide less than 30d to exit."
},
{
"satisfied": false,
"description": "The Security Council's actions are not confined to onchain provable bugs."
}
]
}
]
}
+25 -0
[
{
"mode": "auto",
"id": "edgechain-ETH",
"priceId": "ethereum",
"symbol": "ETH",
"name": "Ether",
"iconUrl": "https://assets.coingecko.com/coins/images/279/large/ethereum.png?1595348880",
"amount": {
"type": "calculation",
"operator": "sum",
"arguments": [
{
"type": "balanceOfEscrow",
"chain": "arbitrum",
"sinceTimestamp": 1761511538,
"address": "native",
"decimals": 18,
"escrowAddress": "0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0"
},
{
"type": "balanceOfEscrow",
"chain": "arbitrum",
"sinceTimestamp": 1761512772,
"address": "native",
"decimals": 18,
"escrowAddress": "0x107695630130919cb040B095b9b20511D6e211bB"
}
]
},
"valueForSummary": {
"type": "calculation",
"operator": "sum",
"arguments": [
{
"type": "value",
"amount": {
"type": "const",
"sinceTimestamp": 1761511538,
"value": "0",
"decimals": 0
},
"priceId": "ethereum"
},
{
"type": "value",
"amount": {
"type": "const",
"sinceTimestamp": 1761512772,
"value": "0",
"decimals": 0
},
"priceId": "ethereum"
}
]
},
"category": "ether",
"source": "canonical",
"isAssociated": false
},
{
"mode": "auto",
"id": "edgechain-USDC",
"priceId": "usd-coin",
"symbol": "USDC",
"name": "USD Coin",
"iconUrl": "https://assets.coingecko.com/coins/images/6319/large/usdc.png?1696506694",
"amount": {
"type": "balanceOfEscrow",
"chain": "arbitrum",
"sinceTimestamp": 1761512772,
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"decimals": 6,
"escrowAddress": "0x107695630130919cb040B095b9b20511D6e211bB"
},
"valueForSummary": {
"type": "value",
"amount": {
"type": "const",
"sinceTimestamp": 1761512772,
"value": "0",
"decimals": 0
},
"priceId": "usd-coin"
},
"category": "stablecoin",
"source": "canonical",
"isAssociated": false,
"bridgedUsing": {
"bridges": [
{
"name": "Circle CCTP"
}
]
}
},
{
"mode": "custom",
"id": "edgechain-USDC-1",
"priceId": "usd-coin",
"symbol": "USDC",
"name": "USD Coin",
"iconUrl": "https://assets.coingecko.com/coins/images/6319/large/usdc.png?1696506694",
"amount": {
"type": "totalSupply",
"chain": "edgechain",
"sinceTimestamp": 1769801105,
"address": "0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c",
"decimals": 6
},
"category": "stablecoin",
"source": "external",
"isAssociated": false,
"bridgedUsing": {
"bridges": [
{
"name": "Circle CCTP"
}
]
}
}
]
+1 -1
{
"addresses": {
"arbitrum": [
{
"name": "RollupProxy",
"isVerified": true,
"address": "arb1:0x14FdC47483e79d5A76599a74A2D622DA1cf97BBF",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"arb1:0xabf2650D259213d6b3E1bC46Fc1eDb7405d48Fdf"
],
"implementations": [
"arb1:0xF9725312bd91CcfA3aD797e78A8A10b6d692FCd6",
"arb1:0xF916Bfe431B7A7AaE083273F5b862e00a15d60F4"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0xF9725312bd91CcfA3aD797e78A8A10b6d692FCd6",
"arb1:0xF916Bfe431B7A7AaE083273F5b862e00a15d60F4"
]
}
],
"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 SafeL2\n * **anyTrustFastConfirmer**: GnosisSafeL2; ultimately EOA 1\n * **owner**: UpgradeExecutor; ultimately SafeL2\n * **validators**: EOA 1, GnosisSafeL2; ultimately EOA 1",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x14FdC47483e79d5A76599a74A2D622DA1cf97BBF#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "arb1:0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x466AA18cE75f1a3039D4C06A3c31786d0d0386c8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x466AA18cE75f1a3039D4C06A3c31786d0d0386c8"
]
}
],
"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 SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0#code"
},
{
"name": "ChallengeManager",
"isVerified": true,
"address": "arb1:0xACAec98D879E39d83a30F914A36bf4877424D04f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x079840Cc8959Ef60d414E5AFC6ED0493b8eAf514"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x079840Cc8959Ef60d414E5AFC6ED0493b8eAf514"
]
}
],
"description": "Contract that allows challenging state roots. Can be called through the RollupProxy by Validators or the UpgradeExecutor.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xACAec98D879E39d83a30F914A36bf4877424D04f#code"
},
{
"name": "SequencerInbox",
"isVerified": true,
"address": "arb1:0xe44B83D8a3A86994043C809E29B723a44FAEE479",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x066a4D939302470Bd83F1868A1Ae2485Fe75ccF2"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x5F89646f93E360217AD7caD73a44298aBC4aCA9A"
]
},
{
"timestamp": 1767708382,
"transactionHash": "0xdce058b81af248e204b1c6b53c30c18af303b00de6638980e3ce0f552119d12a",
"implementations": [
"arb1:0x066a4D939302470Bd83F1868A1Ae2485Fe75ccF2"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **batchPosters**: EOA 2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xe44B83D8a3A86994043C809E29B723a44FAEE479#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "arb1:0xabf2650D259213d6b3E1bC46Fc1eDb7405d48Fdf",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x12B1389Fbf261E781bdc3094d28636Abfb03C5b3"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x12B1389Fbf261E781bdc3094d28636Abfb03C5b3"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **executors**: SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xabf2650D259213d6b3E1bC46Fc1eDb7405d48Fdf#code"
},
{
"name": "ERC20Gateway",
"isVerified": true,
"address": "arb1:0x107695630130919cb040B095b9b20511D6e211bB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x1d720642e63cB0f50be637e16E0f78B2D1b93f16"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761512772,
"transactionHash": "0x8a815abfce827844bdad997036a2a1c13e020de7df76322505aec14b18fde9bc",
"implementations": [
"arb1:0x1d720642e63cB0f50be637e16E0f78B2D1b93f16"
]
}
],
"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 SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x107695630130919cb040B095b9b20511D6e211bB#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "arb1:0x9f427c80C4DF962726808d4c876fc2c55474a764",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x51882B52bcc3EF8008f9F7772B0229eA2551FDdc"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x51882B52bcc3EF8008f9F7772B0229eA2551FDdc"
]
}
],
"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 SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9f427c80C4DF962726808d4c876fc2c55474a764#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "arb1:0xeB88b89e085D6B747Dd6b9CEaf2716bdd89F1E7c",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x6C6cf18f13C3e9b969e3acE6b8F21DfF95d4D447"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0xd35dCCD471CB5136004DA35660E0573B6cd791d9"
]
},
{
"timestamp": 1767708382,
"transactionHash": "0xdce058b81af248e204b1c6b53c30c18af303b00de6638980e3ce0f552119d12a",
"implementations": [
"arb1:0x6C6cf18f13C3e9b969e3acE6b8F21DfF95d4D447"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xeB88b89e085D6B747Dd6b9CEaf2716bdd89F1E7c#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "arb1:0x3616995dF5D07B28f2B186F1386cace9EB9Bbd20",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x9c84a387930853D963892D299153B0d5840dc1F5"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761512772,
"transactionHash": "0x8a815abfce827844bdad997036a2a1c13e020de7df76322505aec14b18fde9bc",
"implementations": [
"arb1:0x9c84a387930853D963892D299153B0d5840dc1F5"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3616995dF5D07B28f2B186F1386cace9EB9Bbd20#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "arb1:0x09fDA6447fA7758EA9245ac78Ca3c9ba68CBfd3d",
"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/0x09fDA6447fA7758EA9245ac78Ca3c9ba68CBfd3d#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "arb1:0x3930AD9a21dA38E63d52B43b0c530CB0AACcB389",
"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/0x3930AD9a21dA38E63d52B43b0c530CB0AACcB389#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8420251362dA42f5Be2285B2DEa2f20D16332fE6#code"
},
{
"name": "ValidatorUtils",
"isVerified": true,
"address": "arb1:0xa0d6E6b1B950aCC748B45F3419FeAd4b52f7389A",
"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/0xa0d6E6b1B950aCC748B45F3419FeAd4b52f7389A#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "arb1:0xA6D1cE7210353E431CE79f41BcFA9Ea3Ae507b98",
"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/0xA6D1cE7210353E431CE79f41BcFA9Ea3Ae507b98#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "arb1:0xD3dE403eADdf791104918E9C9336B434AE7DDA01",
"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/0xD3dE403eADdf791104918E9C9336B434AE7DDA01#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "arb1:0xdA3102d2f80CaD9571a9Eb3656e808e973620dBD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0xd9E17C6012A50F8725aCDA0196Cecaa40657e8cB"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0xd9E17C6012A50F8725aCDA0196Cecaa40657e8cB"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xdA3102d2f80CaD9571a9Eb3656e808e973620dBD#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "arb1:0xF5f5bc097ca8f4bE96D8CdE86c96Bd2d81fd2585",
"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/0xF5f5bc097ca8f4bE96D8CdE86c96Bd2d81fd2585#code"
}
]
},
"escrows": [
{
"address": "0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0",
"sinceTimestamp": 1761511538,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "arb1:0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x466AA18cE75f1a3039D4C06A3c31786d0d0386c8"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761511538,
"transactionHash": "0xe42a54c304562cf5e67fece131976f358a50c8b26879658306a395649f8914b5",
"implementations": [
"arb1:0x466AA18cE75f1a3039D4C06A3c31786d0d0386c8"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://arbiscan.io/address/0x6F4836aFD5e21EDcee9b838C5a4125829EC198d0#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
},
{
"address": "0x107695630130919cb040B095b9b20511D6e211bB",
"sinceTimestamp": 1761512772,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "arb1:0x107695630130919cb040B095b9b20511D6e211bB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0x8420251362dA42f5Be2285B2DEa2f20D16332fE6"
],
"implementations": [
"arb1:0x1d720642e63cB0f50be637e16E0f78B2D1b93f16"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1761512772,
"transactionHash": "0x8a815abfce827844bdad997036a2a1c13e020de7df76322505aec14b18fde9bc",
"implementations": [
"arb1:0x1d720642e63cB0f50be637e16E0f78B2D1b93f16"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L3 a generic, \"wrapped\" token will be minted.",
"url": "https://arbiscan.io/address/0x107695630130919cb040B095b9b20511D6e211bB#code"
},
"chain": "arbitrum",
"includeInTotal": false,
"chainId": 42161
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v51.1",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "notVerified",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v51.1/arbos",
"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 [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v51.1` . Commit hash should be `e5dab3512419c50893813f4226c0621c3bfe2bdc`.\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 .`.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.",
"hash": "0xc2c02df561d4afaf9a1d6785f70098ec3874765c638e3cb6dbe8d3c83333e14c"
}
],
"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": []
}
+27 -5
+1 -1
"EdgeX"
"edgeX v1"
+2 -1
{
"redWarning": {
"text": "Critical contracts can be upgraded by an EOA which could result in the loss of all funds.",
"detailAnchor": "permissions"
},
"unverifiedContracts": [
"eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD",
"eth:0xfAaE2946e846133af314d1Df13684c89fA7d83DD"
]
],
"yellowWarning": "The edgeX v1 StarkPerpetual contract was frozen on 14th August 2026. It can no longer process trades, deposits or state updates. Remaining funds can only be recovered via the escape hatch."
}
+1 -1
{
"badges": [
{
"id": "CairoVM",
"type": "VM",
"name": "CairoVM",
"description": "This project uses the Cairo Virtual Machine to run its smart contracts and supports the Cairo programming language",
"action": {
"type": "scalingFilter",
"id": "vm",
"value": "CairoVM"
}
},
{
"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": "StarkEx",
"type": "Stack",
"name": "StarkEx",
"description": "This project was deployed utilizing the StarkEx technology from StarkWare",
"action": {
"type": "scalingFilter",
"id": "stack",
"value": "StarkEx"
}
},
{
"id": "SHARP",
"type": "Infra",
"name": "Uses SHARP",
"description": "The project uses a shared prover contract - SHARP",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "SHARP"
}
}
],
"description": "EdgeX is a high-performance on-chain trading platform, build as an L2 on Starknet's StarkEx tech.",
"description": "edgeX v1 was a high-performance on-chain trading platform, built as an L2 on Starknet's StarkEx tech.",
"links": {
"websites": [
"https://edgex.exchange"
],
"documentation": [
"https://edgex-1.gitbook.io/edgeX-documentation"
],
"bridges": [
"https://pro.edgex.exchange"
],
"socialMedia": [
"https://x.com/edgeX_exchange",
"https://discord.com/invite/edgeX",
"https://medium.com/@edgexexchange",
"https://t.me/edgeX_exchange"
]
}
}
+21 -0
[
{
"title": "edgeX live on Mainnet",
"date": "2024-08-03T00:00:00Z",
"url": "https://x.com/edgeX_exchange/status/1819614179760001039",
"description": "edgeX, a non-custodial decentralized exchange powered by StarkeX, is now live on Mainnet.",
"type": "general"
},
{
"title": "EDGE Chain announced",
"date": "2026-03-10T00:00:00Z",
"url": "https://blog.arbitrum.io/edgex-announces-edge-chain-on-arbitrum/",
"description": "edgeX announces EDGE Chain, an app-specific rollup on Arbitrum, as the execution layer for edgeX v2.",
"type": "general"
},
{
"title": "edgeX v2 live on EDGE Chain",
"date": "2026-05-26T00:00:00Z",
"url": "https://x.com/edgeX_exchange/status/2059258266006479101",
"description": "edgeX v2 goes live, moving all trading from the StarkEx-based v1 to EDGE Chain.",
"type": "general"
},
{
"title": "edgeX v1 stops operating",
"date": "2026-08-14T00:00:00Z",
"url": "https://etherscan.io/tx/0xf67c799e5f555a6b65d48f4c96ae94e391c38e522d4724c49ec3614ceeac511c",
"description": "Following an unprocessed forced withdrawal on L1, edgeX v1 contract freezes.",
"type": "incident"
}
]
+1 -1
{
"baseTimestamp": 1785756243,
"baseTimestamp": 1786964851,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
null
1786716095
+24 -14
+23 -13
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xe3e310cd8EE0C808794810AB50FE4BcCC5c7D89E",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1731379871,
"transactionHash": "0x0bbe1288b6184a2f0e7b1205c695f28f5dad249904447e05a841fbfbab1af41d",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1731379871,
"transactionHash": "0x0bbe1288b6184a2f0e7b1205c695f28f5dad249904447e05a841fbfbab1af41d",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1738042691,
"transactionHash": "0x733c89da487edb502dc65f5115ada9cef6b44128a85cf36adbde4821e13abe31",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742808587,
"transactionHash": "0xd442b78fb0d2ccccea791f60de88cc4d7214fff454429c552be59c8778cbb9f3",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747639079,
"transactionHash": "0xf21daa11dac7aa6d48bcf8f8d76d8c43900db3022d183389a8e16858cabdd0cb",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1752209807,
"transactionHash": "0x50482c232f408d2e39fcaf30df79e587c0859e2f36e476b9d4deda048e3f1a45",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1766780987,
"transactionHash": "0x85dba00b8749a3bac358b1b3c0c62dc9b3eb7d00b5e0da81955fad460360395b",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1781610371,
"transactionHash": "0xedafd71bf96d2993dff23fca5d6d2e1ace52468cc10eed9e68cf260529156b7b",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1781777615,
"transactionHash": "0xa5133fa49c851e0a36f14a62515213fb1268e877a6ba35f0978f8c4e369074e9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786441127,
"transactionHash": "0xe93d3af0aeb00f811edd3077b734b5e76842842ea919aaeead2c19c4d0157a31",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786697939,
"transactionHash": "0xba32e7c45d24c1e62cab727c08d3c0134210ba73c27299751060f9810f77427e",
"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**: GrvtZkEvmAdmin; ultimately GrvtChainAdminMultisig\n * **getTransactionFilterer**: GRVTTransactionFilterer\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe3e310cd8EE0C808794810AB50FE4BcCC5c7D89E#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "GrvtZkEvmAdmin",
"isVerified": true,
"address": "eth:0x6308ee1Ebdb8D5E60bB88D3EA3b56CE326193e7D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets GrvtChainAdminMultisig act through it.\n* Roles:\n * **owner**: GrvtChainAdminMultisig\n * **tokenMultiplierSetter**: GrvtChainAdminMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6308ee1Ebdb8D5E60bB88D3EA3b56CE326193e7D#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": "DualVerifier",
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e",
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e#code"
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0x9f5C39a2790f38542065E7854b90407371923375",
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"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/0x9f5C39a2790f38542065E7854b90407371923375#code"
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
},
{
"name": "L1VerifierPlonk",
"name": "DualVerifier",
"isVerified": true,
"address": "eth:0xd22cA89e8991FCE568456914c616d303e3142395",
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd22cA89e8991FCE568456914c616d303e3142395#code"
"url": "https://etherscan.io/address/0xC47D355402E78b886B628914B3b129F236fEe3cc#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"
}
],
"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": [],
"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:0x9f5C39a2790f38542065E7854b90407371923375",
"eth:0xd22cA89e8991FCE568456914c616d303e3142395"
"eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c"
]
}
+1 -1
{
"baseTimestamp": 1786528574,
"baseTimestamp": 1786966181,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -2
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x742A28e22277945BBAAa34810393bf6e8512576C",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1744397327,
"transactionHash": "0xe2beab76f0b037d55d5bb75beca94db53fce7655340bf463e2f884aa600780fd",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1744397327,
"transactionHash": "0xe2beab76f0b037d55d5bb75beca94db53fce7655340bf463e2f884aa600780fd",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1744397327,
"transactionHash": "0xe2beab76f0b037d55d5bb75beca94db53fce7655340bf463e2f884aa600780fd",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748357435,
"transactionHash": "0x41608f3a9087d7437d7bfd8ef533217782493c95d5fa43762e45e4498bd05e21",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1752346379,
"transactionHash": "0x36697c871bb555b46ae5ca1aff3370b229c719fe883cf56edd1749c8ca4b3913",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
}
],
"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**: ChainAdminOwnable; ultimately Safe\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x742A28e22277945BBAAa34810393bf6e8512576C#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "ChainAdminOwnable",
"isVerified": true,
"address": "eth:0xc4F79BAb04664229eAEf3dBbc528Dd982df81EdD",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Safe act through it.\n* Roles:\n * **owner**: Safe\n * **tokenMultiplierSetter**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc4F79BAb04664229eAEf3dBbc528Dd982df81EdD#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": "DualVerifier",
"isVerified": true,
"address": "eth:0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579#code"
},
{
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1",
"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/0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b",
"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/0xD5dBE903F5382B052317D326FA1a7B63710C6a5b#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"
}
],
"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": [],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.28.0",
"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.28.0/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.28.0`. Commit hash should be `cfd77cb6bc9ab3d751d42c6161f1b393a9c51647`.\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": "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35"
}
],
"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": []
}
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+26 -16
+25 -15
{
"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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "L1VerifierPlonk",
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "L1VerifierFflonk",
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "DualVerifier",
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"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/0xC47D355402E78b886B628914B3b129F236fEe3cc#code"
"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:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1786434353,
"baseTimestamp": 1786966184,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+26 -16
+25 -15
{
"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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf553E6D903AA43420ED7e3bc2313bE9286A8F987#code"
},
{
"name": "L1VerifierPlonk",
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "L1VerifierFflonk",
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "DualVerifier",
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"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/0xC47D355402E78b886B628914B3b129F236fEe3cc#code"
"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:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1786528589,
"baseTimestamp": 1786966187,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -2
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x5e64D248Eab336AB3Fd0BeC0CFe31D4AAE32E879",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1732199087,
"transactionHash": "0x7109114ff376281f357985c44c2473266a1a3d57a74cca110499279713c39241",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1732199087,
"transactionHash": "0x7109114ff376281f357985c44c2473266a1a3d57a74cca110499279713c39241",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1738686455,
"transactionHash": "0xa72f2fd2292abc5f4823ba17a3e1e622f71778d2e308b7da8b3d4bfc3d8f6f8f",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742933423,
"transactionHash": "0x0d39b66c0a194ce268eba8ea2883828caacbc62cb41ff972cea629bcb7ccd696",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
}
],
"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**: TreasureZkEvmAdmin; ultimately TreasureChainAdminMultisig\n * **validators**: ValidatorTimelock, ValidatorTimelock2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5e64D248Eab336AB3Fd0BeC0CFe31D4AAE32E879#code"
},
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Implements the ZK proof verification logic.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdb3300726556AFA413A11aF474a8cFDa4D7fc5a5#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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": "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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "TreasureZkEvmAdmin",
"isVerified": true,
"address": "eth:0x97440Bf040f0dfA402cf5D4F1e0f574309Ace871",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets TreasureChainAdminMultisig act through it.\n* Roles:\n * **owner**: TreasureChainAdminMultisig\n * **tokenMultiplierSetter**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x97440Bf040f0dfA402cf5D4F1e0f574309Ace871#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": "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"
}
],
"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": [
"MAGIC"
],
"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": "0xfC1d5dCD080121DaAF366625581ad490414EF294",
"l2EtherAddress": "0x650BE505C391d396A1e0b1f2337EaE77F064fF7f",
"tokensToAssignFromL1": [
"MAGIC"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v26",
"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/release-v26/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 release-v26`. Commit hash should be `f7ecdb91f7941a3be01ce08bf6a2e4a5fb02a8d5`.\n2. Execute `pushd da-contracts && forge clean && popd && pushd l1-contracts && yarn clean && forge clean && popd && pushd l2-contracts && yarn clean && forge clean && popd && pushd system-contracts && yarn clean && forge clean && popd && pushd da-contracts && yarn build:foundry && popd && pushd l1-contracts && yarn build:foundry && popd && pushd l2-contracts && yarn build:foundry && popd && pushd system-contracts && yarn build:foundry && popd && yarn calculate-hashes:fix` to recompile all contracts and compare their hashes with the ones recorded in `AllContractsHashes.json` (note that script output calls this file `SystemContractsHashes.json`).",
"hash": "0x0100088580465d88420e6369230ee94a32ff356dbcdd407a4be49fc8009b2a81"
}
],
"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": []
}
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -2
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xC8C4cB5AF7c723c7EfD360898B47920679f92C92",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740703211,
"transactionHash": "0x3fe469a2c5d942e5cc3016032b17107a2cc8742d3ad1607ee3e66bf2c61191ba",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1740703211,
"transactionHash": "0x3fe469a2c5d942e5cc3016032b17107a2cc8742d3ad1607ee3e66bf2c61191ba",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742918891,
"transactionHash": "0xe6833f6e043850f5c6f5fb6bd04ef358a90f7d7774432fb38aa3c2a9d43c69d6",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1747076471,
"transactionHash": "0xd2416171d0e0aa5dcbe8cf888535f8b03684374e9c353bb937547f9351f39f38",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1751570459,
"transactionHash": "0x100e6f2824fd83afdc5339f5b153a85bc76f38afc024b3b24b4f630df3c6ef2c",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
}
],
"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**: ChainAdmin; ultimately Wonder Multisig\n * **validators**: ValidatorTimelock, ValidatorTimelock2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC8C4cB5AF7c723c7EfD360898B47920679f92C92#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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": "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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "ChainAdmin",
"isVerified": true,
"address": "eth:0x9381D943BcC1254723F85E9A85FFcc4Bb3C8deF6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Wonder Multisig act through it.\n* Roles:\n * **owner**: Wonder Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9381D943BcC1254723F85E9A85FFcc4Bb3C8deF6#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": "DualVerifier",
"isVerified": true,
"address": "eth:0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x53F5DE9De3B2DA90633a2c74BEb3b9912cdd1579#code"
},
{
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1",
"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/0x5BAfEF6729228add8775aF4Cecd2E68a51424Ee1#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0xD5dBE903F5382B052317D326FA1a7B63710C6a5b",
"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/0xD5dBE903F5382B052317D326FA1a7B63710C6a5b#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"
}
],
"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",
"USDC"
],
"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 Wonder and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0xFb07A45D72DBE6E09Fd07eA4A22BAB4f85295C27",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Boojum L2 Bootloader program v0.28.0",
"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.28.0/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.28.0`. Commit hash should be `cfd77cb6bc9ab3d751d42c6161f1b393a9c51647`.\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": "0x0100085f9382a7928dd83bfc529121827b5f29f18b9aa10d18aa68e1be7ddc35"
}
],
"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": []
}
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -2
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1729268915,
"transactionHash": "0xa728db44825fd6e5aa33e91df199018db55a3c7376d49526abdd06402e24a5af",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1729268915,
"transactionHash": "0xa728db44825fd6e5aa33e91df199018db55a3c7376d49526abdd06402e24a5af",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736984927,
"transactionHash": "0x43cc00fd7fc4cf95a1b1c73c015e995b9bd30b63f94d9c41a9ff5f6dc9a30f2f",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742860739,
"transactionHash": "0x73c01b2ffc860cbae069cb2079376603a8a05aa57c005e8ab74b858353827f87",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748397059,
"transactionHash": "0x76d47b3062b0dc7f0f5a40f726782dc3236c789ba526704f2c64e7c7551eaf83",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1759176779,
"transactionHash": "0x68ffcd55af3cc04620fcdb6ff5800c1bcbbd31d4363ae9f4fdb2091f7c24834d",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1759176779,
"transactionHash": "0x68ffcd55af3cc04620fcdb6ff5800c1bcbbd31d4363ae9f4fdb2091f7c24834d",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1783512011,
"transactionHash": "0x2133c718664d820546ee503c0a34b604a76c62d2e9db79cc28c122194dd0c613",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1784656175,
"transactionHash": "0x59cfcb9ad5e4607c8ec96b65d374f77e356fea442ef7eca801151067616efdf1",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1785159683,
"transactionHash": "0xe6c3d543918e5e42d671bcca1152f81ced607086eb7740a62ef2b072094114b4",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786532087,
"transactionHash": "0x5fcbc112ebf19a24d074fde648516eea4a34e399d8798d932fb3126df6c58854",
"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**: ZeroNetworkZkEvmAdmin; ultimately Zeronetwork Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdbD849acC6bA61F461CB8A41BBaeE2D673CA02d9#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "ZeroNetworkZkEvmAdmin",
"isVerified": true,
"address": "eth:0xCA8faaF5BA885fEC8C2c8CD49bADAa7589D173b3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets Zeronetwork Multisig act through it.\n* Roles:\n * **owner**: Zeronetwork Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xCA8faaF5BA885fEC8C2c8CD49bADAa7589D173b3#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": "DualVerifier",
"isVerified": true,
"address": "eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0x9f5C39a2790f38542065E7854b90407371923375",
"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/0x9f5C39a2790f38542065E7854b90407371923375#code"
},
{
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0xd22cA89e8991FCE568456914c616d303e3142395",
"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/0xd22cA89e8991FCE568456914c616d303e3142395#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"
}
],
"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",
"USDC",
"WBTC",
"USDT"
],
"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 ZERÏ´ and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x954ba8223a6BFEC1Cc3867139243A02BA0Bc66e4",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"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": []
}
+1 -1
{
"baseTimestamp": 1786615271,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+2 -2
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0xF2704433d11842d15aa76BBF0E00407267a99C92",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740703583,
"transactionHash": "0xc4a64f76c03f5a13c02ef75b678c561fcbeac3d14d039d0c63d898009d8c4bca",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1740703583,
"transactionHash": "0xc4a64f76c03f5a13c02ef75b678c561fcbeac3d14d039d0c63d898009d8c4bca",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1742997647,
"transactionHash": "0x2b263b46f39c303439cc9863a7c0a4597a5b488c4d31ec46642e4567e190dc57",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1748553755,
"transactionHash": "0x96ca5b3c6c6131b5d6a538059dea8d2687a9e1ce8c9bed9aa8f97f80fa9e4617",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1752215135,
"transactionHash": "0x68f8e378453c0181098912cced5fca98f2e21964ba4235fa62a364e0d442110c",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1756219391,
"transactionHash": "0xba2ebefd8f2d5a07d43c02b04e871752d75554d166382e8911ba94af72f429d9",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1773017027,
"transactionHash": "0xe0f42328fde4d30995da466d585cb7887fb264080ad6d8d68a760994aa538e03",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1783169891,
"transactionHash": "0x61dd135cc44e61f4ea77857d455634a0a3a000b016ebf151060226b6f518121a",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1783328435,
"transactionHash": "0x6a2e26142cd72a8f1291b32cf365030f59d9238bb8bd0c052b31341cc80dc8d9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786533695,
"transactionHash": "0x17e8985c0670edb54b369ac930c5e24cdea863520bcbf77fbed2a6961538229f",
"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**: zkCandyZkEvmAdmin; ultimately zkCandy Multisig\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF2704433d11842d15aa76BBF0E00407267a99C92#code"
},
{
"name": "ValidiumL1DAValidator",
"isVerified": true,
"address": "eth:0x907b30407249949521Bf0c89A43558dae200146A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract that 'verifies' the data availability for validiums. This implementation only checks the correct formatting and does not serve as a DA oracle. Can be used by ZK stack validiums as the L1 part of a DAValidator pair.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x907b30407249949521Bf0c89A43558dae200146A#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "zkCandyZkEvmAdmin",
"isVerified": true,
"address": "eth:0x309EfA797ec5cd324Cb473F141F95214F3a25ab2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A governance proxy that lets zkCandy Multisig act through it.\n* Roles:\n * **owner**: zkCandy Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x309EfA797ec5cd324Cb473F141F95214F3a25ab2#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": "DualVerifier",
"isVerified": true,
"address": "eth:0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47fC5273145E053A18C0BBF6d88F8d6d573C3d0e#code"
},
{
"name": "L1VerifierFflonk",
"isVerified": true,
"address": "eth:0x9f5C39a2790f38542065E7854b90407371923375",
"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/0x9f5C39a2790f38542065E7854b90407371923375#code"
},
{
"name": "L1VerifierPlonk",
"isVerified": true,
"address": "eth:0xd22cA89e8991FCE568456914c616d303e3142395",
"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/0xd22cA89e8991FCE568456914c616d303e3142395#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"
}
],
"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"
],
"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 zkCandy and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x8116A750e2091B2bA0D94223e7b20a6A65A279f4",
"l2EtherAddress": "0xE5ecd226b3032910CEaa43ba92EE8232f8237553"
},
"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:0x9f5C39a2790f38542065E7854b90407371923375",
"eth:0xd22cA89e8991FCE568456914c616d303e3142395"
]
}
+1 -1
{
"baseTimestamp": 1786615292,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786965974,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+46 -16
+10 -0
[
{
"address": "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6",
"sinceTimestamp": 1739109131,
"tokens": "*",
"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 ZKsync Era and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x11f943b2c77b743AB90f4A0Ae7d5A4e7FCA3E102",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"chainId": 1
},
{
"address": "0x41527B2d03844dB6b0945f25702cB958b6d55989",
"sinceTimestamp": 1698058151,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x41527B2d03844dB6b0945f25702cB958b6d55989",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698065351,
"transactionHash": "0x51c6da607599f4f5f12d9fce001ede3fb1b94c9e2bd37fb48e081898fabf0020",
"implementations": [
"eth:0x9a810469F4a451Ebb7ef53672142053b4971587c"
]
},
{
"timestamp": 1776444131,
"transactionHash": "0xf43f6fe63edc60ae6eb0bc919b3c682ac0c068df7eb1cb44aa514302539f19cb",
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
}
],
"description": "Bridge for depositing wrapped stETH (Lido) to ZKsync Era. These deposits and withdrawals do not go through the new shared BridgeHub.",
"upgradableBy": [
{
"name": "Lido (Lido Agent)",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x41527B2d03844dB6b0945f25702cB958b6d55989#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x32400084C286CF3E17e7B677ea9583e60a000324",
"sinceTimestamp": 1676268575,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x32400084C286CF3E17e7B677ea9583e60a000324",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676315375,
"transactionHash": "0xba8357ad4ef5c48e120daf7c1569d90a803975958df777a4d8132dba6e8ef196",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679598935,
"transactionHash": "0x07c949f4a829a991f30998c6e89fdd8629fba240aedd59d55896c5c0999b6da4",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0xc796A402E1B26eCd2cd38F23e05A2f904504ec89",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D"
]
},
{
"timestamp": 1682366591,
"transactionHash": "0xe246fdfa41030d23e91e4378db8697727da3c321a426a93a0861066cfb875875",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D",
"eth:0xb2097DBe4410B538a45574B1FCD767E2303c7867"
]
},
{
"timestamp": 1692180911,
"transactionHash": "0x83d729e260c7ac2cf439aa2b8e667454489e4fb8d4965aaa9dc8e2fb95a44f46",
"implementations": [
"eth:0x9B1A10bDC4A40219544C835263b2cA3f3e689693",
"eth:0xA389bF185B301C8e20E79E3098e71399914035dF",
"eth:0xf002dFBc52C250a2E14C148041aDB8567a0B19BD",
"eth:0xab458aCbD8FF9B6cF7B8a029705A02F70DCDBf7D",
"eth:0x8c0f38F13526fCB379a80B87F4DEbdBCC9CAEcbD"
]
},
{
"timestamp": 1693297691,
"transactionHash": "0x8cdc268e23c0fa073ab3f1b75bd32a2cf05ea1e268a07c1aec44d5805f22fb12",
"implementations": [
"eth:0xc6f7e57C6e1e20468D869Fe33675524e243CD6a0",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x5349E94435Cc9Cab9FfB40A492DA46935052733A",
"eth:0x16615a85B451edfb6FCBea0b34405D9C7ca1a22A",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1694083991,
"transactionHash": "0x72983cd25802230545bcb38b805638b0ffa17990ad51e8843e55519fe96d702c",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1695403367,
"transactionHash": "0x5e3ce9e7d3920f293487a5581146f8333191a4068762db6fe4d1eec65a3fb805",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1697818535,
"transactionHash": "0x0de4556791139b205562b388f2ddc4a2d2ec1bf0996feea38158535cd7e1a5c6",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1698856895,
"transactionHash": "0x4d3e09380ee604e75800fd61da0c1771987e1cbca7c5254e8c7479e3dd0e3b37",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x409560DE546e057ce5bD5dB487EdF2bB5E785baB",
"eth:0xF3ACF6a03ea4a914B78Ec788624B25ceC37c14A4",
"eth:0x63b5EC36B09384fFA7106A80Ec7cfdFCa521fD08",
"eth:0x9e3Fa34a10619fEDd7aE40A3fb86FA515fcfd269"
]
},
{
"timestamp": 1703159495,
"transactionHash": "0x2200e7109d3abbb74cb03144fea37f7227188e1fcaba4538bd9dfa3fa17cca02",
"implementations": [
"eth:0xAeA49FCEbe3A93ADaE67FF668C0ac87799537967",
"eth:0x5edb1756c0A0F933EB87f9d69DfA1db3167547a7",
"eth:0x2FbF76bAE617cE41AdB9021907F02e2bF187BB58",
"eth:0xc40e5BE1a6D18DdB14268D32dc6075FCf72fF16d"
]
},
{
"timestamp": 1707143447,
"transactionHash": "0x937dd21a05142c02159170dafb1bbaaa145ae7bd2c29bf512534fbec9ff801ab",
"implementations": [
"eth:0xE6426c725cB507168369c10284390E59d91eC821",
"eth:0xc4a5e861df9DD9495f8Dba1c260913d1A9b8Ec2B",
"eth:0x0f58Fd6c9Ed966e09C1dFFBc8E6FF600ec65f6eB",
"eth:0x3a4ef67C6cAb51444E5d3861843F7f4a37F64F0a"
]
},
{
"timestamp": 1710167531,
"transactionHash": "0xa5fd3584a815267a84a5686b386d911ed7e53d6c1863ff64a57ef0f7085bd4d7",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1710285383,
"transactionHash": "0xc78a986be023f367f121c06fa9662ef950ad76f2cfe9397693f63de6c5959c61",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1717674923,
"transactionHash": "0x71a3b924989f551cbf3024fcd6b52aeb9a52902d95c0efb690e7340d667b6e21",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1722937847,
"transactionHash": "0x2060aa785aeefa91a0b103accc9df689c7a2056aacfa70309492e729ddea4565",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736520959,
"transactionHash": "0x4f45a603cfe9fb680e13fc3ecb48aed0ba73e198e7be5f53e39f016384d262b0",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1741791551,
"transactionHash": "0x2c6aa40efd0500a015b036cf03de961b6e2aa2c726d21b5b8cede9a91964c12f",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1746446579,
"transactionHash": "0xf20c9ac3a8c84e97d8403833810d9c2d38f29bb18f592b983e69e14da66b1d12",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1750722695,
"transactionHash": "0x57b72110d70a2c2f9b7762a0069d3c61d6b58888a4ac6bec35adde7d3f664a57",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1754091731,
"transactionHash": "0x4408299240ea4bef17153116dbd0ab1fbd58dbe9a4b9fb177b7664a71e9c70f1",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761146555,
"transactionHash": "0xcdb33c10c6fcef0fe1597e4c87403763e4378af8822c05ed303cd590bdbd72b9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769183903,
"transactionHash": "0xbeeccb50304cf1e2e0b3dc39e57f8f30ea7e0c9da7a774c9b984245e11d990eb",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1770391415,
"transactionHash": "0x96d827f588ce0b3868ebdf99ca1099d1128a8112ddbb140416d9ffdcfd72e9af",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1784915471,
"transactionHash": "0x3230654aa6e3c7d63a7f6d8bfe6eccabc98a11f18409af0fcadd12f8b65f34b4",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786208627,
"transactionHash": "0x1586dea0c7326b2ae060b222925e9c752481cd049f907634a114200ecaa7baab",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786873007,
"transactionHash": "0xa22268c77351fd1c1e3c632ad2323425cb1f2330b2ee34686c0a081f93bdd423",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "Main rollup contract of ZKsync Era.",
"url": "https://etherscan.io/address/0x32400084C286CF3E17e7B677ea9583e60a000324#code"
},
"chain": "ethereum",
"includeInTotal": true,
"isHistorical": true,
"untilTimestamp": 1717922458,
"chainId": 1
},
{
"address": "0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"sinceTimestamp": 1676367083,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676370683,
"transactionHash": "0xbeb9be61e12ebe1e8abcaa0ddd3149cc0282a60af9b11ee2cae50fbcd0adb96e",
"implementations": [
"eth:0x22bE40122BA952b81c50bcaa86F84418ff623391"
]
},
{
"timestamp": 1679600999,
"transactionHash": "0x5fc563e76bc3421166b3898389b72d6a93ac04d94741fc884290d2120ce8cfd0",
"implementations": [
"eth:0x7e5E66B01fe43293545eaB98ec4D31784A5Efa84"
]
},
{
"timestamp": 1682426255,
"transactionHash": "0xa462b66e80e973da1eaea5a5bde5a1b4ff6a1a3b29ac4db25922712e71900e80",
"implementations": [
"eth:0x38ABF296EE79621A225AA85086853b0dA3225D2F"
]
},
{
"timestamp": 1692181295,
"transactionHash": "0x351e42a19944da59b77c2fdd0d5adb58fd0af1cc960e14af3cfae0d686fda478",
"implementations": [
"eth:0x7FB17101A744e156e63d5fF6A4775fb48756577c"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x03F3F3c12e11C2FAA60080bd3F7f80AADF369a33"
]
},
{
"timestamp": 1703242679,
"transactionHash": "0xd340a9274753c7f5edd33bc034c08df9e050821d399059c2f6bf0686dd341a87",
"implementations": [
"eth:0x79Cc1DF74Ac2d1B0876498C9FcE32c7e34F57B43"
]
},
{
"timestamp": 1707388607,
"transactionHash": "0x7a9c713189afcfbb07826da5078905f2543da22468f98507e51eac632dc784ce",
"implementations": [
"eth:0x810c6598CAaA08B61f6430Df5a8e120B3390d78A"
]
},
{
"timestamp": 1717680035,
"transactionHash": "0xb689a0cfff9af4bb1d1da94c404d396f24d5cf5031c31647671549c717cdba7a",
"implementations": [
"eth:0x8191975d8B0851C7f0740918896Cf298c09aA05E"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x8D231E4097C3cb200Ed62134B466AA615cE60336"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x2Dd3329A2Ae9de60Da02828A34f0cB6d6aff9142"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
}
],
"description": "Legacy bridge for depositing ERC20 tokens to ZKsync Era. Forwards deposits and withdrawals to the BridgeHub.",
"url": "https://etherscan.io/address/0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
]
+35 -15
{
"addresses": {
"ethereum": [
{
"name": "Diamond",
"isVerified": true,
"address": "eth:0x32400084C286CF3E17e7B677ea9583e60a000324",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676315375,
"transactionHash": "0xba8357ad4ef5c48e120daf7c1569d90a803975958df777a4d8132dba6e8ef196",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679598935,
"transactionHash": "0x07c949f4a829a991f30998c6e89fdd8629fba240aedd59d55896c5c0999b6da4",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0xc796A402E1B26eCd2cd38F23e05A2f904504ec89",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D"
]
},
{
"timestamp": 1682366591,
"transactionHash": "0xe246fdfa41030d23e91e4378db8697727da3c321a426a93a0861066cfb875875",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D",
"eth:0xb2097DBe4410B538a45574B1FCD767E2303c7867"
]
},
{
"timestamp": 1692180911,
"transactionHash": "0x83d729e260c7ac2cf439aa2b8e667454489e4fb8d4965aaa9dc8e2fb95a44f46",
"implementations": [
"eth:0x9B1A10bDC4A40219544C835263b2cA3f3e689693",
"eth:0xA389bF185B301C8e20E79E3098e71399914035dF",
"eth:0xf002dFBc52C250a2E14C148041aDB8567a0B19BD",
"eth:0xab458aCbD8FF9B6cF7B8a029705A02F70DCDBf7D",
"eth:0x8c0f38F13526fCB379a80B87F4DEbdBCC9CAEcbD"
]
},
{
"timestamp": 1693297691,
"transactionHash": "0x8cdc268e23c0fa073ab3f1b75bd32a2cf05ea1e268a07c1aec44d5805f22fb12",
"implementations": [
"eth:0xc6f7e57C6e1e20468D869Fe33675524e243CD6a0",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x5349E94435Cc9Cab9FfB40A492DA46935052733A",
"eth:0x16615a85B451edfb6FCBea0b34405D9C7ca1a22A",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1694083991,
"transactionHash": "0x72983cd25802230545bcb38b805638b0ffa17990ad51e8843e55519fe96d702c",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1695403367,
"transactionHash": "0x5e3ce9e7d3920f293487a5581146f8333191a4068762db6fe4d1eec65a3fb805",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1697818535,
"transactionHash": "0x0de4556791139b205562b388f2ddc4a2d2ec1bf0996feea38158535cd7e1a5c6",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1698856895,
"transactionHash": "0x4d3e09380ee604e75800fd61da0c1771987e1cbca7c5254e8c7479e3dd0e3b37",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x409560DE546e057ce5bD5dB487EdF2bB5E785baB",
"eth:0xF3ACF6a03ea4a914B78Ec788624B25ceC37c14A4",
"eth:0x63b5EC36B09384fFA7106A80Ec7cfdFCa521fD08",
"eth:0x9e3Fa34a10619fEDd7aE40A3fb86FA515fcfd269"
]
},
{
"timestamp": 1703159495,
"transactionHash": "0x2200e7109d3abbb74cb03144fea37f7227188e1fcaba4538bd9dfa3fa17cca02",
"implementations": [
"eth:0xAeA49FCEbe3A93ADaE67FF668C0ac87799537967",
"eth:0x5edb1756c0A0F933EB87f9d69DfA1db3167547a7",
"eth:0x2FbF76bAE617cE41AdB9021907F02e2bF187BB58",
"eth:0xc40e5BE1a6D18DdB14268D32dc6075FCf72fF16d"
]
},
{
"timestamp": 1707143447,
"transactionHash": "0x937dd21a05142c02159170dafb1bbaaa145ae7bd2c29bf512534fbec9ff801ab",
"implementations": [
"eth:0xE6426c725cB507168369c10284390E59d91eC821",
"eth:0xc4a5e861df9DD9495f8Dba1c260913d1A9b8Ec2B",
"eth:0x0f58Fd6c9Ed966e09C1dFFBc8E6FF600ec65f6eB",
"eth:0x3a4ef67C6cAb51444E5d3861843F7f4a37F64F0a"
]
},
{
"timestamp": 1710167531,
"transactionHash": "0xa5fd3584a815267a84a5686b386d911ed7e53d6c1863ff64a57ef0f7085bd4d7",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1710285383,
"transactionHash": "0xc78a986be023f367f121c06fa9662ef950ad76f2cfe9397693f63de6c5959c61",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1717674923,
"transactionHash": "0x71a3b924989f551cbf3024fcd6b52aeb9a52902d95c0efb690e7340d667b6e21",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1722937847,
"transactionHash": "0x2060aa785aeefa91a0b103accc9df689c7a2056aacfa70309492e729ddea4565",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736520959,
"transactionHash": "0x4f45a603cfe9fb680e13fc3ecb48aed0ba73e198e7be5f53e39f016384d262b0",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1741791551,
"transactionHash": "0x2c6aa40efd0500a015b036cf03de961b6e2aa2c726d21b5b8cede9a91964c12f",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1746446579,
"transactionHash": "0xf20c9ac3a8c84e97d8403833810d9c2d38f29bb18f592b983e69e14da66b1d12",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1750722695,
"transactionHash": "0x57b72110d70a2c2f9b7762a0069d3c61d6b58888a4ac6bec35adde7d3f664a57",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1754091731,
"transactionHash": "0x4408299240ea4bef17153116dbd0ab1fbd58dbe9a4b9fb177b7664a71e9c70f1",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761146555,
"transactionHash": "0xcdb33c10c6fcef0fe1597e4c87403763e4378af8822c05ed303cd590bdbd72b9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769183903,
"transactionHash": "0xbeeccb50304cf1e2e0b3dc39e57f8f30ea7e0c9da7a774c9b984245e11d990eb",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1770391415,
"transactionHash": "0x96d827f588ce0b3868ebdf99ca1099d1128a8112ddbb140416d9ffdcfd72e9af",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1784915471,
"transactionHash": "0x3230654aa6e3c7d63a7f6d8bfe6eccabc98a11f18409af0fcadd12f8b65f34b4",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786208627,
"transactionHash": "0x1586dea0c7326b2ae060b222925e9c752481cd049f907634a114200ecaa7baab",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786873007,
"transactionHash": "0xa22268c77351fd1c1e3c632ad2323425cb1f2330b2ee34686c0a081f93bdd423",
"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. isPermanentRollup was set to true in this contract which prevents changing the DA mode to Validium in the future.\n* Roles:\n * **validators**: ValidatorTimelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x32400084C286CF3E17e7B677ea9583e60a000324#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,0.\n* Roles:\n * **admin**: EraChainAdminProxy, ProxyAdmin; ultimately EmergencyUpgradeBoard, Matter Labs Multisig\n * **owner**: ProtocolUpgradeHandler; ultimately EmergencyUpgradeBoard",
"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": "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": "L1ERC20Bridge",
"isVerified": true,
"address": "eth:0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676370683,
"transactionHash": "0xbeb9be61e12ebe1e8abcaa0ddd3149cc0282a60af9b11ee2cae50fbcd0adb96e",
"implementations": [
"eth:0x22bE40122BA952b81c50bcaa86F84418ff623391"
]
},
{
"timestamp": 1679600999,
"transactionHash": "0x5fc563e76bc3421166b3898389b72d6a93ac04d94741fc884290d2120ce8cfd0",
"implementations": [
"eth:0x7e5E66B01fe43293545eaB98ec4D31784A5Efa84"
]
},
{
"timestamp": 1682426255,
"transactionHash": "0xa462b66e80e973da1eaea5a5bde5a1b4ff6a1a3b29ac4db25922712e71900e80",
"implementations": [
"eth:0x38ABF296EE79621A225AA85086853b0dA3225D2F"
]
},
{
"timestamp": 1692181295,
"transactionHash": "0x351e42a19944da59b77c2fdd0d5adb58fd0af1cc960e14af3cfae0d686fda478",
"implementations": [
"eth:0x7FB17101A744e156e63d5fF6A4775fb48756577c"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x03F3F3c12e11C2FAA60080bd3F7f80AADF369a33"
]
},
{
"timestamp": 1703242679,
"transactionHash": "0xd340a9274753c7f5edd33bc034c08df9e050821d399059c2f6bf0686dd341a87",
"implementations": [
"eth:0x79Cc1DF74Ac2d1B0876498C9FcE32c7e34F57B43"
]
},
{
"timestamp": 1707388607,
"transactionHash": "0x7a9c713189afcfbb07826da5078905f2543da22468f98507e51eac632dc784ce",
"implementations": [
"eth:0x810c6598CAaA08B61f6430Df5a8e120B3390d78A"
]
},
{
"timestamp": 1717680035,
"transactionHash": "0xb689a0cfff9af4bb1d1da94c404d396f24d5cf5031c31647671549c717cdba7a",
"implementations": [
"eth:0x8191975d8B0851C7f0740918896Cf298c09aA05E"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x8D231E4097C3cb200Ed62134B466AA615cE60336"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x2Dd3329A2Ae9de60Da02828A34f0cB6d6aff9142"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
}
],
"description": "Legacy bridge for depositing ERC20 tokens to ZKsync Era. Forwards deposits and withdrawals to the BridgeHub.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063#code"
},
{
"name": "L1ERC20Bridge_wstETH",
"isVerified": true,
"address": "eth:0x41527B2d03844dB6b0945f25702cB958b6d55989",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698065351,
"transactionHash": "0x51c6da607599f4f5f12d9fce001ede3fb1b94c9e2bd37fb48e081898fabf0020",
"implementations": [
"eth:0x9a810469F4a451Ebb7ef53672142053b4971587c"
]
},
{
"timestamp": 1776444131,
"transactionHash": "0xf43f6fe63edc60ae6eb0bc919b3c682ac0c068df7eb1cb44aa514302539f19cb",
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
}
],
"description": "Bridge for depositing wrapped stETH (Lido) to ZKsync Era. These deposits and withdrawals do not go through the shared Bridge.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x41527B2d03844dB6b0945f25702cB958b6d55989#code"
},
{
"name": "L1VerifierPlonk",
"name": "EraVerifierPlonk",
"isVerified": true,
"address": "eth:0x35CD3865199F2D9c574f34DD72520B19842d440c",
"address": "eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the PlonK proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35CD3865199F2D9c574f34DD72520B19842d440c#code"
"url": "https://etherscan.io/address/0x0DAAB2B7b38ab48712996E760152c569FA356DbF#code"
},
{
"name": "L1VerifierFflonk",
"name": "EraVerifierFflonk",
"isVerified": true,
"address": "eth:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"address": "eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"description": "Verifies a zk-SNARK proof using an implementation of the fflonk proof system.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A34cE730052cb195d8a95e730623eEcc1CB8B66#code"
"url": "https://etherscan.io/address/0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9#code"
},
{
"name": "DualVerifier",
"name": "EraDualVerifier",
"isVerified": true,
"address": "eth:0xC47D355402E78b886B628914B3b129F236fEe3cc",
"address": "eth:0xCeF0218c0C6dB0768e48debeE26E41B8DAdE7081",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A router contract for verifiers. Routes verification requests to L1VerifierFflonk or L1VerifierPlonk depending on the supplied proof type.\n",
"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/0xC47D355402E78b886B628914B3b129F236fEe3cc#code"
"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"
}
],
"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": "*",
"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 ZKsync Era and other ZK stack chains.",
"url": "https://etherscan.io/address/0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "ElasticChain",
"l2BridgeAddress": "0x11f943b2c77b743AB90f4A0Ae7d5A4e7FCA3E102",
"l2EtherAddress": "0x000000000000000000000000000000000000800A"
},
"chainId": 1
},
{
"address": "0x41527B2d03844dB6b0945f25702cB958b6d55989",
"sinceTimestamp": 1698058151,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x41527B2d03844dB6b0945f25702cB958b6d55989",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1698065351,
"transactionHash": "0x51c6da607599f4f5f12d9fce001ede3fb1b94c9e2bd37fb48e081898fabf0020",
"implementations": [
"eth:0x9a810469F4a451Ebb7ef53672142053b4971587c"
]
},
{
"timestamp": 1776444131,
"transactionHash": "0xf43f6fe63edc60ae6eb0bc919b3c682ac0c068df7eb1cb44aa514302539f19cb",
"implementations": [
"eth:0x43a66B32c9AdcA1A59b273E69b61Da5197c21cCd"
]
}
],
"description": "Bridge for depositing wrapped stETH (Lido) to ZKsync Era. These deposits and withdrawals do not go through the new shared BridgeHub.",
"upgradableBy": [
{
"name": "Lido (Lido Agent)",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x41527B2d03844dB6b0945f25702cB958b6d55989#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x32400084C286CF3E17e7B677ea9583e60a000324",
"sinceTimestamp": 1676268575,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x32400084C286CF3E17e7B677ea9583e60a000324",
"upgradeability": {
"proxyType": "EIP2535 diamond proxy",
"admins": [],
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676315375,
"transactionHash": "0xba8357ad4ef5c48e120daf7c1569d90a803975958df777a4d8132dba6e8ef196",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679594519,
"transactionHash": "0x33a58f3097f84d41ae7f3bd280af6db28d04cd28af362faab164404b463e2791",
"implementations": [
"eth:0xC48d496459e1358D055a79173BEA41efb7449028",
"eth:0xc30af84A6aFF43D5fd06FEdA6bA20BdfeD539F6C",
"eth:0x2EA0CFB9C942058ee5A84411EF2E37C6DE5bfe5c",
"eth:0x98E900Eb2e5fdE9786f736e86d6BFBfDb3E4683b",
"eth:0xa7E8a8F71c3cC43946601CC99997f8Cd6828a9B9"
]
},
{
"timestamp": 1679598935,
"transactionHash": "0x07c949f4a829a991f30998c6e89fdd8629fba240aedd59d55896c5c0999b6da4",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0xc796A402E1B26eCd2cd38F23e05A2f904504ec89",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D"
]
},
{
"timestamp": 1682366591,
"transactionHash": "0xe246fdfa41030d23e91e4378db8697727da3c321a426a93a0861066cfb875875",
"implementations": [
"eth:0xF1fB730b7f8E8391B27B91f8f791e10E4a53CEcc",
"eth:0x6df4A6D71622860dcc64C1FD9645d9a5BE96f088",
"eth:0x2a2d6010202B93E727b61a60dfC1d5CF2707c1CE",
"eth:0x389a081BCf20e5803288183b929F08458F1d863D",
"eth:0xb2097DBe4410B538a45574B1FCD767E2303c7867"
]
},
{
"timestamp": 1692180911,
"transactionHash": "0x83d729e260c7ac2cf439aa2b8e667454489e4fb8d4965aaa9dc8e2fb95a44f46",
"implementations": [
"eth:0x9B1A10bDC4A40219544C835263b2cA3f3e689693",
"eth:0xA389bF185B301C8e20E79E3098e71399914035dF",
"eth:0xf002dFBc52C250a2E14C148041aDB8567a0B19BD",
"eth:0xab458aCbD8FF9B6cF7B8a029705A02F70DCDBf7D",
"eth:0x8c0f38F13526fCB379a80B87F4DEbdBCC9CAEcbD"
]
},
{
"timestamp": 1693297691,
"transactionHash": "0x8cdc268e23c0fa073ab3f1b75bd32a2cf05ea1e268a07c1aec44d5805f22fb12",
"implementations": [
"eth:0xc6f7e57C6e1e20468D869Fe33675524e243CD6a0",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x5349E94435Cc9Cab9FfB40A492DA46935052733A",
"eth:0x16615a85B451edfb6FCBea0b34405D9C7ca1a22A",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1694083991,
"transactionHash": "0x72983cd25802230545bcb38b805638b0ffa17990ad51e8843e55519fe96d702c",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1695403367,
"transactionHash": "0x5e3ce9e7d3920f293487a5581146f8333191a4068762db6fe4d1eec65a3fb805",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1697818535,
"transactionHash": "0x0de4556791139b205562b388f2ddc4a2d2ec1bf0996feea38158535cd7e1a5c6",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1698856895,
"transactionHash": "0x4d3e09380ee604e75800fd61da0c1771987e1cbca7c5254e8c7479e3dd0e3b37",
"implementations": [
"eth:0xdC7c3D03845EfE2c4a9E758A70a68BA6bba9FaC4",
"eth:0x7444DE636699F080cA1C033528D2bB3705B391Ce",
"eth:0x62aA95ac4740A367746A664C4C69034d52E968EF",
"eth:0x7Ed066718Dfb1b2B04D94780Eca92b67ECF3330b",
"eth:0x2E64926BE35412f7710A3E097Ba076740bF97CC0"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x409560DE546e057ce5bD5dB487EdF2bB5E785baB",
"eth:0xF3ACF6a03ea4a914B78Ec788624B25ceC37c14A4",
"eth:0x63b5EC36B09384fFA7106A80Ec7cfdFCa521fD08",
"eth:0x9e3Fa34a10619fEDd7aE40A3fb86FA515fcfd269"
]
},
{
"timestamp": 1703159495,
"transactionHash": "0x2200e7109d3abbb74cb03144fea37f7227188e1fcaba4538bd9dfa3fa17cca02",
"implementations": [
"eth:0xAeA49FCEbe3A93ADaE67FF668C0ac87799537967",
"eth:0x5edb1756c0A0F933EB87f9d69DfA1db3167547a7",
"eth:0x2FbF76bAE617cE41AdB9021907F02e2bF187BB58",
"eth:0xc40e5BE1a6D18DdB14268D32dc6075FCf72fF16d"
]
},
{
"timestamp": 1707143447,
"transactionHash": "0x937dd21a05142c02159170dafb1bbaaa145ae7bd2c29bf512534fbec9ff801ab",
"implementations": [
"eth:0xE6426c725cB507168369c10284390E59d91eC821",
"eth:0xc4a5e861df9DD9495f8Dba1c260913d1A9b8Ec2B",
"eth:0x0f58Fd6c9Ed966e09C1dFFBc8E6FF600ec65f6eB",
"eth:0x3a4ef67C6cAb51444E5d3861843F7f4a37F64F0a"
]
},
{
"timestamp": 1710167531,
"transactionHash": "0xa5fd3584a815267a84a5686b386d911ed7e53d6c1863ff64a57ef0f7085bd4d7",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1710285383,
"transactionHash": "0xc78a986be023f367f121c06fa9662ef950ad76f2cfe9397693f63de6c5959c61",
"implementations": [
"eth:0x230214F0224C7E0485f348a79512ad00514DB1F7",
"eth:0x10113bB3a8e64f8eD67003126adC8CE74C34610c",
"eth:0xA57F9FFD65fC0F5792B5e958dF42399a114EC7e7",
"eth:0xfd3779e6214eBBd40f5F5890351298e123A46BA6"
]
},
{
"timestamp": 1717674923,
"transactionHash": "0x71a3b924989f551cbf3024fcd6b52aeb9a52902d95c0efb690e7340d667b6e21",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1722937847,
"transactionHash": "0x2060aa785aeefa91a0b103accc9df689c7a2056aacfa70309492e729ddea4565",
"implementations": [
"eth:0xF6F26b416CE7AE5e5FE224Be332C7aE4e1f3450a",
"eth:0xE60E94fCCb18a81D501a38959E532C0A85A1be89",
"eth:0xCDB6228b616EEf8Df47D69A372C4f725C43e718C",
"eth:0xaD193aDe635576d8e9f7ada71Af2137b16c64075"
]
},
{
"timestamp": 1736520959,
"transactionHash": "0x4f45a603cfe9fb680e13fc3ecb48aed0ba73e198e7be5f53e39f016384d262b0",
"implementations": [
"eth:0x90C0A0a63d7ff47BfAA1e9F8fa554dabc986504a",
"eth:0x81754d2E48e3e553ba6Dfd193FC72B3A0c6076d9",
"eth:0x5575218cECd370E1d630d1AdB03c254B0B376821",
"eth:0xBB13642F795014E0EAC2b0d52ECD5162ECb66712"
]
},
{
"timestamp": 1741791551,
"transactionHash": "0x2c6aa40efd0500a015b036cf03de961b6e2aa2c726d21b5b8cede9a91964c12f",
"implementations": [
"eth:0xEaedCF01c0B01C1a10b74cB0A2cDeF78a9540cdb",
"eth:0x95C45F931946C97D10D9d6e859Fe8D62785ed3C1",
"eth:0x36b026c39125964D99596CE302866B5A59E4dE27",
"eth:0x53d0b421BB3e522632ABEB06BB2c4eB15eaD9800"
]
},
{
"timestamp": 1746446579,
"transactionHash": "0xf20c9ac3a8c84e97d8403833810d9c2d38f29bb18f592b983e69e14da66b1d12",
"implementations": [
"eth:0xF2C9D38D16c7A7Dc9aA4F743Fce024354d9c19B4",
"eth:0x05DeB01AaDB6C98F8B78a1F9A81ccd68Ac4d70d4",
"eth:0x26b9a55DaBab9A8e74815A9D6Cd7F74AC0d7215f",
"eth:0x0A7C1b8D56BE02d9731e3A764107602f8F6dd490"
]
},
{
"timestamp": 1750722695,
"transactionHash": "0x57b72110d70a2c2f9b7762a0069d3c61d6b58888a4ac6bec35adde7d3f664a57",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1754091731,
"transactionHash": "0x4408299240ea4bef17153116dbd0ab1fbd58dbe9a4b9fb177b7664a71e9c70f1",
"implementations": [
"eth:0x431449e2a28A69122860A4956A3f7191eE15aFBC",
"eth:0xae5cbB5f70e134668a13d7C8EcEF5e9E6FffCF22",
"eth:0x365D0ae3ECA13004daf2A4ba1501c01AaEbb4fec",
"eth:0x2f116b9033d88Bb3Cf64C371AE5458fbA22BA39A"
]
},
{
"timestamp": 1761146555,
"transactionHash": "0xcdb33c10c6fcef0fe1597e4c87403763e4378af8822c05ed303cd590bdbd72b9",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1769183903,
"transactionHash": "0xbeeccb50304cf1e2e0b3dc39e57f8f30ea7e0c9da7a774c9b984245e11d990eb",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1770391415,
"transactionHash": "0x96d827f588ce0b3868ebdf99ca1099d1128a8112ddbb140416d9ffdcfd72e9af",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1784915471,
"transactionHash": "0x3230654aa6e3c7d63a7f6d8bfe6eccabc98a11f18409af0fcadd12f8b65f34b4",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786208627,
"transactionHash": "0x1586dea0c7326b2ae060b222925e9c752481cd049f907634a114200ecaa7baab",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
},
{
"timestamp": 1786873007,
"transactionHash": "0xa22268c77351fd1c1e3c632ad2323425cb1f2330b2ee34686c0a081f93bdd423",
"implementations": [
"eth:0x37CefD5b44c131FEf27e9Bc542e5B77A177A7253",
"eth:0x1666124221622eb6154306Ea9BA87043e8be88B2",
"eth:0x1e34aB39a9682149165ddeCc0583d238A5448B45",
"eth:0x0597CaA8A823A699d7CD9E62B5E5d4153FF82691"
]
}
],
"description": "Main rollup contract of ZKsync Era.",
"url": "https://etherscan.io/address/0x32400084C286CF3E17e7B677ea9583e60a000324#code"
},
"chain": "ethereum",
"includeInTotal": true,
"isHistorical": true,
"untilTimestamp": 1717922458,
"chainId": 1
},
{
"address": "0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"sinceTimestamp": 1676367083,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1"
],
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1676370683,
"transactionHash": "0xbeb9be61e12ebe1e8abcaa0ddd3149cc0282a60af9b11ee2cae50fbcd0adb96e",
"implementations": [
"eth:0x22bE40122BA952b81c50bcaa86F84418ff623391"
]
},
{
"timestamp": 1679600999,
"transactionHash": "0x5fc563e76bc3421166b3898389b72d6a93ac04d94741fc884290d2120ce8cfd0",
"implementations": [
"eth:0x7e5E66B01fe43293545eaB98ec4D31784A5Efa84"
]
},
{
"timestamp": 1682426255,
"transactionHash": "0xa462b66e80e973da1eaea5a5bde5a1b4ff6a1a3b29ac4db25922712e71900e80",
"implementations": [
"eth:0x38ABF296EE79621A225AA85086853b0dA3225D2F"
]
},
{
"timestamp": 1692181295,
"transactionHash": "0x351e42a19944da59b77c2fdd0d5adb58fd0af1cc960e14af3cfae0d686fda478",
"implementations": [
"eth:0x7FB17101A744e156e63d5fF6A4775fb48756577c"
]
},
{
"timestamp": 1701721751,
"transactionHash": "0x9f0e9ecd78b5c17ff95c130b183df452486a0f784705927e608fd90a00aa9bcd",
"implementations": [
"eth:0x03F3F3c12e11C2FAA60080bd3F7f80AADF369a33"
]
},
{
"timestamp": 1703242679,
"transactionHash": "0xd340a9274753c7f5edd33bc034c08df9e050821d399059c2f6bf0686dd341a87",
"implementations": [
"eth:0x79Cc1DF74Ac2d1B0876498C9FcE32c7e34F57B43"
]
},
{
"timestamp": 1707388607,
"transactionHash": "0x7a9c713189afcfbb07826da5078905f2543da22468f98507e51eac632dc784ce",
"implementations": [
"eth:0x810c6598CAaA08B61f6430Df5a8e120B3390d78A"
]
},
{
"timestamp": 1717680035,
"transactionHash": "0xb689a0cfff9af4bb1d1da94c404d396f24d5cf5031c31647671549c717cdba7a",
"implementations": [
"eth:0x8191975d8B0851C7f0740918896Cf298c09aA05E"
]
},
{
"timestamp": 1736352035,
"transactionHash": "0xc90d135e4b8ab58304853f3be34b2fefd18c2a817d3d250e7b669e024d5277c5",
"implementations": [
"eth:0x8D231E4097C3cb200Ed62134B466AA615cE60336"
]
},
{
"timestamp": 1743408047,
"transactionHash": "0x96a2f14c85022136ab3d4e568e9f1fe8f4611a4a2597f979332840259378f6b3",
"implementations": [
"eth:0x2Dd3329A2Ae9de60Da02828A34f0cB6d6aff9142"
]
},
{
"timestamp": 1760519351,
"transactionHash": "0xa022a2ce09b145eb5d0c4342b3f3583e79b66ee7205ab986322be819f277ba83",
"implementations": [
"eth:0x6ed98623e0B51be68748aB5091Aa891Adb883e13"
]
}
],
"description": "Legacy bridge for depositing ERC20 tokens to ZKsync Era. Forwards deposits and withdrawals to the BridgeHub.",
"url": "https://etherscan.io/address/0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063#code"
},
"chain": "ethereum",
"includeInTotal": true,
"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:0x4A34cE730052cb195d8a95e730623eEcc1CB8B66",
"eth:0x35CD3865199F2D9c574f34DD72520B19842d440c"
"eth:0x8470d6B3fd71B5fE3906B4ea04498d18F721eDe9",
"eth:0x0DAAB2B7b38ab48712996E760152c569FA356DbF"
]
}
+1 -1
{
"baseTimestamp": 1786358175,
"baseTimestamp": 1786966191,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}